Inhoudsopgave:

LED-matrix met drukknop: 4 stappen
LED-matrix met drukknop: 4 stappen

Video: LED-matrix met drukknop: 4 stappen

Video: LED-matrix met drukknop: 4 stappen
Video: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, November
Anonim
Drukknop LED Matrix
Drukknop LED Matrix

Dit project kan worden gezien als een ander inleidend Arduino-project dat iets geavanceerder is dan uw typische 'knipperende een LED'-project. Dit project omvat een LED-matrix, drukknoppen, schuifregisters (die pinnen op uw Arduino-bord kunnen opslaan) en een sleutelconcept dat multiplexing wordt genoemd. Ik hoop dat je de tutorial verhelderend vindt en daag jezelf uit om het te verbeteren!

Benodigdheden

(1x) Arduino Uno

(5x) Tactiele Drukknoppen

(2x) 0.1 uF condensatoren

(2x) 1 uF condensatoren

(8x) 1k Weerstanden

(5x) 10k Weerstanden

(2x) 74HC595 schuifregisters

Doorverbindingsdraden

zwarte draad

Rode draad

Stap 1: Stap 1: Een LED-matrix maken

Stap 1: Een LED-matrix maken
Stap 1: Een LED-matrix maken
Stap 1: Een LED-matrix maken
Stap 1: Een LED-matrix maken
Stap 1: Een LED-matrix maken
Stap 1: Een LED-matrix maken

De tutorial die ik heb gebruikt om de 8x8 LED-matrix in dit project te maken, is hier te vinden. Er zijn veelvoorkomende configuraties voor een LED-matrix:

a) Gemeenschappelijke rij-anode:

b) Gemeenschappelijke rijkathode

Aangezien ik de Common Row Cathode-rangschikking van de matrix heb gebruikt, zal ik deze hier voornamelijk bespreken en je kunt dezelfde logica uitbreiden naar de Common Row Anode-rangschikking. In de Common Row Cathode-opstelling zijn de kathodes van de LED's (of negatieve terminals die het kortere been op een LED zijn) in rijen met elkaar verbonden, terwijl de anodes (of positieve terminals die het langere been van een LED zijn) in kolommen met elkaar zijn verbonden. Om een bepaalde LED te adresseren, trekt u aan de kathoderij waarop de LED-kathode laag staat en trekt u aan de anodekolom waarbij de LED-anode hoog staat.

Opmerking: Zorg ervoor dat u bij het maken van de LED-matrix die in de bovenstaande link wordt weergegeven, de anodekolommen verbindt met de 1k ohm-weerstanden voordat u enige hoeveelheid spanning op de LED's toepast.

Stap 2: Stap 2: Bedrading van de drukknoppen en schuifregisters

Stap 2: Bedrading van de drukknoppen en schuifregisters
Stap 2: Bedrading van de drukknoppen en schuifregisters
Stap 2: Bedrading van de drukknoppen en schuifregisters
Stap 2: Bedrading van de drukknoppen en schuifregisters
Stap 2: Bedrading van de drukknoppen en schuifregisters
Stap 2: Bedrading van de drukknoppen en schuifregisters
Stap 2: Bedrading van de drukknoppen en schuifregisters
Stap 2: Bedrading van de drukknoppen en schuifregisters

De bedrading voor de drukknoppen en schuifregisters is hierboven weergegeven. Ik zou willen opmerken dat de schuifregisters in het schakelschema niet de grond (pin 8 van de IC) en Vcc of voeding (pin 16 van de IC) pinnen voor de chips tonen; de grondpin is verbonden met de GND-pin van het Arduino-bord en Vcc is verbonden met de 5V-pin van het Arduino-bord. De Vcc-pin van elk schuifregister is ook verbonden met een 0.1uF-condensator die is verbonden met aarde.

Opmerking: De uitgangen van elk schuifregister worden weergegeven als QA tot QH (negeer QH*). Ze worden weergegeven in termen van het minst significante bit (LSB) (voor QA) tot het meest significante bit (MSB) (voor QH), d.w.z. QA zou de 0e rij of kolom besturen, enz.

Stap 3: Stap 3: De code uploaden

De code om de LED-matrix te besturen is bij deze tutorial gevoegd. Ik heb geprobeerd om zoveel mogelijk van de code te becommentariëren, zodat het heel duidelijk zou zijn hoe het programma werkt. De belangrijkste basis van het programma is dat er een matrix is die bijhoudt welke LED's aan of uit moeten staan. Om de verschillende LED's correct weer te geven zonder per ongeluk ongewenste diodes in te schakelen, moet een concept worden gebruikt dat multiplexing wordt genoemd. Multiplexen is in wezen het verlichten van individuele LED's in een bepaalde rij, terwijl alle andere LED's in andere rijen, en vervolgens hetzelfde doen voor de resterende rijen. De truc is dat als de LED's snel genoeg door de rijen gaan, je ogen kunnen zien dat de afzonderlijke rijen één voor één worden aangestoken. Als u meer manieren wilt ontdekken waarop u uw ogen kunt bedriegen met LED's, wilt u misschien kijken naar het concept van persistentie van het gezichtsvermogen (gemakkelijk te doorzoeken op Google of Instructables).

De manier waarop de anodekolommen en kathoderijen worden bijgewerkt, is via een door de gebruiker gedefinieerde functie genaamd 'UpdateShiftRegisters'. Deze functie zet eerst de vergrendelingspin, die regelt of een nieuwe byte (8 bits) naar de uitgang wordt gestuurd, laag, zodat er geen wijzigingen aan de uitgangen mogelijk zijn terwijl nieuwe bits naar de chip worden geschreven. Met behulp van een ingebouwde Arduino-functie genaamd 'ShiftOut', die specifiek het verzenden van gegevens naar schuifregisters afhandelt, schrijft het programma welke (kathode) rij laag zou zijn en welke (anode) kolommen hoog zouden moeten zijn. Ten slotte wordt de grendelpen hoog getrokken om de output (de LED's) bij te werken.

Stap 4: Aanvullende informatie/bronnen

Hier zijn enkele links naar websites of boeken die aanvullende informatie over dit project kunnen geven:

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

www.arduino.cc/en/tutorial/ShiftOut

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

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

www.youtube.com/watch?v=VxMV6wGS3NY

Aan de slag met Arduino, 2e editie door Massimo Banzi

Aanbevolen: