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

Πώς να οδηγήσετε πολλά LED από μερικές καρφίτσες μικροελεγκτή .: 6 βήματα (με εικόνες)
Πώς να οδηγήσετε πολλά LED από μερικές καρφίτσες μικροελεγκτή .: 6 βήματα (με εικόνες)

Βίντεο: Πώς να οδηγήσετε πολλά LED από μερικές καρφίτσες μικροελεγκτή .: 6 βήματα (με εικόνες)

Βίντεο: Πώς να οδηγήσετε πολλά LED από μερικές καρφίτσες μικροελεγκτή .: 6 βήματα (με εικόνες)
Βίντεο: ESP32 Tutorial 15 - DC Motor Speed Control with ESP32 L293D | SunFounder's ESP32 IoT Learnig kit 2024, Νοέμβριος
Anonim
Πώς να οδηγήσετε πολλά LED από μερικές καρφίτσες μικροελεγκτή
Πώς να οδηγήσετε πολλά LED από μερικές καρφίτσες μικροελεγκτή

Χρησιμοποιώντας το γεγονός ότι πολλές καρφίτσες μικροελεγκτή έχουν τρεις καταστάσεις (+V, GND ή "υψηλή αντίσταση", μπορείτε να οδηγήσετε LED N*(N-1) από καρφίτσες Ν. Έτσι ο μικρός μικροελεγκτής 8 ακίδων όπως ένα PIC12Fxxx ή ένα ATtiny11 μπορεί να οδηγήσει 20 LED σε πέντε διαθέσιμες ακίδες εξόδου και εξακολουθεί να έχει έναν πείρο για κάποιο είδος εισόδου. Δείτε επίσης

Βήμα 1: 20 LED σε 5 ακίδες

20 LED σε 5 ακίδες
20 LED σε 5 ακίδες

Η τρέχουσα συγκομιδή μικροελεγκτών χαμηλού αριθμού καρφιτσών (6 ακίδες έως 20 ακίδες επάνω)

ολόκληρο το πακέτο) έχουν ελκυστικές τιμές και «χαριτωμένα», αλλά τίθεται το ερώτημα πώς μπορείτε να αξιοποιήσετε καλύτερα αυτές τις ακίδες για κοινές εφαρμογές όπως η οδήγηση LED. Μια προσέγγιση απευθείας σύνδεσης για οδήγηση LED καταναλώνει ένα πείρο για κάθε LED. Ένα παραδοσιακό σχήμα πολυπλεξίας όπου οι σειρές των ανοδίων LED οδηγούνται από ένα σύνολο Ν ακίδων και η κοινή κάθοδος κάθε σειράς οδηγείται από ένα άλλο σύνολο ακίδων Μ καταφέρνει να ανάβει LED N*M με ακίδες Ν+Μ. Ωστόσο, σε έναν επεξεργαστή με μόνο 5 ή λιγότερες εξόδους (όπως συμβαίνει με τους περισσότερους μικροελεγκτές 8 ακίδων), αυτό δεν σας δίνει περισσότερες εξόδους από την άμεση κίνηση.

Βήμα 2: Charlieplexing

Charlieplexing
Charlieplexing

Αν υποθέσουμε ότι οι ακίδες εξόδου είναι πράγματι σε κατάσταση τριπλής κατάστασης (ενεργή υψηλή, ενεργή χαμηλή και υψηλή αντίσταση (είσοδος)), είναι επίσης δυνατό να μοιραστούν τα προγράμματα οδήγησης γραμμών και στηλών και να ελέγχονται LED N*(N-1) με μόνο Ν ακίδες. Ένας πείρος συνδέεται με κοινές καθόδους μιας σειράς LED και οδηγείται χαμηλά, και οι ακίδες N-1 που απομένουν συνδέονται με τις ανόδους και είτε οδηγούνται ψηλά για να φωτίσουν τη στήλη είτε αφήνονται ως είσοδοι για να αφήσουν το LED off. Ο Maxim ονομάζει αυτήν την τεχνική "Charlieplexing" και την περιγράφει στο (1). Το Microchip το αναφέρει επίσης στο έγγραφό τους (2) (και συμπληρώνεται επίσης στον πίνακα PICKit 1). (1) "Charlieplexing-Reduced Pin-Count LED Display Multiplexing" https://www.maxim-ic.com/appnotes. cfm/appnote_number/1880 (2) "Tips 'n Tricks 8-pin FLASH PIC Microcontrollers" https://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf (3) Charlieplexing LEDs- The theory An Instructable by rgbphil

Βήμα 3: Θέστε το σε λειτουργία

Το βάζουμε στη δουλειά
Το βάζουμε στη δουλειά
Το βάζουμε στη δουλειά
Το βάζουμε στη δουλειά

Αυτό οδηγεί 20 LED από ένα ATtiny11. Μια παλαιότερη έκδοση αυτού του πίνακα ήταν

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

Βήμα 4: Μικρότερο και πιο ευέλικτο…

Μικρότερο και πιο ευέλικτο…
Μικρότερο και πιο ευέλικτο…

Δεδομένου ότι το μεγαλύτερο μέρος του πίνακα καταλαμβάνεται από τη σειρά LED, μπορούμε να κάνουμε χώρο

είτε για τσιπ Attiny OR είτε για τσιπ μικροτσίπ PIC12F. Μειώστε τις λυχνίες LED έως 3mm και μεταβείτε σε έναν πίνακα διπλής όψης και παίρνουμε κάτι περίπου 27x44mm Δυστυχώς, αυτή η πλακέτα δεν έχει δοκιμαστεί ακόμα…

Βήμα 5: Itty Bitty

Itty Bitty
Itty Bitty

Το μικροτσίπ φυσικά έχει τα τσιπ PIC10F των 6 ακίδων, που μπορούν να οδηγήσουν α

μόνο 6 LED από τις 3 ακίδες εξόδου. Αυτό έχει διάμετρο περίπου 16 mm. Η μετάβαση σε 603 LED σας επιτρέπει να γίνετε λίγο μικρότεροι, αλλά δεν είμαι σίγουρος ποιο είναι το νόημα.

Βήμα 6: Λογισμικό

Το λογισμικό γίνεται λίγο ακατάστατο για εξυπηρετικούς λόγους:

1) για τα PCB που εμφανίζονται, τα LED είναι τοποθετημένα με τρόπο που είναι βολικό για τη διάταξη PCB και όχι με τη "σωστή" σειρά bit. IMO, αυτός είναι ο τρόπος για να κάνουμε πράγματα, αλλά σημαίνει ότι η γραμμή 1 δεν σημαίνει απαραίτητα το bit 1 ή το coluimn 3 δεν σημαίνει το bit 3. Αυτό απαιτεί ένα επίπεδο αντιστοίχισης μεταξύ της συνηθισμένης διεύθυνσης γραμμής/στήλης και κομμάτια που χρειάζονται ρύθμιση. 2) Δεδομένου ότι τα ίδια δυαδικά ψηφία χρησιμοποιούνται για ανόδους και καθόδους, η κοινή (σειρά) σύνδεσης για ορισμένα δυαδικά ψηφία μπορεί να βρίσκεται στη μέση των δυαδικών ψηφίων κίνησης (στήλης). Αυτό σημαίνει ότι πρέπει να μετατοπίσετε τα bit στήλης γύρω, ανάλογα με το αν βρίσκονται πριν ή μετά το bit γραμμής για αυτό το σύνολο στηλών. 3) Πρέπει να εξαγάγετε λέξεις εξόδου τόσο για τον καταχωρητή κατεύθυνσης ioport όσο και για τη θύρα. Ο συνημμένος κώδικας ASM για το ATtiny11 είναι "απόδειξη της ιδέας". Είναι ενοχλητικά μη βελτιστοποιημένο και με ελάχιστα σχόλια, αλλά είναι όλα όσα έχω γράψει μέχρι τώρα.

Συνιστάται: