Taula de continguts:

Polsador LED Matrix: 4 passos
Polsador LED Matrix: 4 passos

Vídeo: Polsador LED Matrix: 4 passos

Vídeo: Polsador LED Matrix: 4 passos
Vídeo: Pushbutton LED Matrix 2024, Desembre
Anonim
Polsador LED Matrix
Polsador LED Matrix

Aquest projecte es pot considerar com un altre projecte introductori d’Arduino que és una mica més avançat que el vostre projecte típic de “parpellejar un LED”. Aquest projecte incorpora una matriu LED, botons de pressió, registres de desplaçament (que poden guardar pins a la vostra placa Arduino) i un concepte clau anomenat multiplexació. Espero que trobeu el tutorial aclaridor i us interpel·leu a millorar-lo.

Subministraments

(1x) Arduino Uno

(5x) Polsadors tàctils

(2x) Condensadors de 0,1 uF

(2x) 1 condensadors uF

(8x) resistències 1k

(5x) resistències de 10 k

(2x) registres de desplaçament 74HC595

Filferros de pont

Filferro negre

Filferro vermell

Pas 1: Pas 1: Creació d'una matriu LED

Pas 1: fer una matriu LED
Pas 1: fer una matriu LED
Pas 1: fer una matriu LED
Pas 1: fer una matriu LED
Pas 1: fer una matriu LED
Pas 1: fer una matriu LED

El tutorial que he utilitzat per fer la matriu LED de 8x8 en aquest projecte es pot trobar aquí. Hi ha configuracions comunes per a una matriu LED:

a) Ànode de fila comú

b) Càtode de fila comú

Com que he utilitzat la disposició del càtode de fila comuna de la matriu, principalment en parlaré aquí i podeu ampliar la mateixa lògica a la disposició de l’ànode de fila comuna. A la disposició del càtode Common Row, els càtodes dels LED (o terminals negatius que és la pota més curta d’un LED) es connecten junts en files mentre que els ànodes (o terminals positius que són la pota més llarga d’un LED) es connecten junts en columnes. Per abordar un LED concret, estireu la fila del càtode que el càtode del LED està baix i estireu la columna d'ànode que l'ànode del LED està activat.

Nota: Quan feu la matriu de LED que es mostra a l'enllaç anterior, assegureu-vos de connectar les columnes d'ànode amb les resistències d'1 k ohm abans d'aplicar qualsevol quantitat de voltatge als LED.

Pas 2: Pas 2: Cablatge dels botons de pressió i dels registres de canvis

Pas 2: connectar els botons de pulsació i els registres de canvis
Pas 2: connectar els botons de pulsació i els registres de canvis
Pas 2: Connexió dels botons i els registres de canvis
Pas 2: Connexió dels botons i els registres de canvis
Pas 2: connectar els botons de pulsació i els registres de canvis
Pas 2: connectar els botons de pulsació i els registres de canvis
Pas 2: Connexió dels botons i els registres de canvis
Pas 2: Connexió dels botons i els registres de canvis

El cablejat dels polsadors i dels registres de canvis es mostra a la part superior. M'agradaria tenir en compte que els registres de desplaçament del diagrama del circuit no mostren els pins de terra (pin 8 de l'IC) i Vcc ni d'alimentació (pin 16 de l'IC) per als xips; el pin de terra està connectat al pin GND de la placa Arduino i Vcc està connectat al pin de 5 V de la placa Arduino. El pin Vcc de cada registre de desplaçament també està connectat a un condensador de 0,1uF connectat a terra.

Nota: Les sortides de cada registre de desplaçament es mostren com a QA a QH (ignoreu QH *). Es mostren en termes del bit menys significatiu (LSB) (per QA) al bit més significatiu (MSB) (per QH), és a dir, QA controlaria la 0a fila o columna, etc.

Pas 3: Pas 3: càrrega del codi

El codi per controlar la matriu de LED s’adjunta a aquest tutorial. Vaig intentar comentar la major part del codi que vaig poder, de manera que quedaria molt clar com funciona el programa. La base principal del programa és que hi ha una matriu que fa un seguiment de quins LEDs haurien d’estar engegats o apagats. Per tal que els diferents LED es visualitzin correctament sense encendre accidentalment els díodes no desitjats, cal utilitzar un concepte anomenat multiplexació. El multiplexat consisteix essencialment a il·luminar LEDs individuals en una fila concreta, mentre que la resta de LEDs d’altres files, fent el mateix per a les files restants. El truc és que si els LED circulen per les files amb prou rapidesa, els vostres ulls poden dir que s’encenen fileres individuals d’una en una. Si voleu explorar més maneres d’enganyar els vostres ulls amb LEDs, potser voldreu examinar el concepte de persistència de la visió (fàcilment consultable a Google o Instructables).

La manera com s’actualitzen les columnes d’ànode i les files de càtodes és mitjançant una funció definida per l’usuari anomenada "UpdateShiftRegisters". Aquesta funció fa girar primer el pin de tancament, que controla si s’envia un nou byte (8 bits) a la sortida, de manera que no es poden fer canvis a les sortides mentre s’escriuen nous bits al xip. A continuació, utilitzant una funció Arduino integrada anomenada 'ShiftOut', que gestiona específicament l'enviament de dades als registres de desplaçament, el programa escriu la fila (càtode) baixa i les columnes (ànode) que haurien de ser altes. Finalment, el passador del pestell s’estira per tal d’actualitzar la sortida (els LED).

Pas 4: informació / recursos addicionals

Aquí hi ha alguns enllaços a llocs web o llibres que poden proporcionar informació addicional sobre aquest projecte:

learn.adafruit.com/adafruit-arduino-lesson-4-eight-leds/arduino-code

www.arduino.cc/ca/tutorial/ShiftOut

www.ti.com/lit/ds/symlink/sn74hc595.pdf

www.youtube.com/watch?v=7VYxcgqPe9A

www.youtube.com/watch?v=VxMV6wGS3NY

Introducció a Arduino, 2a edició de Massimo Banzi

Recomanat: