Πίνακας περιεχομένων:

Έλεγχος πολλαπλών LED με καρφίτσες GPIO Python και Your Raspberry Pi: 4 βήματα (με εικόνες)
Έλεγχος πολλαπλών LED με καρφίτσες GPIO Python και Your Raspberry Pi: 4 βήματα (με εικόνες)

Βίντεο: Έλεγχος πολλαπλών LED με καρφίτσες GPIO Python και Your Raspberry Pi: 4 βήματα (με εικόνες)

Βίντεο: Έλεγχος πολλαπλών LED με καρφίτσες GPIO Python και Your Raspberry Pi: 4 βήματα (με εικόνες)
Βίντεο: Start Using Wemos D1 Mini NodeMCU WiFi ESP8266 module with Arduino 2024, Ιούνιος
Anonim
Έλεγχος πολλαπλών LED με τις καρφίτσες GPIO της Python και του Raspberry Pi
Έλεγχος πολλαπλών LED με τις καρφίτσες GPIO της Python και του Raspberry Pi

Αυτό το Instructable δείχνει πώς μπορείτε να ελέγξετε πολλαπλούς ακροδέκτες GPIO στο RaspberryPi σας για να τροφοδοτήσετε 4 LED. Θα σας εισαγάγει επίσης σε παραμέτρους και δηλώσεις υπό όρους στην Python.

Το προηγούμενο εγχειρίδιό μας με χρήση των καρφιτσών GPIO του Raspberry Pi για τον έλεγχο μιας λυχνίας LED δείχνει πώς μπορείτε να ενεργοποιήσετε και να απενεργοποιήσετε ένα μόνο LED χρησιμοποιώντας την εντολή GPIO.output. Αυτό το Instructable βασίζεται σε αυτές τις γνώσεις για να σας διδάξει πώς να αποκτήσετε περισσότερο έλεγχο στο κύκλωμά σας.

Βήμα 1: Τι θα χρειαστείτε

Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε

- Ένα RaspberryPi με ήδη εγκατεστημένο το Raspbian. Θα χρειαστεί επίσης να έχετε πρόσβαση στο Pi χρησιμοποιώντας οθόνη, ποντίκι και πληκτρολόγιο ή μέσω απομακρυσμένης επιφάνειας εργασίας. Μπορείτε να χρησιμοποιήσετε οποιοδήποτε μοντέλο Raspberry Pi. Εάν διαθέτετε ένα από τα μοντέλα Pi Zero, μπορεί να θέλετε να κολλήσετε μερικές καρφίτσες κεφαλίδας στη θύρα GPIO.

- Κόκκινο, μπλε, κίτρινο και πράσινο LED

- Ένα Solderless Prototyping Breadboard

- Αντιστάσεις 4 x 330 ohm

- Μερικά καλώδια από άνδρες έως γυναίκες

Βήμα 2: Δημιουργήστε το κύκλωμά σας

Δημιουργήστε το κύκλωμά σας
Δημιουργήστε το κύκλωμά σας
Δημιουργήστε το κύκλωμά σας
Δημιουργήστε το κύκλωμά σας

Δημιουργήστε το παραπάνω κύκλωμα στο breadboard σας, βεβαιωθείτε ότι κανένα από τα καλώδια των εξαρτημάτων δεν αγγίζει και ότι τα LED είναι συνδεδεμένα σωστά.

Πώς εντοπίζετε τα θετικά και αρνητικά καλώδια (η πολικότητα) στα LED σας; Αν κοιτάξετε προσεκτικά ένα LED, θα δείτε ότι έχει δύο μικρά κομμάτια μετάλλου μέσα στο χρωματιστό περίβλημα. Αυτά ονομάζονται Άνοδος και Κάθοδος. Το Cathode είναι το μεγαλύτερο από τα δύο και συνδέεται επίσης με το αρνητικό καλώδιο LED.

