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

Πολλαπλή μονάδα οθόνης LED: 6 βήματα (με εικόνες)
Πολλαπλή μονάδα οθόνης LED: 6 βήματα (με εικόνες)

Βίντεο: Πολλαπλή μονάδα οθόνης LED: 6 βήματα (με εικόνες)

Βίντεο: Πολλαπλή μονάδα οθόνης LED: 6 βήματα (με εικόνες)
Βίντεο: Δεν το περιμενα ετσι 2024, Νοέμβριος
Anonim
Image
Image
Πολλαπλή μονάδα οθόνης LED
Πολλαπλή μονάδα οθόνης LED
Πολλαπλή μονάδα οθόνης LED
Πολλαπλή μονάδα οθόνης LED

Καλησπέρα σε όλους, Μου αρέσει να δουλεύω με οθόνες LED με 7 τμήματα ή με κουκκίδες και έχω ήδη κάνει πολλά διαφορετικά έργα μαζί τους.

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

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

Όταν το κάνετε αυτό, κάθε τμήμα ή κάθε LED θα ανάψει για λίγα λεπτά (χιλιοστά του δευτερολέπτου ή λιγότερο), αλλά η επανάληψή του σε τόσες πολλές φορές το δευτερόλεπτο δημιουργεί την ψευδαίσθηση της εικόνας που θέλετε να εμφανιστεί.

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

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

Γνωρίζω ότι υπάρχουν πολλές διαφορετικές οθόνες στην αγορά που λειτουργούν με I2C, με απλοποιημένους τρόπους (ή όχι), για να τις προγραμματίσω και τις έχω χρησιμοποιήσει επίσης, αλλά προτιμώ να δουλεύω με τυπικά εξαρτήματα όπως το 74HC595 (πολυπλέκτη IC) και το ULN2803 (προγράμματα οδήγησης) επειδή σας δίνουν περισσότερο έλεγχο στο πρόγραμμά σας και επίσης περισσότερη στιβαρότητα και αξιοπιστία στη χρήση σας.

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

Με αυτήν την ενότητα μπορείτε να εργαστείτε με κουκκίδες με διπλά χρώματα LED σε δύο τυπικά μεγέθη (μεγαλύτερα και μικρότερα) και επίσης μπορείτε να ελέγξετε την οθόνη 7 Seg x 4 ψηφίων που είναι πολύ συνηθισμένα και είναι εύκολο να τα βρείτε στην αγορά.

Και μπορείτε επίσης να εργαστείτε με αυτές τις ενότητες σε σειρά με σειριακό τρόπο (διαφορετικά δεδομένα σε οθόνες) ή με παράλληλο τρόπο (τα ίδια δεδομένα σε οθόνες).

Ας δούμε λοιπόν πώς μπορεί να λειτουργήσει αυτή η ενότητα και να σας βοηθήσει στις εξελίξεις σας!

Βίντεο (μονάδα οθόνης LED)

Βίντεο (Δοκιμή μήτρας τελείας)

Χαιρετισμοί, ΛΑΓΚΙΛΒΑ

Βήμα 1: Στοιχεία

Συστατικά
Συστατικά
Συστατικά
Συστατικά
Συστατικά
Συστατικά
Συστατικά
Συστατικά

PCB (πίνακας τυπωμένων κυκλωμάτων)

- 74HC595 (03 x)

- ULN2803 (02 x)

- Transistor PNP - BC327 (08 x)

Αντίσταση 150 Ohms (16 x)

Αντίσταση 470 Ohms (08 x)

Πυκνωτής 100 nF (03 x)

- Υποδοχή IC 16 ακίδες (03 x)

- IC Socket 18 ακίδες (02 x)

Θήκη σύνδεσης καρφιτσών - 6 ακίδες (8 x)

Καρφίτσωμα κεφαλίδων 90º (01 x)

Καρφίτσωμα κεφαλίδων 180º (01 x)

- Conector Borne KRE 02 ακίδες (02 x)

- PCB (01 x) - Κατασκευάζεται

Οι υπολοιποι

- Arduino Uno R3 / Nano / παρόμοιο

- Οθόνη LED 04 ψηφία x 7 τμήματα - (κοινή άνοδος)

- LED Dot Matrix Dual Color (Green & Red) - (Common Anode)

Σημαντικές παρατηρήσεις:

  1. Βάζω το φύλλο δεδομένων όλων των σημαντικότερων στοιχείων μόνο ως αναφορά, αλλά πρέπει να ελέγξετε το φύλλο δεδομένων των δικών σας εξαρτημάτων πριν τα χρησιμοποιήσετε.
  2. Αυτός ο πίνακας σχεδιάστηκε για να χρησιμοποιεί μόνο οθόνες ΚΟΙΝΗΣ ΑΝΟΔΟΣ.

Βήμα 2: Πρώτα πρωτότυπα

Πρώτα Πρωτότυπα
Πρώτα Πρωτότυπα
Πρώτα Πρωτότυπα
Πρώτα Πρωτότυπα
Πρώτα Πρωτότυπα
Πρώτα Πρωτότυπα
Πρώτα Πρωτότυπα
Πρώτα Πρωτότυπα

Το πρώτο μου πρωτότυπο έγινε σε μια σανίδα για να δοκιμάσω το κύκλωμα.

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

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

Είναι μια λειτουργική λύση αλλά όχι τόσο κομψή σε σύγκριση με ένα τελικό κατασκευασμένο PCB (το μπλε).

Δεν είμαι καλός με τη συγκόλληση επειδή δεν έχω αρκετή εμπειρία με αυτή τη διαδικασία, αλλά ακόμα και αυτό πήρα καλά αποτελέσματα τόσο με εμπειρίες όσο και με πιο σημαντικό: δεν έκαψα κανένα εξάρτημα και ούτε τα χέρια μου!

Πιθανώς τα αποτελέσματα στο επόμενο ταμπλό μου θα είναι καλύτερα λόγω της πρακτικής.

Λόγω αυτού σας ενθαρρύνω να δοκιμάσετε αυτό το είδος εμπειρίας γιατί θα είναι εξαιρετικό για εσάς.

Απλά λάβετε υπόψη ότι φροντίζετε με το ζεστό σίδερο και προσπαθήστε να μην ξοδέψετε περισσότερα από μερικά δευτερόλεπτα σε ένα εξάρτημα για να αποφύγετε την καύση του !!

Και τέλος, στο Youtube μπορείτε να βρείτε πολλά βίντεο σχετικά με τη συγκόλληση που μπορείτε να μάθετε πριν πάτε στον πραγματικό κόσμο.

Βήμα 3: Σχεδιασμός PCB

Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB
Σχεδιασμός PCB

Σχεδίασα αυτό το PCB χρησιμοποιώντας ένα ειδικό λογισμικό για την παραγωγή ενός πίνακα διπλού στρώματος και αναπτύχθηκε πολλές διαφορετικές εκδόσεις πριν από αυτό το τελευταίο.

Στην αρχή είχα μια έκδοση για κάθε είδους οθόνες και τελικά αποφάσισα να συνδυάσω τα πάντα σε μία μόνο έκδοση.

Στόχοι σχεδιασμού:

  • Απλό και χρήσιμο για πρωτότυπα.
  • Εύκολη εγκατάσταση και επεκτάσιμη.
  • Δυνατότητα χρήσης 3 διαφορετικών ειδών οθονών.
  • Μέγιστο πλάτος της μεγάλης κουκκίδας μήτρας LED.
  • Μέγιστο μήκος στα 100 mm για ελαχιστοποίηση του κόστους παραγωγής της σανίδας.
  • Εφαρμόστε παραδοσιακά εξαρτήματα αντί για SMD για να αποφύγετε περισσότερες δυσκολίες κατά τη διαδικασία χειροκίνητης συγκόλλησης.
  • Η πλακέτα πρέπει να είναι αρθρωτή για να συνδεθεί με άλλη πλακέτα σε καταρράκτη.
  • Σειριακή ή παράλληλη έξοδος για άλλους πίνακες.
  • Αρκετοί πίνακες πρέπει να ελέγχονται μόνο από ένα Arduino.
  • Μόνο 3 καλώδια δεδομένων για τη σύνδεση του Arduino.
  • Εξωτερική σύνδεση ισχύος 5V.
  • Αυξήστε την ηλεκτρική ευρωστία χρησιμοποιώντας τρανζίστορ και προγράμματα οδήγησης (ULN2803) για τον έλεγχο των LEDS.

Παρατήρηση:

Σχετικά με αυτό το τελευταίο στοιχείο, σας συνιστώ να διαβάσετε ένα άλλο Εγχειρίδιο οδηγιών σχετικά με αυτά τα στοιχεία:

Χρησιμοποιώντας το Shift Register 74HC595 με ULN2803, UDN2981 και BC327

Κατασκευή PCB:

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

Το κύριο ζήτημα αφορούσε το ποσό των σανίδων έναντι του κόστους, επειδή χρειάζομαι μόνο μερικά από αυτά.

Τελικά αποφάσισα να κάνω μια κανονική παραγγελία (όχι μια ρητή παραγγελία λόγω υψηλότερου κόστους) μόνο 10 πινάκων με μια εταιρεία στην Κίνα.

Μετά από μόλις 3 ημέρες οι σανίδες κατασκευάστηκαν και μου στάλθηκαν διασχίζοντας τον κόσμο σε περισσότερες 4 ημέρες.

Τα αποτελέσματα ήταν εξαιρετικά !!

Σε μια εβδομάδα μετά την παραγγελία αγοράς, οι σανίδες ήταν στα χέρια μου και πραγματικά εντυπωσιάστηκα με την υψηλή ποιότητα και με τη γρήγορη ταχύτητα!

Βήμα 4: Προγραμματισμός

Προγραμματισμός
Προγραμματισμός
Προγραμματισμός
Προγραμματισμός

Για τον προγραμματισμό πρέπει να έχετε κατά νου ορισμένες σημαντικές έννοιες σχετικά με τον σχεδιασμό υλικού και σχετικά με τον καταχωρητή βάρδιας 74HC595.

Η κύρια λειτουργία του 74HC595 είναι να μετατρέψει 8-Bit Serial-In σε 8 Parallel-Out Shift.

Όλα τα σειριακά δεδομένα μπαίνουν στο Pin #14 και σε κάθε σήμα ρολογιού τα bits πηγαίνουν στους αντίστοιχους ακροδέκτες παράλληλης εξόδου (Qa to Qh).

Εάν συνεχίζετε να στέλνετε περισσότερα δεδομένα, τα δυαδικά ψηφία θα μετακινούνται ένα προς ένα στο Pin #9 (Qh ') ως σειριακή έξοδο ξανά και λόγω αυτής της λειτουργικότητας μπορείτε να βάλετε άλλες μάρκες συνδεδεμένες στον καταρράκτη.

Σπουδαίος:

Σε αυτό το έργο έχουμε τρία ICs 74HC595. Οι δύο πρώτες λειτουργούν για τον έλεγχο των στηλών (με ΘΕΤΙΚΗ λογική) και η τελευταία για τον έλεγχο των γραμμών (με ΑΡΝΗΤΙΚΗ λογική λόγω της λειτουργίας των τρανζίστορ PNP).

Θετική λογική σημαίνει ότι πρέπει να στείλετε ένα σήμα Υ HIGHΗΛΟΥ επιπέδου (+5V) από το Arduino και η αρνητική λογική σημαίνει ότι πρέπει να στείλετε ένα σήμα χαμηλού επιπέδου (0V).

Dot matrix των LED

  1. Το πρώτο είναι για τις εξόδους των καθόδων των κόκκινων LED (8 x) >> ΚΟΚΚΙΝΗ ΣΤΗΛΗ (1 έως 8).
  2. Το δεύτερο είναι για την έξοδοL των καθόδων των πράσινων LED (8 x) >> ΣΤΗΛΗ ΠΡΑΣΙΝΗ (1 έως 8).
  3. Το τελευταίο είναι για την έξοδο ανόδου όλων των LED (08 x Κόκκινο & Πράσινο) >> LINES (1 έως 8).

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

1º) ΓΡΑΜΜΕΣ

~ 10000000 (μόνο η πρώτη γραμμή είναι ενεργοποιημένη) - Το σύμβολο ~ είναι να αντιστρέψει όλα τα bits από το 1 στο 0 και αντίστροφα.

2º) ΣΤΗΛΗ Πράσινο

10000000 (μόνο η πρώτη στήλη του πράσινου LED είναι ενεργοποιημένη)

3º) ΣΤΗΛΗ ΚΟΚΚΙΝΗ

00000000 (όλες οι στήλες των κόκκινων LED είναι απενεργοποιημένες)

Δηλώσεις Arduino:

shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000); // Αρνητική λογική για τις γραμμές

shiftOut (dataPin, clockPin, LSBFIRST, B10000000); // Θετική λογική για τις στήλες Πράσινο

shiftOut (dataPin, clockPin, LSBFIRST, B00000000); // Θετική λογική για τις κόκκινες στήλες

Παρατήρηση:

Μπορείτε επίσης να συνδυάσετε και τα δύο LED (Πράσινο & Κόκκινο) για να δώσετε το χρώμα ΚΙΤΡΙΝΟ ως εξής:

shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000);

shiftOut (dataPin, clockPin, LSBFIRST, B10000000);

shiftOut (dataPin, clockPin, LSBFIRST, B10000000);

7 Εμφάνιση τμημάτων

Για τέτοιου είδους οθόνες η ακολουθία είναι η ίδια. Η μόνη διαφορά είναι ότι δεν χρειάζεται να χρησιμοποιήσετε τα πράσινα LED.

1º) IGΗΦΙΑ (1 έως 4 από αριστερά προς τα δεξιά) ~ 10000000 (καθορισμένο ψηφίο #1)

00 01000000 (ορίστε το ψηφίο #2)

1 00100000 (καθορισμένο ψηφίο #3)

00010000 ((καθορισμένο ψηφίο #4)

2º) ΔΕΝ ΧΡΗΣΙΜΟΠΟΙΕΙΤΑΙ

00000000 (όλα τα δυαδικά ψηφία μηδενίζονται)

3º) ΣΤΟΙΧΕΙΑ (A έως F και DP - ελέγξτε το φύλλο δεδομένων της οθόνης σας)

10000000 (σύνολο τμήματος Α)

01000000 (σύνολο τμήματος Β)

00100000 (σύνολο τμήματος Γ)

00010000 (σύνολο τμήματος Δ)

00001000 (σύνολο τμήματος Ε)

00000100 (καθορισμένο τμήμα F)

00000010 (σύνολο τμήματος Ζ)

00000001 (σετ DP)

Παράδειγμα Arduino για να ορίσετε την οθόνη #2 με τον αριθμό 3:

shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000); // Ορισμός ΟΘΟΝΗΣ 2 (Αρνητική λογική)

shiftOut (dataPin, clockPin, LSBFIRST, 0); // Ορίστε δεδομένα στο μηδέν (δεν χρησιμοποιούνται)

shiftOut (dataPin, clockPin, LSBFIRST, B11110010); // Ορίστε τμήματα A, B, C, D, G)

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

Βήμα 5: Δοκιμή

Δοκιμές
Δοκιμές
Δοκιμές
Δοκιμές
Δοκιμές
Δοκιμές

Ακολουθούν δύο προγράμματα ως παράδειγμα λειτουργικότητας της Ενότητας οθόνης.

1) Ένδειξη αντίστροφης μέτρησης (από 999,9 δευτερόλεπτα έως μηδέν)

2) Dot Matrix (ψηφία 0 έως 9 & αλφάβητο Α έως Ω)

3) Digitalηφιακό ρολόι RTC σε οθόνη LED 4 ψηφίων και 7 τμημάτων

Αυτό το τελευταίο είναι μια ενημέρωση της πρώτης έκδοσης του Clηφιακού Ρολογιού.

Βήμα 6: Συμπέρασμα & Επόμενα βήματα

Συμπέρασμα & Επόμενα Βήματα
Συμπέρασμα & Επόμενα Βήματα
Συμπέρασμα & Επόμενα Βήματα
Συμπέρασμα & Επόμενα Βήματα

Αυτή η ενότητα θα είναι χρήσιμη σε όλα τα μελλοντικά έργα που απαιτούν κάποια οθόνη LED.

Ως επόμενα βήματα θα συγκεντρώσω περισσότερους πίνακες για να δουλέψω μαζί τους σε λειτουργία cascade και θα αναπτύξω επίσης μια βιβλιοθήκη για να απλοποιήσω ακόμη περισσότερο τον προγραμματισμό.

Ελπίζω να σας άρεσε αυτό το έργο.

Παρακαλώ, στείλτε μου τα σχόλιά σας γιατί αυτό είναι σημαντικό για τη βελτίωση του έργου και των πληροφοριών αυτού του Instructable.

Χαιρετισμοί, ΛΑΓΚΙΛΒΑ

26. Μαΐου 2016

Συνιστάται: