Έλεγχος εξωτερικής λυχνίας LED με ακίδες Raspberry Pi και GPIO

Σε αυτήν την ανάρτηση θα εξερευνήσουμε τις καρφίτσες Raspberry Pi GPIO δημιουργώντας ένα πρόγραμμα "Hello World" GPIO που οδηγεί σε ένα κόκκινο LED που αναβοσβήνει. Θα χρησιμοποιούμε τη γλώσσα προγραμματισμού Python. Χρησιμοποιώ ένα χωρίς κεφάλι Raspberry Pi Zero WH (ασύρματο με επικολλημένες κεφαλίδες) με Raspbian Stretch Lite (λειτουργικό σύστημα Raspberry Pi με ελάχιστη εικόνα βασισμένη στο Debian Stretch).

Θα μιλήσω με το ακέφαλο Pi χρησιμοποιώντας sshκαι θα μεταφέρω τα απαραίτητα αρχεία από το Mac μου στο Pi χρησιμοποιώντας scpεντολές. Υποθέτω ότι έχετε εγκαταστήσει και λειτουργεί το Raspberry Pi με εγκατεστημένο το Raspbian OS. Εάν όχι, τότε υπάρχουν πολλά άρθρα στο Διαδίκτυο που περιγράφουν πώς να ρυθμίσετε το Pi και να εγκαταστήσετε το Raspbian, συμπεριλαμβανομένης της επίσημης τεκμηρίωσης του Raspberry Pi.

Πράγματα που θα χρειαστείτε:

  • 1 x Raspberry Pi (χρησιμοποιώ το μοντέλο Pi Zero WH)
  • 1 x σανίδα ψωμιού
  • 1 x κόκκινη λυχνία LED
  • 1 x 330 ohm αντίσταση
  • 2 x καλώδιο jumper από θηλυκό σε αρσενικό

Διαμόρφωση ακίδων GPIO

Το GPIO σημαίνει Έξοδος Εισόδου Γενικού Σκοπού . Με τη βοήθεια των ακίδων GPIO, ένα Raspberry Pi μπορεί να συνδεθεί και να αλληλεπιδράσει με εξωτερικά ηλεκτρονικά εξαρτήματα. Τα πρόσφατα μοντέλα Raspberry Pi (μοντέλα Pi 3, Pi Zero, Pi W και Pi WH κ.ο.κ.) περιέχουν 40 ακίδες GPIO. Κάθε ακίδα μπορεί να ενεργοποιηθεί ή να απενεργοποιηθεί, ή να μεταβεί HIGHή LOWμε ηλεκτρονικούς όρους. Εάν ο ακροδέκτης έχει HIGHέξοδο 3,3 βολτ, εάν ο πείρος LOWείναι απενεργοποιημένος.

Στο παράδειγμά μας, θα χρησιμοποιούμε pin 6(έδαφος) και pin 25. Για να μάθετε περισσότερα σχετικά με τις καρφίτσες GPIO στο Raspberry Pi, checkout pinout.xyz.

Ρύθμιση του κυκλώματος

Πρέπει να απενεργοποιήσετε το Pi κατά την κατασκευή του κυκλώματος. Θα δημιουργήσουμε ένα κύκλωμα όπως απεικονίζεται στο παρακάτω διάγραμμα:

Σημείωση : Η αντίσταση στην εικόνα είναι 220 Ohm, αλλά έχω χρησιμοποιήσει 330 Ohm στο κύκλωμα μου.

  1. Χρησιμοποιήστε ένα καλώδιο βραχυκυκλωμάτων θηλυκού έως αρσενικού για σύνδεση pin 6(Γείωση) (μαύρο καλώδιο στην παραπάνω εικόνα) στην αρνητική σειρά του breadboard.
  2. Χρησιμοποιήστε έναν άλλον θηλυκό σε αρσενικό πουλόβερ για να συνδεθείτε για να συνδέσετε το GPIO pin 25στο σημείο που αντιπροσωπεύεται από τη σειρά Aκαι τη στήλη 12στο breadboard όπως φαίνεται παραπάνω (μπλε καλώδιο στην παραπάνω εικόνα).
  3. Συνδέστε το ένα άκρο ενός 330 ohm αντιστάτη στην αρνητική σειρά (από τη σειρά που επισημαίνεται με πράσινο, όπου το μαύρο καλώδιο ανωτέρω νωρίτερα συνδεδεμένο) και συνδέστε το άλλο άκρο προς το σημείο που αντιπροσωπεύεται από γραμμή Cστήλης 11στο breadboard όπως φαίνεται παραπάνω.
  4. Το μικρότερο άκρο του LED είναι το αρνητικό άκρο και το μεγαλύτερο είναι το θετικό άκρο. Το μακρύτερο άκρο πρέπει πάντα να συνδέεται στο σημείο του κυκλώματος με υψηλότερη τάση (δηλαδή υψηλότερο δυναμικό). Το μικρότερο άκρο του LED συνδέεται με ένα GPIO pin 25(το οποίο μπορεί να αποδώσει 3.3V) μέσω του μπλε καλωδίου και το μεγαλύτερο άκρο συνδέεται στη γείωση pin 6(το οποίο είναι 0V και ενεργεί σαν τον αρνητικό ακροδέκτη της μπαταρίας) μέσω του μαύρου καλωδίου με μια αντίσταση μεταξύ τους.