Αφού ελέγξετε το κύκλωμά σας, συνδέστε τα καλώδια με βραχυκυκλωτήρες, τις ακίδες GPIO του Raspberry Pi ακολουθώντας το παραπάνω διάγραμμα.

Βήμα 3: Δημιουργήστε ένα σενάριο για τον έλεγχο και τον έλεγχο των LED

Δημιουργήστε ένα σενάριο για τον έλεγχο και τον έλεγχο των LED
Δημιουργήστε ένα σενάριο για τον έλεγχο και τον έλεγχο των LED

Στο Raspberry Pi, ανοίξτε το IDLE (Μενού> Προγραμματισμός> Python 2 (IDLE)).

Ανοίξτε ένα νέο έργο μεταβείτε στο Αρχείο> Νέο αρχείο. Στη συνέχεια, πληκτρολογήστε (ή αντιγράψτε και επικολλήστε) τον ακόλουθο κώδικα:

εισαγωγή RPi. GPIO ως GPIO

ώρα εισαγωγής GPIO.setmode (GPIO. BCM) GPIO.setup (17, GPIO. OUT) GPIO.setup (18, GPIO. OUT) GPIO.setup (22, GPIO. OUT) GPIO.setup (23, GPIO. OUT) GPIO.output (17, True) time.sleep (3) GPIO.output (17, False) time.sleep (1) GPIO.output (18, True) time.sleep (3) GPIO.output (18, False) time.sleep (1) GPIO.output (22, True) time.sleep (3) GPIO.output (22, False) time.sleep (1) GPIO.output (23, True) time.sleep (3) GPIO. έξοδος (23, Λάθος)

Αποθηκεύστε το έργο σας ως multilights.py (Αρχείο> Αποθήκευση ως) στο φάκελο Raspberry Pis Documents.

Στο Raspberry Pi ανοίξτε το Τερματικό (Μενού> Αξεσουάρ> Τερματικό) και μεταβείτε στο φάκελο Έγγραφα πληκτρολογώντας τα ακόλουθα:

cd/home/pi/Έγγραφα

Τώρα μπορείτε να εκτελέσετε το νέο σας σενάριο πληκτρολογώντας τα ακόλουθα:

python multilights.py

Τα φώτα θα χρειαστούν με τη σειρά τους για να ανάψουν και να σβήσουν. Το παραπάνω σενάριο χρησιμοποιεί την εντολή time.sleep για να δημιουργήσει μια παύση μεταξύ κάθε βήματος, κάνοντας κάθε φωτεινή ένδειξη να παραμένει αναμμένη για 3 δευτερόλεπτα και να περιμένει για 1 δευτερόλεπτο πριν ανάψει η επόμενη λυχνία.

Βήμα 4: Προσθήκη ευελιξίας με χρήση παραμέτρων και δηλώσεων υπό όρους

Χρησιμοποιώντας τις παραμέτρους και τις καταστάσεις υπό όρους μπορούμε να κάνουμε το παραπάνω σενάριο πολύ πιο ευέλικτο.

Μια παράμετρος σας επιτρέπει να αποθηκεύσετε μια τιμή την οποία μπορείτε να χρησιμοποιήσετε αργότερα στο σενάριο. Οι πιο συνηθισμένοι τύποι τιμών είναι οι συμβολοσειρές (κείμενο), οι ακέραιοι αριθμοί (ακέραιοι αριθμοί) ή οι πλωτήρες (δεκαδικοί αριθμοί).

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

Ανοίξτε το IDLE στο Raspberry Pi και ανοίξτε ένα νέο έργο (Αρχείο> Νέο αρχείο). Στη συνέχεια πληκτρολογήστε το ακόλουθο. Προσέξτε να βεβαιωθείτε ότι περιλαμβάνονται όλες οι εσοχές (καρτέλες) χρησιμοποιώντας το πλήκτρο καρτέλας:

