- Εμφάνιση επτά τμημάτων:
- Απαιτούμενα στοιχεία:
- Κύκλωμα και επεξήγηση εργασίας:
- Επεξήγηση προγραμματισμού:
Το Raspberry Pi είναι ένας πίνακας βασισμένος σε επεξεργαστή αρχιτεκτονικής ARM σχεδιασμένος για ηλεκτρονικούς μηχανικούς και χομπίστες. Το PI είναι μια από τις πιο αξιόπιστες πλατφόρμες ανάπτυξης έργων εκεί έξω τώρα. Με υψηλότερη ταχύτητα επεξεργαστή και 1 GB RAM, το PI μπορεί να χρησιμοποιηθεί για πολλά έργα υψηλού προφίλ, όπως η επεξεργασία εικόνας και το IoT.
Για την εκτέλεση οποιωνδήποτε έργων υψηλού προφίλ, πρέπει να κατανοήσουμε τις βασικές λειτουργίες του PI. Θα καλύψουμε όλες τις βασικές λειτουργίες του Raspberry Pi σε αυτά τα σεμινάρια. Σε κάθε σεμινάριο θα συζητήσουμε μία από τις λειτουργίες του PI. Μέχρι το τέλος αυτής της σειράς Tutorials Raspberry Pi, θα μπορείτε να μάθετε το Raspberry Pi και να κάνετε καλά έργα μόνοι σας. Παρακολουθήστε τα παρακάτω σεμινάρια:
- Ξεκινώντας με το Raspberry Pi
- Διαμόρφωση Raspberry Pi
- LED Blinky
- Διασύνδεση κουμπιών
- Παραγωγή Raspberry Pi PWM
- Διασύνδεση LCD με Raspberry Pi
- Έλεγχος κινητήρα DC
- Έλεγχος κινητήρα Stepper
- Μητρώο Shift Interfacing
- Εκμάθηση Raspberry Pi ADC
- Έλεγχος σερβοκινητήρα
- Χωρητικό Touch Pad
Σε αυτό το σεμινάριο, πρόκειται να κάνουμε διεπαφή οθόνης τμημάτων Raspberry Pi 7. Οι οθόνες επτά τμημάτων είναι οι φθηνότερες για μια οθόνη. Μερικά από αυτά τα τμήματα που στοιβάζονται μεταξύ τους θα μπορούσαν να χρησιμοποιηθούν για την εμφάνιση θερμοκρασίας, αντίθετης τιμής κ.λπ. Μετά από αυτό θα γράψουμε ένα πρόγραμμα στο PYTHON για επτά επίδειξη τμημάτων που θα μετράει από 0-9 και θα επαναρυθμιστεί στο μηδέν.
Εμφάνιση επτά τμημάτων:
Υπάρχουν διαφορετικοί τύποι και μεγέθη 7 εμφανίσεων τμημάτων. Έχουμε καλύψει το Seven Segment που δουλεύει λεπτομερώς εδώ. Βασικά υπάρχουν δύο τύποι 7 Segment, Common Anode type (Common Positive or Common VCC) και Common Cathode type (Common Negative or Common Ground).
Common Anode (CA): Σε αυτό όλα τα αρνητικά τερματικά (κάθοδος) και των 8 LED είναι συνδεδεμένα μεταξύ τους (βλ. Διάγραμμα παρακάτω), που ονομάζεται COM. Και όλα τα θετικά τερματικά μένουν μόνοι.
Common Cathode (CC): Σε αυτό όλα τα θετικά τερματικά (Anodes) και των 8 LED είναι συνδεδεμένα μεταξύ τους, που ονομάζονται COM. Και όλα τα αρνητικά θερμικά μένουν μόνα τους.
Αυτές οι οθόνες επτά τμημάτων CC και CA έρχονται σε πολύ βολική λειτουργία ενώ συγχρονίζονται πολλά κελιά. Στο σεμινάριό μας θα χρησιμοποιήσουμε CC ή Common Cathode Seven Segment Display.
Έχουμε ήδη Interfaced 7 τμήμα με 8051, με Arduino και με AVR. Έχουμε χρησιμοποιήσει επίσης οθόνη 7 τμημάτων σε πολλά από τα Έργα μας.
Θα συζητήσουμε λίγο για το Raspberry Pi GPIO πριν προχωρήσουμε περαιτέρω, Υπάρχουν 40 καρφίτσες εξόδου GPIO στο Raspberry Pi 2. Αλλά από τα 40, μπορούν να προγραμματιστούν μόνο 26 ακροδέκτες GPIO (GPIO2 έως GPIO27), δείτε την παρακάτω εικόνα. Ορισμένες από αυτές τις ακίδες εκτελούν ορισμένες ειδικές λειτουργίες. Με το ειδικό GPIO να παραμεριστεί, απομένουν 17 GPIO.
Το σήμα GPIO (pin 1 ή 17) + 3.3V είναι αρκετό για να οδηγήσει την οθόνη 7 τμημάτων. Για να παρέχουμε το τρέχον όριο, θα χρησιμοποιήσουμε την αντίσταση 1KΩ για κάθε τμήμα όπως φαίνεται στο Διάγραμμα κυκλώματος.
Για να μάθετε περισσότερα σχετικά με τις καρφίτσες GPIO και τις τρέχουσες εξόδους τους, διαβάστε: LED που αναβοσβήνει με Raspberry Pi
Απαιτούμενα στοιχεία:
Εδώ χρησιμοποιούμε το Raspberry Pi 2 Model B με το Raspbian Jessie OS. Όλες οι βασικές απαιτήσεις υλικού και λογισμικού συζητήθηκαν προηγουμένως, μπορείτε να το αναζητήσετε στην Εισαγωγή Raspberry Pi, εκτός από αυτό που χρειαζόμαστε:
- Σύνδεση ακίδων
- Κοινή οθόνη καθόδου 7 (LT543)
- 1ΚΩ αντίσταση (8 τεμάχια)
- Ψωμί
Κύκλωμα και επεξήγηση εργασίας:
Οι συνδέσεις, οι οποίες γίνονται για την εμφάνιση ενδιάμεσων διεπαφών 7 με το Raspberry Pi, δίνονται παρακάτω. Έχουμε χρησιμοποιήσει το Τμήμα Common Cathode 7 εδώ:
PIN1 ή e ------------------ GPIO21
PIN2 ή d ------------------ GPIO20
PIN4 ή c ------------------ GPIO16
PIN5 ή h ή DP ---------- GPIO 12 // δεν είναι υποχρεωτικό καθώς δεν χρησιμοποιούμε δεκαδικό σημείο
PIN6 ή b ------------------ GPIO6
PIN7 ή a ------------------ GPIO13
PIN9 ή f ------------------ GPIO19
PIN10 ή g ---------------- GPIO26
PIN3 ή PIN8 ------------- συνδεδεμένο στο έδαφος
Έτσι θα χρησιμοποιούμε 8 GPIO ακίδες PI ως 8bit PORT. Εδώ το GPIO13 είναι LSB (λιγότερο σημαντικό bit) και το GPIO 12 είναι MSB (το πιο σημαντικό bit).
Τώρα, αν θέλουμε να εμφανίζεται ο αριθμός «1», πρέπει να τμήματα εξουσία Β και Γ. Για να τροφοδοτήσουμε τα τμήματα B και C, πρέπει να τροφοδοτήσουμε τα GPIO6 και GPIO16. Έτσι, το byte για τη λειτουργία "PORT" θα είναι 0b00000110 και η δεκαεξαδική τιμή του "PORT" θα είναι 0x06. Και με τις δύο καρφίτσες ψηλά, έχουμε την ένδειξη "1" στην οθόνη.
Έχουμε γράψει τις τιμές για κάθε ψηφίο που θα εμφανίζονται και αποθηκεύουμε αυτές τις τιμές σε μια συμβολοσειρά χαρακτήρων που ονομάζεται 'DISPLAY' (Ελέγξτε την ενότητα Κώδικας παρακάτω). Στη συνέχεια, καλέσαμε αυτές τις τιμές μία προς μία για να δείξουμε το αντίστοιχο ψηφίο στην οθόνη, χρησιμοποιώντας τη Λειτουργία «PORT».
Επεξήγηση προγραμματισμού:
Μόλις όλα συνδεθούν σύμφωνα με το διάγραμμα κυκλώματος, μπορούμε να ενεργοποιήσουμε το 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)
Ορίζουμε 8 ακροδέκτες GPIO ως ακίδες εξόδου, για καρφίτσες δεδομένων και ελέγχου LCD.
IO.setup (13, IO.OUT) IO.setup (6, IO.OUT) IO.setup (16, IO.OUT) IO.setup (20, IO.OUT) IO.setup (21, IO.OUT) IO.setup (19, IO.OUT) IO.setup (26, IO.OUT) IO.setup (12, IO.OUT)
Σε περίπτωση που η συνθήκη στα τιράντες είναι αληθινή, οι δηλώσεις μέσα στο βρόχο θα εκτελεστούν μία φορά. Επομένως, εάν το "pin" bit0 of 8bit είναι αληθινό, το PIN13 θα είναι ΥΨΗΛΟ, διαφορετικά το PIN13 θα είναι ΧΑΜΗΛΟ. Έχουμε οκτώ συνθήκες «αν αλλιώς» για bit0 έως bit7, έτσι ώστε το κατάλληλο LED, μέσα στην οθόνη 7 τμημάτων, να μπορεί να γίνει High ή Low, για να εμφανίσει τον αντίστοιχο αριθμό.
if (pin & 0x01 == 0x01): IO.output (13,1) other: IO.output (13,0)
Αυτή η εντολή εκτελεί τον βρόχο 10 φορές, x αυξάνεται από 0 έως 9.
για x στην περιοχή (10):
Η παρακάτω εντολή χρησιμοποιείται ως βρόχος για πάντα, με αυτήν την εντολή οι δηλώσεις μέσα σε αυτόν τον βρόχο θα εκτελούνται συνεχώς.
Ενώ 1:
Όλες οι άλλες λειτουργίες και εντολές έχουν επεξηγηθεί παρακάτω στην ενότητα «Κωδικός» με τη βοήθεια «Σχόλια».
Αφού γράψατε το πρόγραμμα και το εκτελέσατε, το Raspberry Pi ενεργοποιεί τους αντίστοιχους GPIO να εμφανίσουν το ψηφίο στην οθόνη 7 τμημάτων. Το πρόγραμμα είναι γραμμένο ώστε η οθόνη να μετρά συνεχώς από 0-9.