Αντίσταση

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

  1. Γιατί χρειαζόμαστε μια αντίσταση στο κύκλωμα μας;
  2. Πώς καθορίζουμε πόσα Ohms (το μέτρο της ηλεκτρικής αντίστασης) πρέπει να είναι η αντίσταση;

Απαιτείται αντίσταση για να απομακρυνθεί η επιπλέον ηλεκτρική ενέργεια (τάση) από το Raspberry Pi. Το Raspberry Pi εκτιμάται ότι παρέχει 50mA στα 3.3V. Ας πούμε ότι το κόκκινο LED μας μπορεί να έχει μια τάση προς τα εμπρός (η τάση προς τα εμπρός είναι η «αρνητική τάση», που χρησιμοποιείται από το LED όταν είναι αναμμένη) περίπου 2V και καταναλώνει ρεύμα 4mA. Έτσι, τα υπόλοιπα 1.3V θα πρέπει να απορριφθούν από την αντίσταση.

Χρησιμοποιώντας το νόμο του Ohm V = IR, R= (3.3V - 2V) / (4/1000)που έρχεται γύρω 325 ohms- γι 'αυτό προτείνω να χρησιμοποιήσετε μια αντίσταση 330 ohm .

Το ανακάλυψα από μια συζήτηση φόρουμ Raspberry Pi.

Κάνοντας το LED να αναβοσβήνει χρησιμοποιώντας το Python

Τώρα που έχουμε ένα ολοκληρωμένο κύκλωμα, το επόμενο μέρος είναι να προγραμματίσουμε τις θύρες GPIO για να κάνει τη μαγεία να συμβεί: για να αναβοσβήνει η λυχνία LED. Θα χρησιμοποιήσουμε την έξοδο του GPIO pin 25για να κάνουμε το LED να αναβοσβήνει.

Ξεκινήστε το Pi και συνδεθείτε σε αυτό χρησιμοποιώντας ssh. Στο τερματικό, χρησιμοποιήστε την ακόλουθη εντολή για να εγκαταστήσετε τη βιβλιοθήκη Python gpiozero. Η gpiozeroβιβλιοθήκη διευκολύνει την εργασία με καρφίτσες GPIO και συνδεδεμένα εξωτερικά στοιχεία.

Για να εγκαταστήσετε τη βιβλιοθήκη Python, πληκτρολογήστε sudo apt-get install python3-gpiozero.

Τώρα θα τρέξουμε κάποιον κώδικα Python. Αποθηκεύστε τον παρακάτω κώδικα στο σύστημα αρχείων Pi σε ένα αρχείο με το όνομα blink1.py. Το σενάριο ενεργοποιεί βασικά το LED που είναι συνδεδεμένο pin 25, κοιμάται για 1 δευτερόλεπτο, μετά σβήνει το LED και κοιμάται ξανά για 1 δευτερόλεπτο. Και αυτό γίνεται συνεχώς σε βρόχο έως ότου τερματιστεί το πρόγραμμα (πατώντας ctrl+ c).

Τώρα από το τερματικό, πηγαίνετε το στον κατάλογο όπου το σενάριο αποθηκεύεται και να το εκτελέσετε χρησιμοποιώντας την εντολή: python3 blink1.py.

Θα δείτε το κόκκινο LED να αναβοσβήνει ως εξής:

Μπορούμε να δημιουργήσουμε πολλά διασκεδαστικά πράγματα gpiozeroχρησιμοποιώντας μια παρόμοια εγκατάσταση. Δείτε την τεκμηρίωση για την gpiozeroοποία παρουσιάζονται μερικά ενδιαφέροντα παραδείγματα. Δοκιμάστε να δημιουργήσετε ένα σύστημα φωτεινού σηματοδότη.

Αρχικά δημοσιεύτηκε στο shahbaz.co στις 7 Απριλίου 2018.