εισαγωγή RPi. GPIO ως GPIO

χρόνος εισαγωγής από sys εισαγωγή argv wholed = argv [1] ledaction = argv [2] LEDa = 17 LEDb = 18 LEDc = 22 LEDd = 23 GPIO.setmode (GPIO. BCM) GPIO.setup (LEDa, GPIO. OUT) GPIO. setmode (GPIO. BCM) GPIO.setup (LEDb, GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDc, GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDd, GPIO ΕΞΟΔΟΣ) εάν η διαγραφή == "απενεργοποιημένη": εάν ονομαστεί == "α": GPIO.output (LEDa, False) ifledled == "b": GPIO.output (LEDb, False) if wholed == "c": GPIO.output (LEDc, False) ifledled == "d": GPIO.output (LEDd, False) ifledled == "all": GPIO.output (LEDa, False) GPIO.output (LEDb, False) GPIO. έξοδος (LEDc, False) GPIO.output (LEDd, False) if ledaction == "on": if wholed == "a": GPIO.output (LEDa, True) if wholed == "b": GPIO.output (LEDb, True) εάν ονομαζόταν == "c": GPIO.output (LEDc, True) ifledled == "d": GPIO.output (LEDd, True) ifledled == "all": GPIO.output (LEDa, True) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)

Αποθηκεύστε το έργο σας ως controllight.py (Αρχείο> Αποθήκευση ως) στο φάκελο Έγγραφα. Τώρα ανοίξτε το Τερματικό (Μενού> Αξεσουάρ> Τερματικό) και πληκτρολογήστε την ακόλουθη εντολή:

python controllight.py b on

Το δεύτερο LED πρέπει να ανάψει. Τώρα πληκτρολογήστε τα ακόλουθα:

python controllight.py b off

Το δεύτερο LED πρέπει να σβήσει.

Στις γραμμές 5, 6, 7 & 8, δημιουργούμε τις παραμέτρους LEDa, LEDb, LEDc και LEDd για να αποθηκεύσουμε ποια καρφίτσα GPIO έχουμε συνδέσει σε ποια LED. Αυτό μας επιτρέπει να χρησιμοποιούμε εναλλακτικές καρφίτσες GPIO χωρίς να χρειάζεται να κάνουμε ουσιαστικές αλλαγές στο σενάριο.

Για παράδειγμα, αν θέλαμε να συνδέσουμε το πρώτο καλώδιο LED στο Pin 3 (GPIO 2), θα πρέπει απλώς να αλλάξουμε τη γραμμή 5 στα ακόλουθα:

LEDa = 2

Η γραμμή 4 αποθηκεύει τις τιμές που πληκτρολογήσατε μετά το controllight.py στις παραμέτρους που εμφανίζονται (c) και ledaction (on). Στη συνέχεια, το σενάριο χρησιμοποιεί αυτές τις παραμέτρους, μαζί με μια σειρά δηλώσεων υπό όρους, για να αποφασίσει ποια LED θα ελέγξει και αν θα την ενεργοποιήσει ή θα την απενεργοποιήσει.

Η γραμμή 16 (αν το ledaction == "on":) είναι μια δήλωση υπό όρους. Οι εσοχές που ακολουθούν αυτήν τη δήλωση θα εκτελούνται μόνο εάν πληρούται η προϋπόθεση της δήλωσης. Σε αυτό το σενάριο, η προϋπόθεση είναι το ledaction να περιέχει το κείμενο.

Διαβάζοντας τις υπόλοιπες δηλώσεις υπό όρους του σεναρίου, μπορείτε να προβλέψετε τι θα συμβεί όταν πληκτρολογήσετε την ακόλουθη εντολή στο τερματικό;

python controllight.py all on

Γιατί να μην προχωρήσετε και να δημοσιεύσετε την απάντησή σας στην παρακάτω ενότητα σχολίων.

Συνιστάται: