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

Μονάδες οθόνης Arduino και TM1638 LED: 11 βήματα
Μονάδες οθόνης Arduino και TM1638 LED: 11 βήματα

Βίντεο: Μονάδες οθόνης Arduino και TM1638 LED: 11 βήματα

Βίντεο: Μονάδες οθόνης Arduino και TM1638 LED: 11 βήματα
Βίντεο: Controlling a TM1638 with an Arduino Uno 2024, Ιούλιος
Anonim
Μονάδες οθόνης Arduino και TM1638 LED
Μονάδες οθόνης Arduino και TM1638 LED

Εάν χρειάζεστε έναν γρήγορο και εύκολο τρόπο για να προσθέσετε κάποια είσοδο και έξοδο χρήστη σε ένα έργο, αυτές οι ενότητες οθόνης είναι ενδιαφέρουσες και διασκεδαστικές.

Περιέχουν οκτώ κόκκινα ψηφία LED 7 τμημάτων, οκτώ κόκκινα/πράσινα LED και επίσης οκτώ κουμπιά για την είσοδο του χρήστη. Οι μονάδες μπορούν επίσης να είναι αλυσοδεμένες, επιτρέποντας έως και πέντε ταυτόχρονα, και ένα κοντό καλώδιο περιλαμβάνεται σε κάθε μονάδα, καθώς και μερικά κοντινά διαχωριστικά και μπουλόνια, όπως φαίνεται στην εικόνα.

Βήμα 1:

Εικόνα
Εικόνα

Τα διαχωριστικά είναι αρκετά μεγάλα για να ανυψώσουν το PCB πάνω από μια επιφάνεια, ωστόσο για να τοποθετήσετε τις σανίδες οπουδήποτε χρήσιμα θα χρειαστείτε μεγαλύτερα. Μπορεί επίσης να θέλετε να αφαιρέσετε τις υποδοχές IDC εάν θέλετε να τοποθετήσετε τη μονάδα κοντά στην επιφάνεια ενός πίνακα. Αυτό θα ήταν ένα απλό έργο αποκόλλησης, καθώς είναι πρίζες μέσω οπών.

Βήμα 2:

Εικόνα
Εικόνα

Ο πίνακας ελέγχεται από ένα TM1638 IC.

Αυτό είναι ένα IC οδήγησης LED και διεπαφής από την "Titan Micro Electronics". Μπορείτε επίσης να αγοράσετε αυτά τα IC από το PMD Way. Μπορείτε επίσης να κατεβάσετε το φύλλο δεδομένων για περισσότερες λεπτομέρειες.

Βήμα 3: Ξεκινώντας - Υλικό

Ξεκινώντας - Υλικό
Ξεκινώντας - Υλικό

Υλικό-Η σύνδεση σε έναν συμβατό με Arduino πίνακα (ή άλλο MCU) είναι αρκετά απλή. Τα pinouts εμφανίζονται στο πίσω μέρος του PCB και ταιριάζουν με το εξάρτημα στο καλώδιο της κορδέλας. Αν κοιτάξετε το τέλος του καλωδίου ως τέτοιο.

