INHOUDSOPGAWE:

Knoppie LED Matrix: 4 stappe
Knoppie LED Matrix: 4 stappe

Video: Knoppie LED Matrix: 4 stappe

Video: Knoppie LED Matrix: 4 stappe
Video: Home Automation: Using 4 Push button push-ON and push-OFF 4 relays with Arduino 2024, November
Anonim
Drukknop LED Matrix
Drukknop LED Matrix

Hierdie projek kan beskou word as nog 'n inleidende Arduino -projek wat effens meer gevorderd is as u tipiese 'blink 'n LED -projek. Hierdie projek bevat 'n LED -matriks, drukknoppies, skuifregisters (wat penne op u Arduino -bord kan stoor) en 'n belangrike konsep genaamd multiplexing. Ek hoop dat u die tutoriaal verhelderend vind en dat u uself uitdaag om dit te verbeter!

Voorrade

(1x) Arduino Uno

(5x) Taktiele drukknoppies

(2x) 0,1 uF -kondensators

(2x) 1 uF -kondensators

(8x) 1k weerstande

(5x) 10k weerstande

(2x) 74HC595 skofregisters

Jumper Wires

Swart draad

Rooi draad

Stap 1: Stap 1: Maak 'n LED -matriks

Stap 1: Maak 'n LED -matriks
Stap 1: Maak 'n LED -matriks
Stap 1: Maak 'n LED -matriks
Stap 1: Maak 'n LED -matriks
Stap 1: Maak 'n LED -matriks
Stap 1: Maak 'n LED -matriks

Die handleiding wat ek gebruik het om die 8x8 LED -matriks in hierdie projek te maak, kan hier gevind word. Daar is algemene konfigurasies vir 'n LED -matriks:

a) Gewone ry -anode

b) Gewone ry katode

Aangesien ek die Common Row Cathode -rangskikking van die matriks gebruik het, sal ek dit hoofsaaklik hier bespreek, en u kan dieselfde logika tot die Common Row Anode -rangskikking uitbrei. In die Common Row katode -rangskikking word die LED's se katodes (of negatiewe terminale wat die korter been op 'n LED is) in rye aan mekaar verbind, terwyl die anodes (of positiewe terminale wat die langer been op 'n LED is) in kolomme aan mekaar gekoppel is. Om 'n spesifieke LED aan te spreek, trek die katode ry waarin die LED katode laag is en trek die anode kolom waarop die LED anode hoog is.

Opmerking: as u die LED -matriks wat in die skakel hierbo getoon word, maak, moet u die anodekolomme met die 1k ohm -weerstande verbind voordat u spanning op die LED's toepas.

Stap 2: Stap 2: Bedrading van die drukknoppies en skuifregisters

Stap 2: Verbind die drukknoppies en skofregisters
Stap 2: Verbind die drukknoppies en skofregisters
Stap 2: Bekabeling van die drukknoppies en verskuiwingsregisters
Stap 2: Bekabeling van die drukknoppies en verskuiwingsregisters
Stap 2: Verbind die drukknoppies en skofregisters
Stap 2: Verbind die drukknoppies en skofregisters
Stap 2: Bekabeling van die drukknoppies en verskuiwingsregisters
Stap 2: Bekabeling van die drukknoppies en verskuiwingsregisters

Die bedrading vir die drukknoppies en skofregisters word hierbo getoon. Ek wil daarop let dat die skofregisters in die kringdiagram nie die grond (pen 8 van die IC) en Vcc of kragtoevoer (pen 16 van die IC) penne vir die skyfies toon nie; die grondpen is gekoppel aan die GND -pen van die Arduino -bord en Vcc is gekoppel aan die 5V -pen van die Arduino -bord. Die Vcc -pen van elke skofregister is ook gekoppel aan 'n 0.1uF kapasitor wat op die aarde gekoppel is.

Let wel: Die uitsette van elke skofregister word as QA tot QH gelys (ignoreer QH*). Hulle word gelys in terme van die minste beduidende bietjie (LSB) (vir QA) tot die belangrikste bit (MSB) (vir QH), dit wil sê QA beheer die 0de ry of kolom, ens.

Stap 3: Stap 3: Laai die kode op

Die kode om die LED -matriks te beheer, is by hierdie tutoriaal aangeheg. Ek het probeer om soveel as moontlik van die kode kommentaar te lewer, sodat dit baie duidelik sou wees hoe die program werk. Die belangrikste basis van die program is dat daar 'n matriks is wat byhou watter LED's aan of uit moet wees. Om die verskillende LED's korrek te laat vertoon sonder om per ongeluk ongewenste diodes aan te skakel, moet u 'n konsep genaamd multiplexing gebruik. Multiplexing is in wese individuele LED's in die ry verlig, terwyl alle ander LED's in ander rye dan dieselfde doen vir die oorblywende rye. Die truuk is dat as die LED's vinnig genoeg deur die rye gaan, u oë kan sien dat individuele rye een vir een aangesteek word. As u meer maniere wil ontdek om u oë met LED's te bedrieg, wil u moontlik die konsep van volharding van visie ondersoek (maklik soekbaar op Google of Instructables).

Die manier waarop die anodekolomme en katode rye opgedateer word, is deur 'n gebruiker-gedefinieerde funksie genaamd 'UpdateShiftRegisters'. Hierdie funksie draai eers die grendelpen, wat bepaal of 'n nuwe byte (8 bis) na die uitset gestuur word, so laag dat daar geen veranderinge aan die uitsette moontlik is terwyl nuwe bisse na die skyfie geskryf word nie. Met behulp van 'n ingeboude Arduino-funksie genaamd 'ShiftOut', wat spesifiek die stuur van data na skofregisters hanteer, skryf die program watter (katode) ry laag is en watter (anode) kolomme hoog moet wees. Uiteindelik word die grendelpen hoog getrek om die uitset (die LED's) by te werk.

Stap 4: Bykomende inligting/hulpbronne

Hier is 'n paar skakels na webwerwe of boeke wat addisionele inligting oor hierdie projek kan gee:

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 die gang met Arduino, 2de uitgawe deur Massimo Banzi

Aanbeveel: