Indholdsfortegnelse:

Trykknap LED Matrix: 4 trin
Trykknap LED Matrix: 4 trin

Video: Trykknap LED Matrix: 4 trin

Video: Trykknap LED Matrix: 4 trin
Video: What are friends for! #thehamiltoncollection #bugatti #laferrari 2024, November
Anonim
Trykknap LED Matrix
Trykknap LED Matrix

Dette projekt kan betragtes som et andet indledende Arduino -projekt, der er lidt mere avanceret end dit typiske 'blinkende et LED' -projekt. Dette projekt indeholder en LED -matrix, trykknapper, skifteregistre (som kan gemme ben på dit Arduino -kort) og et nøglekoncept kaldet multiplexing. Jeg håber, at du finder vejledningen oplysende og udfordrer dig selv til at forbedre den!

Forbrugsvarer

(1x) Arduino Uno

(5x) Taktile trykknapper

(2x) 0,1 uF kondensatorer

(2x) 1 uF kondensatorer

(8x) 1k modstande

(5x) 10k modstande

(2x) 74HC595 skifteregistre

Jumper Wires

Sort ledning

Rød ledning

Trin 1: Trin 1: Lav en LED -matrix

Trin 1: Lav en LED -matrix
Trin 1: Lav en LED -matrix
Trin 1: Lav en LED -matrix
Trin 1: Lav en LED -matrix
Trin 1: Lav en LED -matrix
Trin 1: Lav en LED -matrix

Den vejledning, jeg plejede at lave 8x8 LED -matrixen i dette projekt, kan findes her. Der er almindelige konfigurationer for en LED -matrix:

a) Common Row Anode

b) Common Row -katode

Da jeg brugte Common Row Cathode arrangement af matrixen, vil jeg hovedsageligt diskutere det her, og du kan udvide den samme logik til Common Row Anode arrangementet. I Common Row Cathode -arrangementet er LED'ernes katoder (eller negative terminaler, som er det kortere ben på en LED) forbundet i rækker, mens anoderne (eller positive terminaler, som er det længere ben på en LED) er forbundet sammen i kolonner. For at adressere en bestemt LED skal du trække i katodrækken, hvor LED -katoden er lav, og trække i anodesøjlen, som LED -anoden er på.

Bemærk: Når du laver LED -matricen vist i ovenstående link, skal du sørge for at forbinde anodesøjlerne med 1k ohm modstande, før der påføres en hvilken som helst spænding på LED'erne.

Trin 2: Trin 2: Tilslutning af trykknapper og skiftregistre

Trin 2: Tilslutning af trykknapper og skiftregistre
Trin 2: Tilslutning af trykknapper og skiftregistre
Trin 2: Tilslutning af trykknapper og skiftregistre
Trin 2: Tilslutning af trykknapper og skiftregistre
Trin 2: Tilslutning af trykknapper og skiftregistre
Trin 2: Tilslutning af trykknapper og skiftregistre
Trin 2: Tilslutning af trykknapper og skiftregistre
Trin 2: Tilslutning af trykknapper og skiftregistre

Ledningerne til trykknapper og skifteregistre er vist ovenfor. Jeg vil gerne bemærke, at skifteregistrene i kredsløbsdiagrammet ikke viser jorden (pin 8 på IC) og Vcc eller strømforsyning (pin 16 på IC) benene til chipsene; jordstiften er forbundet til GND -stiften på Arduino -kortet, og Vcc er forbundet til 5V -stiften på Arduino -kortet. Vcc -stiften i hvert skiftregister er også forbundet med en 0.1uF kondensator, der er forbundet til jorden.

Bemærk: Outputs fra hvert skiftregister er angivet som QA til QH (ignorer QH*). De er angivet i form af den mindst signifikante bit (LSB) (for QA) til den mest signifikante bit (MSB) (for QH) dvs. QA ville styre den otte række eller kolonne osv.

Trin 3: Trin 3: Upload af koden

Koden til styring af LED -matricen er knyttet til denne vejledning. Jeg forsøgte at kommentere så meget af koden som jeg kunne, så det ville være meget klart, hvordan programmet fungerer. Programmets hovedgrundlag er, at der er en matrix, der holder styr på, hvilke lysdioder der skal være tændt eller slukket. For at få de forskellige lysdioder til at vise korrekt uden uheld at tænde for uønskede dioder, er det at bruge et koncept kaldet multiplexing. Multiplexing er i det væsentlige at belyse individuelle lysdioder i særlig række, mens alle andre lysdioder i andre rækker og derefter gøre det samme for de resterende rækker. Tricket er, at hvis lysdioderne cykler gennem rækkerne hurtigt nok, kan dine øjne fortælle, at individuelle rækker lyser en ad gangen. Hvis du gerne vil udforske flere måder, du kan narre dine øjne med lysdioder, kan du undersøge begrebet visionens vedholdenhed (let søgbar på Google eller Instructables).

Den måde, anodekolonnerne og katoderækkerne opdateres på, er gennem en brugerdefineret funktion kaldet 'UpdateShiftRegisters'. Denne funktion drejer først låsestiften, som styrer, om en ny byte (8 bit) sendes til udgangen, lav, så ingen ændringer af udgangene er mulige, mens nye bits skrives til chippen. Ved hjælp af en indbygget Arduino-funktion kaldet 'ShiftOut', som specifikt håndterer afsendelse af data til skiftregistre, skriver programmet, hvilken (katode) række der ville være lav, og hvilke (anode) kolonner der skulle være høje. Endelig trækkes låsestiften højt for at opdatere output (lysdioderne).

Trin 4: Yderligere oplysninger/ressourcer

Her er nogle links til websteder eller bøger, der kan give yderligere oplysninger om dette projekt:

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

Kom godt i gang med Arduino, 2. udgave af Massimo Banzi

Anbefalede: