Table des matières:

Comment piloter un grand nombre de LED à partir de quelques broches de microcontrôleur : 6 étapes (avec photos)
Comment piloter un grand nombre de LED à partir de quelques broches de microcontrôleur : 6 étapes (avec photos)

Vidéo: Comment piloter un grand nombre de LED à partir de quelques broches de microcontrôleur : 6 étapes (avec photos)

Vidéo: Comment piloter un grand nombre de LED à partir de quelques broches de microcontrôleur : 6 étapes (avec photos)
Vidéo: Les bases de l'Arduino ! 2024, Novembre
Anonim
Comment piloter un grand nombre de LED à partir de quelques broches de microcontrôleur
Comment piloter un grand nombre de LED à partir de quelques broches de microcontrôleur

En utilisant le fait que de nombreuses broches de microcontrôleur ont trois états (+V, GND ou "haute impédance", vous pouvez piloter N * (N-1) LED à partir de broches N. Ainsi, le petit microcontrôleur à 8 broches comme un PIC12Fxxx ou un ATtiny11 peut piloter 20 LED sur ses cinq broches de sortie disponibles, et il reste encore une broche pour une sorte d'entrée. Voir aussi

Étape 1: 20 LED sur 5 broches

20 LED sur 5 broches
20 LED sur 5 broches

La récolte actuelle de microcontrôleurs à faible nombre de broches (6 broches à 20 broches sur

l'ensemble du package) sont à un prix attractif et "mignon", mais la question se pose de savoir comment tirer le meilleur parti de ces broches pour des applications courantes telles que la conduite de LED. Une approche de connexion directe pour piloter des LED consomme une broche pour chaque LED. Un schéma de multiplexage traditionnel où les rangées d'anodes LED sont pilotées par un jeu de N broches et la cathode commune de chaque rangée est pilotée par un autre jeu de M broches parvient à allumer N*M LED avec N+M broches. Cependant, sur un processeur avec seulement 5 sorties ou moins (comme c'est le cas avec la plupart des microcontrôleurs à 8 broches), cela vous donne à peine plus de sorties que l'entraînement direct.

Étape 2: Charlieplexing

Charlieplexing
Charlieplexing

En supposant que les broches de sortie soient en fait à trois états (actif haut, actif bas et haute impédance (entrée)), il est également possible de partager les pilotes de ligne et de colonne et de contrôler N*(N-1) LED avec seulement N broches. Une broche est connectée aux cathodes communes d'une rangée de LED et entraînée bas, et les N-1 broches restantes sont connectées aux anodes et soit entraînées haut pour allumer cette colonne, soit laissées comme entrées pour laisser la LED éteinte. Maxim appelle cette technique "Charlieplexing", et la décrit dans (1); Microchip le mentionne également dans son document (2) (et les implémente également sur la carte PICKit 1.) (1) "Charlieplexing - Multiplexage d'affichage à LED à nombre de broches réduit" 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

Étape 3: le mettre au travail

Le mettre au travail
Le mettre au travail
Le mettre au travail
Le mettre au travail

Cela pilote 20 LED à partir d'un ATtiny11. Une version antérieure de cette carte était

réellement construit et apparaît comme la photo de la page principale. Je crains que l'image du schéma ne soit assez désespérée; vous avez besoin d'Eagle pour vous dire quels signaux sont connectés où.

Étape 4: Plus petit et plus polyvalent…

Plus petit et plus polyvalent…
Plus petit et plus polyvalent…

Étant donné que la majeure partie de la carte est occupée par le réseau de LED, nous pouvons faire de la place

pour une puce Attiny OU une puce PIC12F. Réduisez les LED à 3 mm et passez à une carte double face, et nous obtenons quelque chose d'environ 27x44 mm Hélas, cette carte n'a pas encore été testée…

Étape 5: Itty Bitty

tout petit
tout petit

Microchip a bien sûr ses puces PIC10F à 6 broches, capables de piloter un

seulement 6 LED sur les 3 broches de sortie. Cela fait environ 16 mm de diamètre. Passer à 603 LED vous permet de devenir un peu plus petit, mais je ne sais pas à quoi cela sert.

Étape 6: Logiciel

Le logiciel devient un peu désordonné pour plusieurs raisons:

1) pour les circuits imprimés illustrés, les LED sont disposées d'une manière qui convient à la disposition des circuits imprimés, plutôt que dans l'ordre des bits "correct". OMI, c'est la façon de faire les choses, mais cela signifie que la ligne 1 ne signifie pas nécessairement le bit 1, ou la colonne 3 ne signifie pas le bit 3. Cela nécessite un niveau de mappage entre l'adressage de ligne/colonne habituel et le bits qui doivent être réglés. 2) Étant donné que les mêmes bits sont utilisés pour les anodes et les cathodes, la connexion commune (ligne) pour certains bits peut être au milieu des bits entraînés (colonne). Cela signifie que vous devez déplacer les bits de colonne selon qu'ils sont avant ou après le bit de ligne pour cet ensemble de colonnes. 3) Vous devez dériver des mots de sortie pour l'ioport et le registre de direction de port. Le code ASM joint pour ATtiny11 est une « preuve de concept ». C'est embarrassant non optimisé et mal commenté, mais c'est tout ce que j'ai écrit jusqu'à présent.

Conseillé: