Inhoudsopgave:
- Benodigdheden
- Stap 1: Stap 1: Een LED-matrix maken
- Stap 2: Stap 2: Bedrading van de drukknoppen en schuifregisters
- Stap 3: Stap 3: De code uploaden
- Stap 4: Aanvullende informatie/bronnen
Video: LED-matrix met drukknop: 4 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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
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
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:
Home Automation WiFi-lichtschakelaar met ESP-01 en relaismodule met drukknop - Ajarnpa
Domotica WiFi-lichtschakelaar met ESP-01 en relaismodule met drukknop: Dus in de vorige instructies hebben we een ESP-01 met Tasmota geprogrammeerd met behulp van een ESP Flasher en de ESP-01 verbonden met onze wifi-netwerken. Nu kunnen we beginnen met het programmeren ervan om een lichtschakelaar aan/uit te zetten via wifi of de drukknop.Voor de elektrische wer
Teller met drukknop - Tinker Cad: 3 stappen
Teller met drukknop | Tinker Cad: Als je eenmaal een drukknop hebt laten werken, wil je vaak actie ondernemen op basis van hoe vaak de knop wordt ingedrukt. Om dit te doen, moet u weten wanneer de knop van status verandert van uit naar aan, en tellen hoe vaak deze verandering van status plaatsvindt. NS
Aan Uit Vergrendelingscircuit met UC. Eén drukknop. Een pin. Discrete component.: 5 stappen
Aan Uit Vergrendelingscircuit met UC. Eén drukknop. Een speld. Discrete Component.: Hallo allemaal, was op zoek naar een aan/uit circuit op het net. Alles wat ik vond was niet wat ik zocht. Ik was tegen mezelf aan het praten, daar is noodzakelijkerwijs een manier voor. Dat is wat ik nodig had.-Slechts één drukknop om aan en uit te doen.-Moet alleen
AVR-microcontroller. Schakel LED's met behulp van een drukknopschakelaar. Debouncen met drukknop: 4 stappen
AVR-microcontroller. Schakel LED's met behulp van een drukknopschakelaar. Drukknop debouncing.: In deze sectie zullen we leren hoe we programma C-code voor ATMega328PU kunnen maken om de status van de drie LED's te wisselen volgens de invoer van een knopschakelaar. We hebben ook een oplossing onderzocht voor het probleem van 'Switch Bounce'. Zoals gewoonlijk zullen we
Een drukknop aansluiten met audio-ingang en -uitgang: 13 stappen
Een drukknop aansluiten met audio-invoer en -uitvoer: Een drukknop is een van de basiscomponenten voor het vastleggen van uw actie. Je kunt dynamisch op een knop drukken om iets te doen. Er zijn al verschillende manieren om drukknoppen in je projecten te gebruiken (bijvoorbeeld het hacken van muis en toetsenbord, of Arduino, gainer, MCK). Dit