Μάθημα 4 (Button and LED)

Σήμερα θα μάθουμε

  1. Τη κλάση Button (κουμπί)
  2. Τις εντολές wait_for_press και toggle
  3. Το if και τη συνθήκη is_pressed

Με τη βοήθεια αυτών των γνώσεων θα προγραμματίσουμε ένα λαμπάκι να ανάβει και να σβήνει όταν πατάμε ένα κουμπί.

Συνδεσμολογία

Θετικό ποδαράκι του LED –> GPIO 4

Αρνητικό ποδαράκι του LED –> Ground

Ένα ποδαράκι του κουμπιού –> GPIO 17

Το άλλο ποδαράκι του κουμπιού –> Ground

Κώδικας (πρώτος τρόπος)

Γράφουμε το παρακάτω κώδικα
from gpiozero import LED, Button
from time import sleep
myled = LED(4)
mybutton = Button(17)
while True:
    mybutton.wait_for_press()
    myled.toggle()
    sleep(1)

Τις περισσότερες εντολές τις ξέρουμε. Κάποια καινούρια πράγματα

from gpiozero import LED, Button

Όταν θέλουμε να εισάγουμε περισσότερες από μία κλάσεις, τότε ανάμεσά τους βάζουμε κόμμα.

mybutton = Button(17)

Το Button είναι η καινούρια κλάση μας, αλλά όταν λέμε στο πρόγραμμα σε ποιο pin συνδέουμε το κουμπί, τότε λειτουργεί όπως η LED.

    mybutton.wait_for_press()

Με αυτή την εντολή λέμε στο πρόγραμμά μας να σταματήσει μέχρι να πατήσει κάποιος το κουμπί.

    myled.toggle()

Με αυτή την εντολή λέμε στο λαμπάκι μας να κάνει toggle. Toggle σημαίνει ότι αν είναι σβηστό το ανάβουμε και αν είναι αναμμένο το σβήνουμε.

Αφού γράψεις τον κώδικα, πάτησε Run Module όπως στο προηγούμενο μάθημα.

Μετά μπορείς να πας στο κύκλωμά σου και να παρατηρήσεις τι γίνεται όταν πατάς το κουμπί.

Κώδικας (δεύτερος τρόπος)

Υπάρχει κι άλλος τρόπος να γράψουμε τον κώδικα. Αντί να πούμε στο πρόγραμμα να περιμένει να πατήσουν το κουμπί, μπορούμε να του πούμε να ελέγχει συνέχεια αν κάποιος πατάει το κουμπί. Ο δεύτερος τρόπος φαίνεται λίγο πιο περίεργος, τώρα που είδαμε τον πρώτο, αλλά σε κάποια κυκλώματα στο μέλλον μπορεί να μας φανεί πιο χρήσιμος.

Γράφουμε το παρακάτω κώδικα
from gpiozero import LED, Button
from time import sleep
myled = LED(4)
mybutton = Button(17)
while True:
    if mybutton.is_pressed():
        myled.toggle()
    sleep(1)

Εδώ λοιπόν βλέπουμε κάτι καινούριο.

if mybutton.is_pressed()

Σημαίνει «αν το κουμπί mybutton πατηθεί τότε…» και αυτό ακριβώς κάνει. Αν κάποιος πατήσει το κουμπί, τότε εκτελεί τις επόμενες γραμμές που βρίσκονται σε μία εσοχή πιο μέσα. Στην περίπτωσή μας είναι το

myled.toggle()

Κατά τα άλλα ο κώδικας λειτουργεί ακριβώς όπως και ο πρώτος τρόπος.

Σημειώσεις

Εκτιμώμενη διάρκεια: 1 ώρα 15 λεπτά