Η επάνω-δεξιά τρύπα είναι η καρφίτσα ένα, με την επάνω αριστερή να είναι η ακίδα δύο, η κάτω δεξιά ακίδα εννέα και η κάτω αριστερή ακίδα δέκα. Επομένως, τα pinouts είναι:

  1. Vcc (5V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. μη συνδεδεμένο.

Για χρήση με Arduino, οι ακίδες 1 ~ 4 είναι οι ελάχιστες απαραίτητες για τη χρήση μιας μονάδας. Κάθε πρόσθετη μονάδα θα απαιτήσει άλλο ψηφιακό pin συνδεδεμένο με STB2, STB3, κ.λπ. Περισσότερα σχετικά αργότερα. Λάβετε υπόψη ότι κάθε μονάδα έχει ρυθμιστεί σε πλήρη φωτεινότητα με κάθε αναμμένο LED καταναλώνει 127mA, οπότε θα ήταν συνετό να χρησιμοποιείτε εξωτερική ισχύ με περισσότερες από μία μονάδες και άλλες συνδέσεις με πλακέτες Arduino.

Βήμα 4: Ξεκινώντας - Λογισμικό

Λογισμικό - κάντε λήψη και εγκαταστήστε τη βιβλιοθήκη T1638 από εδώ. Ευχαριστώ και μπράβο στον rjbatista στο gmail dot com για τη βιβλιοθήκη. Η εκκίνηση ενοτήτων στο σκίτσο είναι απλή. Συμπεριλάβετε τη βιβλιοθήκη με:

#περιλαμβάνω

στη συνέχεια χρησιμοποιήστε ένα από τα παρακάτω για κάθε ενότητα:

Μονάδα TM1638 (x, y, z);

x είναι ο ψηφιακός ακροδέκτης Arduino που είναι συνδεδεμένος με τον ακροδέκτη καλωδίου μονάδας 4, y είναι ο ψηφιακός ακροδέκτης Arduino που συνδέεται με τον ακροδέκτη καλωδίου μονάδας 3 και z είναι ο ακροδέκτης στροβοσκοπίου. Έτσι, εάν είχατε μια ενότητα με δεδομένα, ρολόι και στροβοσκόπιο συνδεδεμένα στις ακίδες 8, 7 και 6, θα χρησιμοποιούσατε:

Μονάδα TM1638 (8, 7, 6);

Εάν είχατε δύο μονάδες, με το στροβοσκόπιο της μονάδας να είναι συνδεδεμένο στο Arduino digital 6 και το στροβοσκόπιο της ενότητας δύο συνδεδεμένο με το ψηφιακό 5, θα χρησιμοποιούσατε:

Μονάδα TM1638 (8, 7, 6), μονάδα TM1638 (8, 7, 5).

και ούτω καθεξής για περισσότερες ενότητες. Τώρα για να ελέγξετε την οθόνη…

Βήμα 5: Τα LED με δύο χρώματα

Τα δίχρωμα LED
Τα δίχρωμα LED

Ο έλεγχος των κόκκινων/πράσινων LED είναι εύκολος. Για αναφορά αριθμούνται από μηδέν έως επτά από αριστερά προς τα δεξιά. Για να ενεργοποιήσετε ή να απενεργοποιήσετε ένα LED, χρησιμοποιήστε τα εξής:

module.setLED (TM1638_COLOR_RED, x); // ορίστε τον αριθμό LED x στο redmodule.setLED (TM1638_COLOR_GREEN, x); // ορίστε τον αριθμό LED x σε πράσινο module.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // ορίστε τον αριθμό LED x σε κόκκινο και πράσινο

Η χρήση της παραπάνω μεθόδου μπορεί να είναι απλή, είναι κάπως αναποτελεσματική. Ένας καλύτερος τρόπος είναι να αντιμετωπίσετε όλες τις λυχνίες LED σε μία δήλωση. Για να γίνει αυτό, στέλνουμε δύο byte δεδομένων σε δεκαεξαδικό στην οθόνη. Το MSB (το πιο σημαντικό byte) αποτελείται από οκτώ bits, το καθένα που αντιπροσωπεύει ένα πράσινο LED που είναι ενεργοποιημένο (1) ή σβηστό (0). Το LSB (λιγότερο σημαντικό byte) αντιπροσωπεύει τα κόκκινα LED.

Ένας εύκολος τρόπος για να προσδιορίσετε την δεκαεξαδική τιμή για τον έλεγχο των LED είναι απλός, η εικόνα έχει μία σειρά LED - τα πρώτα οκτώ είναι πράσινα και τα δεύτερα οκτώ είναι κόκκινα. Ορίστε κάθε ψηφίο στο 1 για ενεργοποίηση και 0 για απενεργοποίηση. Μετατρέψτε τους δύο δυαδικούς αριθμούς σε δεκαεξαδικό και χρησιμοποιήστε αυτήν τη συνάρτηση:

module.setLEDs (0xgreenred);

Όπου το πράσινο είναι ο δεκαεξαδικός αριθμός για τα πράσινα LED και το κόκκινο είναι ο δεκαεξαδικός αριθμός για τα κόκκινα LED. Για παράδειγμα, για να ενεργοποιήσετε τις τρεις πρώτες λυχνίες LED ως κόκκινες και τις τρεις τελευταίες ως πράσινες, η δυαδική αναπαράσταση θα είναι:

00000111 11100000 που σε δεκαεξαδικό είναι E007.

Θα χρησιμοποιήσουμε λοιπόν:

module.setLEDs (0xE007);

που παράγει την εικόνα όπως φαίνεται παραπάνω.

Βήμα 6: Η οθόνη 7 τμημάτων

Για να καθαρίσετε την αριθμητική οθόνη (αλλά όχι τις παρακάτω λυχνίες LED), χρησιμοποιήστε απλά:

module.clearDisplay ();

ή για να ενεργοποιήσετε κάθε τμήμα ΚΑΙ όλες τις λυχνίες LED, χρησιμοποιήστε τα παρακάτω

module.setupDisplay (true, 7); // όπου το 7 είναι ένταση (από 0 ~ 7)

Για να εμφανίσετε δεκαδικούς αριθμούς, χρησιμοποιήστε τη συνάρτηση:

module.setDisplayToDecNumber (a, b, false);

όπου a είναι ο ακέραιος, b είναι η θέση για το δεκαδικό σημείο (0 για κανένα, 1 για το ψηφίο 8, 2, για το ψηφίο 7, 4 για το ψηφίο 6, 8 για το ψηφίο 4 κ.λπ.) και η τελευταία παράμετρος (true/ false) ενεργοποιεί ή απενεργοποιεί τα μηδενικά που οδηγούν. Το παρακάτω σκίτσο δείχνει τη χρήση αυτής της συνάρτησης:

#include // καθορίστε μια ενότητα στην καρφίτσα δεδομένων 8, την καρφίτσα ρολογιού 9 και την καρφίτσα στροβοσκοπίου 7 μονάδα TM1638 (8, 9, 7). ανυπόγραφο μακρύ α = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); καθυστέρηση (1)? } για (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); καθυστέρηση (1)? }}

… Με τα αποτελέσματα που εμφανίζονται στο βίντεο.

Βήμα 7:

Image
Image

Ένα από τα πιο ενδιαφέροντα χαρακτηριστικά είναι η δυνατότητα κύλισης κειμένου σε μία ή περισσότερες οθόνες. Για να γίνει αυτό δεν χρειάζεται πραγματικά εξήγηση καθώς το σκίτσο επίδειξης που περιλαμβάνεται:

tm_1638_scrolling_modules_example.pde

Η βιβλιοθήκη TM1638 ακολουθείται εύκολα. Απλώς εισάγετε το κείμενό σας στη συμβολοσειρά const char , βεβαιωθείτε ότι η ενότητα (οι ενότητες) είναι συνδεδεμένες σύμφωνα με τον ορισμό της ενότητας στην αρχή του σκίτσου και ότι είστε έτοιμοι. Για να δείτε τους διαθέσιμους χαρακτήρες, επισκεφθείτε τη σελίδα λειτουργίας. Λάβετε υπόψη ότι η οθόνη είναι μόνο επτά τμημάτων, επομένως ορισμένοι χαρακτήρες μπορεί να μην φαίνονται τέλειοι, αλλά στο πλαίσιο θα σας δώσουν μια καλή ιδέα-δείτε το βίντεο σε αυτό το βήμα.

Βήμα 8:

Τέλος, μπορείτε επίσης να αντιμετωπίσετε ξεχωριστά κάθε τμήμα κάθε ψηφίου. Εξετάστε το περιεχόμενο αυτού του πίνακα:

byte τιμές = {1, 2, 4, 8, 16, 32, 64, 128};

κάθε στοιχείο αντιπροσωπεύει ψηφία 1 ~ 8. Η τιμή κάθε στοιχείου καθορίζει ποιο τμήμα του ψηφίου ενεργοποιείται. Για τα τμήματα a ~ f, dp οι τιμές είναι 1, 2, 4, 6, 16, 32, 64, 128. Άρα τα αποτελέσματα χρήσης του παραπάνω πίνακα στην ακόλουθη συνάρτηση:

module.setDisplay (τιμές);

θα είναι ανά εικόνα.

Βήμα 9:

Εικόνα
Εικόνα

Φυσικά μπορείτε να συνδυάσετε τιμές για κάθε ψηφίο για να δημιουργήσετε τους δικούς σας χαρακτήρες, σύμβολα κλπ. Για παράδειγμα, χρησιμοποιώντας τις ακόλουθες τιμές:

byte τιμές = {99, 99, 99, 99, 99, 99, 99, 99};

δημιουργήσαμε σύμφωνα με την εικόνα σε αυτό το βήμα.

Βήμα 10: Τα κουμπιά

Οι τιμές των κουμπιών επιστρέφονται ως τιμή byte από τη συνάρτηση:

module.getButtons ();

Καθώς υπάρχουν οκτώ κουμπιά, το καθένα αντιπροσωπεύει ένα bit ενός δυαδικού αριθμού που επιστρέφεται ως byte. Το κουμπί στα αριστερά επιστρέφει δεκαδικό ένα και το δεξί επιστρέφει 128. Μπορεί επίσης να επιστρέψει ταυτόχρονες πιέσεις, οπότε πατώντας τα κουμπιά ένα και οκτώ επιστρέφει 129. Εξετάστε το ακόλουθο σκίτσο, το οποίο επιστρέφει τις τιμές των πιέσεων κουμπιών σε δεκαδική μορφή και, στη συνέχεια, εμφανίζει η αξία:

#include // καθορίστε μια ενότητα στην ακίδα δεδομένων 8, την καρφίτσα ρολογιού 9 και την καρφίτσα στροβοσκοπίου 7 μονάδα TM1638 (8, 9, 7). κουμπιά byte? void setup () {} void loop () {buttons = module.getButtons (); module.setDisplayToDecNumber (κουμπιά, 0, false); }

και τα αποτελέσματα στο βίντεο.

Αυτοί οι πίνακες απεικόνισης είναι χρήσιμοι και ελπίζουμε να βρείτε ένα σπίτι στα έργα σας. Αυτή η ανάρτηση σας έφερε το pmdway.com - προσφέρει τα πάντα για κατασκευαστές και λάτρεις των ηλεκτρονικών, με δωρεάν παράδοση σε όλο τον κόσμο.

Συνιστάται: