Το Raspberry Pi είναι ένας πίνακας βασισμένος σε επεξεργαστή αρχιτεκτονικής ARM σχεδιασμένος για ηλεκτρονικούς μηχανικούς και χομπίστες. Το PI είναι μια από τις πιο αξιόπιστες πλατφόρμες ανάπτυξης έργων εκεί έξω τώρα. Με υψηλότερη ταχύτητα επεξεργαστή και 1 GB RAM, το PI μπορεί να χρησιμοποιηθεί για πολλά έργα υψηλού προφίλ, όπως η επεξεργασία εικόνας και το IoT.
Για την εκτέλεση οποιωνδήποτε έργων υψηλού προφίλ, πρέπει να κατανοήσουμε τις βασικές λειτουργίες του PI. Θα καλύψουμε όλες τις βασικές λειτουργίες του Raspberry Pi σε αυτά τα σεμινάρια. Σε κάθε σεμινάριο θα συζητήσουμε μία από τις λειτουργίες του PI. Μέχρι το τέλος αυτής της σειράς Raspberry Pi Tutorial, θα μπορείτε να κάνετε έργα υψηλού προφίλ μόνοι σας. Παρακολουθήστε τα παρακάτω σεμινάρια:
- Ξεκινώντας με το Raspberry Pi
- Διαμόρφωση Raspberry Pi
- LED Blinky
- Διασύνδεση κουμπιών
- Δημιουργία PWM
- Έλεγχος κινητήρα DC
- Έλεγχος κινητήρα Stepper
- Μητρώο Shift Interfacing
- Εκμάθηση Raspberry Pi ADC
- Έλεγχος σερβοκινητήρα
- Χωρητικό Touch Pad
Σε αυτό το σεμινάριο, θα ελέγξουμε μια οθόνη LCD 16x2 χρησιμοποιώντας το Raspberry Pi. Θα συνδέσουμε την οθόνη LCD με τους ακροδέκτες GPIO (Έξοδος εισαγωγής γενικού σκοπού) του PI για να εμφανίσουμε χαρακτήρες σε αυτό. Θα γράψουμε ένα πρόγραμμα στο PYTHON για να στείλουμε τις κατάλληλες εντολές στην οθόνη LCD μέσω GPIO και να εμφανίσουμε τους απαιτούμενους χαρακτήρες στην οθόνη του. Αυτή η οθόνη θα είναι χρήσιμη για την εμφάνιση τιμών αισθητήρα, την κατάσταση διακοπής και επίσης για την εμφάνιση του χρόνου.
Υπάρχουν διάφοροι τύποι LCD στην αγορά. Η γραφική οθόνη LCD είναι πιο περίπλοκη από την οθόνη LCD 16x2. Εδώ λοιπόν πρόκειται για οθόνη LCD 16x2, μπορείτε ακόμη και να χρησιμοποιήσετε οθόνη LCD 16x1 εάν θέλετε. 16x2 LCD έχει 32 χαρακτήρες συνολικά, 16 σε 1 ης γραμμής και ένα άλλο 16 σε 2 nd γραμμή. Το JHD162 είναι LCD χαρακτήρων 16x2 LCD. Έχουμε ήδη διασυνδέσει LCD 16x2 με 8051, AVR, Arduino κ.λπ. Μπορείτε να βρείτε όλο το έργο μας που σχετίζεται με το LCD 16x2 ακολουθώντας αυτόν τον σύνδεσμο.
Θα συζητήσουμε λίγο για το PI GPIO προτού προχωρήσουμε περαιτέρω.
Υπάρχουν 40 καρφίτσες εξόδου GPIO στο Raspberry Pi 2. Αλλά από τους 40, μπορούν να προγραμματιστούν μόνο 26 ακροδέκτες GPIO (GPIO2 έως GPIO27). Ορισμένες από αυτές τις ακίδες εκτελούν ορισμένες ειδικές λειτουργίες. Με το ειδικό GPIO να παραμεριστεί, απομένουν 17 GPIO.
Υπάρχουν πίνακες εξόδου ισχύος + 5V (Pin 2 ή 4) και + 3.3V (Pin 1 ή 17), για τη σύνδεση άλλων μονάδων και αισθητήρων. Θα τροφοδοτήσουμε την οθόνη LCD 16 * 2 μέσω της ράγας + 5V. Μπορούμε να στείλουμε σήμα ελέγχου + 3,3v σε LCD, αλλά για να δουλέψουμε LCD πρέπει να το τροφοδοτήσουμε κατά + 5V. Η οθόνη LCD δεν λειτουργεί με + 3.3V.
Για να μάθετε περισσότερα σχετικά με τις καρφίτσες GPIO και τις τρέχουσες εξόδους τους, διαβάστε: LED που αναβοσβήνει με Raspberry Pi
Απαιτούμενα στοιχεία:
Εδώ χρησιμοποιούμε το Raspberry Pi 2 Model B με το Raspbian Jessie OS. Όλες οι βασικές απαιτήσεις υλικού και λογισμικού συζητήθηκαν προηγουμένως, μπορείτε να το αναζητήσετε στην Εισαγωγή Raspberry Pi, εκτός από αυτό που χρειαζόμαστε:
- Σύνδεση ακίδων
- Μονάδα LCD 16 * 2
- 1ΚΩ αντίσταση (2 τεμάχια)
- 10K ποτ
- Πυκνωτής 1000μF
- Ψωμί
Κύκλωμα και επεξήγηση εργασίας:
Όπως φαίνεται στο διάγραμμα κυκλώματος, διαθέτουμε Interfaced Raspberry Pi με οθόνη LCD συνδέοντας 10 ακροδέκτες GPIO του PI με τις καρφίτσες ελέγχου και μεταφοράς δεδομένων LCD 16 * 2. Χρησιμοποιήσαμε τα GPIO Pin 21, 20, 16, 12, 25, 24, 23 και 18 ως BYTE και δημιουργήσαμε τη λειτουργία «PORT» για την αποστολή δεδομένων σε LCD. Εδώ το GPIO 21 είναι LSB (λιγότερο σημαντικό bit) και το GPIO18 είναι MSB (το πιο σημαντικό bit).
Η μονάδα LCD 16x2 διαθέτει 16 ακίδες, οι οποίες μπορούν να χωριστούν σε πέντε κατηγορίες, Καρφίτσες ισχύος, καρφίτσα αντίθεσης, Καρφίτσες ελέγχου, Καρφίτσες δεδομένων και καρφίτσες οπίσθιου φωτισμού. Ακολουθεί η σύντομη περιγραφή για αυτά:
Κατηγορία |
Καρφίτσα ΟΧΙ. |
Όνομα καρφιτσώματος |
Λειτουργία |
Power Pin |
1 |
VSS |
Καρφίτσα γείωσης, συνδεδεμένη στο έδαφος |
2 |
VDD ή Vcc |
Πείρος τάσης + 5V |
|
Καρφίτσα αντίθεσης |
3 |
V0 ή VEE |
Ρύθμιση αντίθεσης, συνδεδεμένη με Vcc διεξοδικά μια μεταβλητή αντίσταση. |
Καρφίτσες ελέγχου |
4 |
RS |
Εγγραφή Επιλέξτε Pin, RS = 0 Λειτουργία εντολών, RS = 1 Λειτουργία δεδομένων |
5 |
RW |
Καρφίτσα ανάγνωσης / εγγραφής, RW = 0 λειτουργία εγγραφής, RW = 1 Λειτουργία ανάγνωσης |
|
6 |
μι |
Ενεργοποίηση, ένας υψηλός έως χαμηλός παλμός πρέπει να ενεργοποιήσει την οθόνη LCD |
|
Καρφίτσες δεδομένων |
7-14 |
D0-D7 |
Καρφίτσες δεδομένων, Αποθηκεύει τα δεδομένα που θα εμφανίζονται σε LCD ή στις οδηγίες εντολής |
Πινέζες οπίσθιου φωτισμού |
15 |
LED + ή A. |
Για να ενεργοποιήσετε το Backlight + 5V |
16 |
LED- ή Κ |
Γήπεδο οπίσθιου φωτισμού |
Συνιστούμε ανεπιφύλακτα να διαβάσετε αυτό το άρθρο για να κατανοήσετε την οθόνη LCD που λειτουργεί με τις καρφίτσες και τις εντολές Hex.
Θα συζητήσουμε εν συντομία τη διαδικασία αποστολής δεδομένων σε LCD:
1. Το E είναι υψηλό (ενεργοποιώντας τη μονάδα) και το RS είναι χαμηλό (λέγοντας στην LCD ότι δίνουμε εντολή)
2. Δίνοντας τιμή 0x01 στη θύρα δεδομένων ως εντολή για εκκαθάριση οθόνης.
3. Το E είναι υψηλό (ενεργοποιώντας τη μονάδα) και το RS είναι υψηλό (λέγοντας στην LCD ότι δίνουμε δεδομένα)
4. Πρέπει να εμφανίζεται ο κωδικός ASCII για χαρακτήρες.
5. Το E είναι χαμηλό (λέγοντας στην LCD ότι έχουμε τελειώσει την αποστολή δεδομένων)
6. Μόλις αυτός ο πείρος Ε μειωθεί, η οθόνη LCD επεξεργάζεται τα ληφθέντα δεδομένα και εμφανίζει το αντίστοιχο αποτέλεσμα. Επομένως, αυτός ο πείρος έχει οριστεί σε υψηλό πριν από την αποστολή δεδομένων και τραβιέται προς τα κάτω μετά την αποστολή δεδομένων.
Όπως είπαμε, θα στείλουμε τους χαρακτήρες ο ένας μετά τον άλλο. Οι χαρακτήρες δίνονται στην οθόνη LCD με κωδικούς ASCII (αμερικανικός τυπικός κώδικας για ανταλλαγή πληροφοριών). Ο πίνακας των κωδικών ASCII φαίνεται παρακάτω. Για παράδειγμα, για να δείξουμε έναν χαρακτήρα "@", πρέπει να στείλουμε έναν δεκαεξαδικό κωδικό "40". Εάν δώσουμε την τιμή 0x73 στην οθόνη LCD θα εμφανιστεί το "s". Έτσι θα στείλουμε τους κατάλληλους κωδικούς στην οθόνη LCD για να εμφανιστεί η συμβολοσειρά " CIRCUITDIGEST "
Επεξήγηση προγραμματισμού:
Μόλις όλα συνδεθούν σύμφωνα με το διάγραμμα κυκλώματος, μπορούμε να ενεργοποιήσουμε το PI για να γράψουμε το πρόγραμμα σε PYHTON.
Θα μιλήσουμε για λίγες εντολές που πρόκειται να χρησιμοποιήσουμε στο πρόγραμμα PYHTON, Πρόκειται να εισαγάγουμε αρχείο GPIO από τη βιβλιοθήκη, η παρακάτω λειτουργία μας επιτρέπει να προγραμματίζουμε τις καρφίτσες GPIO του PI. Μετονομάζουμε επίσης "GPIO" σε "IO", οπότε στο πρόγραμμα όποτε θέλουμε να αναφερθούμε στις καρφίτσες GPIO θα χρησιμοποιήσουμε τη λέξη "IO".
εισαγάγετε RPi.GPIO ως IO
Μερικές φορές, όταν οι ακίδες GPIO, τις οποίες προσπαθούμε να χρησιμοποιήσουμε, μπορεί να κάνουν κάποιες άλλες λειτουργίες. Σε αυτήν την περίπτωση, θα λάβουμε προειδοποιήσεις κατά την εκτέλεση του προγράμματος. Η παρακάτω εντολή λέει στο PI να αγνοήσει τις προειδοποιήσεις και να συνεχίσει το πρόγραμμα.
IO.setwarnings (Λάθος)
Μπορούμε να παραπέμψουμε τους ακροδέκτες GPIO του PI, είτε με τον αριθμό καρφίτσας επί του σκάφους είτε με τον αριθμό λειτουργίας τους. Όπως το «PIN 29» στον πίνακα είναι «GPIO5». Λοιπόν, λέμε εδώ ότι θα αντιπροσωπεύσουμε το pin εδώ με «29» ή «5».
IO.setmode (IO.BCM)
Ρυθμίζουμε 10 ακροδέκτες GPIO ως ακίδες εξόδου, για καρφίτσες δεδομένων και ελέγχου LCD.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
ενώ η εντολή 1: χρησιμοποιείται ως βρόχος για πάντα, με αυτήν την εντολή οι δηλώσεις εντός αυτού του βρόχου θα εκτελούνται συνεχώς.
Όλες οι άλλες λειτουργίες και εντολές έχουν επεξηγηθεί παρακάτω στην ενότητα «Κωδικός» με τη βοήθεια «Σχόλια».
Μετά τη σύνταξη του προγράμματος και την εκτέλεση του, το Raspberry Pi στέλνει χαρακτήρες στην οθόνη LCD μία προς μία και η οθόνη LCD εμφανίζει τους χαρακτήρες στην οθόνη.