Προγραμματισμός με Python στο Raspberry Pi LED και PWMLED για το Code Club Απρίλιος 0 Σύλλογος Εκπαιδευτικών Πληροφορικής Χίου
LED και PWMLED: Ομοιότητες και διαφορές LED Δυο δυνατές καταστάσεις για το led: ή θα ανάβει πλήρως ή θα είναι σβηστό. Μόνο led.on() και led.off() PWMLED Ορίζουμε τη φωτεινότητα του led σε οποιαδήποτε τιμή μεταξύ 0 και. Όχι μόνο led.on() και led.off(), αλλά και led.value = 0 from gpiozero import LED, PWMLED led = LED() led = PWMLED() led.on() led.on() sleep() led.value = 0. sleep() led.off() led.value = 0
Δ.
Δ. Γράψτε ένα πρόγραμμα που θα αναβοσβήνει ένα LED, αφού πρώτα ρωτήσει το χρήστη: α) πόσες φορές και β) με τι διάρκεια θα ανάβει και θα σβήνει. from gpiozero import LED led = LED() while True: led.on() sleep(0.) led.off() sleep(0.) # Για πάντα (μέχρι να πατηθεί Ctrl+C ή να βρεθεί κάποια break). # Περίμενε 0. sec. # Περίμενε 0. sec. βοήθεια
Δ. β) για πόση διάρκεια θα ανάβει και θα σβήνει. 0 from gpiozero import LED led = LED() print ("Δώσε διάρκεια:") t = float ( input() ) while True: led.on() sleep(t) led.off() sleep(t) # Μετατροπή του κειμένου σε αριθμό # και μάλιστα float για να δέχεται και # πραγματικές τιμές. # Περίμενε t δευτερόλεπτα. # Περίμενε t δευτερόλεπτα. βοήθεια
Δ. α) πόσες φορές θα ανάβει και θα σβήνει. 0 from gpiozero import LED led = LED() print ("Δώσε διάρκεια:") t = float ( input() ) print ("Τέλος") # Ρώτα το χρήστη τον αριθμό που επιθυμεί # και εκχώρησέ τον σε μια μεταβλητή, π.χ. n. # Επανάλαβε n φορές τις εντολές # για το άναψε-σβήσε του led. βοήθεια
Δ.
Δ. Κάντε ένα LED να μοιάζει με ένα κερί που τρεμοπαίζει (το led ανάβει σε τυχαία ένταση και για τυχαίο χρονικό διάστημα). 0 from gpiozero import PWMLED led = PWMLED() while True: led.value = 0. sleep(0.) led.value = 0. sleep(0.) led.value = sleep(0.) # Η ιδιότητα value ενός PWMLED μας επιτρέπει # να ορίσουμε τη φωτεινότητά του (0 μέχρι ). from random import randint z = randint(, ) print (z) # Η randint παράγει έναν ακέραιο αριθμό # στο διάστημα που της καθορίζουμε. # Εδώ, στο κλειστό διάστημα [,]. βοήθεια
Δ.
Δ. 0 Kάντε ένα led να αναβοσβήνει αργά, ώστε να μοιάζει σαν να αναπνέει. from gpiozero import PWMLED led = PWMLED() # Για πάντα: # Ξεκίνα από φωτεινότητα μηδέν και αύξησε σταδιακά τη φωτεινότητα # με μια πολύ μικρή καθυστέρηση (~0.0 sec) σε κάθε αλλαγή. # Όταν φτάσεις στη φωτεινότητα ένα, περίμενε λίγο (~0. sec). # Τώρα, ξεκίνα από φωτεινότητα ένα και μείωσε σταδιακά τη φωτεινότητα # με μια πολύ μικρή καθυστέρηση σε κάθε αλλαγή, μέχρι αυτή να γίνει μηδέν. # Όταν το led έχει σβήσει, περίμενε λίγο (~0. sec). 0 βοήθεια
Παράρτημα Ενδεικτικές λύσεις
Δ. Γράψτε ένα πρόγραμμα που θα αναβοσβήνει ένα LED, αφού πρώτα ρωτήσει το χρήστη: α) πόσες φορές και β) με τι διάρκεια θα ανάβει και θα σβήνει. 0 from gpiozero import LED led = LED() print ("Δώσε διάρκεια:") t = float ( input() ) print ("Πόσες φορές;") n = int ( input() ) while n > 0: led.on() sleep(t) led.off() sleep(t) n = n - print ("Τέλος") d..blink.py
Δ. Εναλλακτική λύση της Δ. με τη χρήση συνάρτησης. 0 from gpiozero import LED led = LED() def blink (diarkeia, fores): while fores > 0: led.on() sleep(diarkeia) led.off() sleep(diarkeia) fores = fores - t = float ( input("δώσε διάρκεια: ") ) n = int ( input("πόσες φορές; ") ) blink (t, n) print ("Τέλος") d..blink_function.py
Δ. Κάντε ένα LED να μοιάζει με ένα κερί που τρεμοπαίζει (το led ανάβει σε τυχαία ένταση και για τυχαίο χρονικό διάστημα). 0 from gpiozero import PWMLED from random import randint led = PWMLED() while True: brightness = randint(0, 00) / 00 time = randint(0, 0) / 00 led.value = brightness sleep(time) d..candle.py
Δ. Kάντε ένα led να αναβοσβήνει αργά, ώστε να μοιάζει σαν να αναπνέει. from gpiozero import PWMLED led = PWMLED() t = 0.0 t = 0. # Ο χρόνος για κάθε αλλαγή φωτεινότητας # Ο χρόνος ανάμεσα στις αναπνοές 0 while True: i= 0 while i <= 00: led.value = i/00 i = i + sleep(t) sleep(t) i = while i >= 0: led.value = i i = i - 0.0 sleep(t) sleep(t) print ("Αναπνοή...") d..breath.py
Δ. ένα ακόμα led να αναβοσβήνει αντίστροφα από το άλλο. 0 from gpiozero import PWMLED l = PWMLED() l = PWMLED() t = 0.0 t = 0. while True: i= 0 while i <= 00: l.value = i/00 l.value = - l.value i = i + sleep(t) sleep(t) 0 i = while i >= 0: l.value = i l.value = - l.value i = i - 0.0 sleep(t) sleep(t) print ("Αναπνοή...") d..breath.py
Το υλικό αυτό διατίθεται με άδεια Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή.0. http://creativecommons.org/licenses/by-sa/.0/gr/ Η αναφορά σε αυτό θα πρέπει να γίνεται ως εξής: Προγραμματισμός με Python στο Raspberry Pi. Γιώργος Χατζηνικολάκης, Σύλλογος Εκπαιδευτικών Πληροφορικής Χίου, Απρίλιος 0.