Sisukord:

Nupp LED -maatriks: 4 sammu
Nupp LED -maatriks: 4 sammu
Anonim
Nupp LED -maatriks
Nupp LED -maatriks

Seda projekti võib pidada veel üheks sissejuhatavaks Arduino projektiks, mis on veidi arenenum kui teie tüüpiline LED -i vilkuv projekt. See projekt sisaldab LED -maatriksit, nuppe, vahetusregistreid (mis võivad teie Arduino tahvlile tihvte salvestada) ja võtmekontseptsiooni, mida nimetatakse multipleksimiseks. Loodan, et leiate, et õpetus on valgustav ja esitate endale väljakutse seda parandada!

Tarvikud

(1x) Arduino Uno

(5x) kombatavad nupud

(2x) 0,1 uF kondensaatorit

(2x) 1 uF kondensaatorit

(8x) 1k takistid

(5x) 10k takistid

(2x) 74HC595 vahetuste registrid

Jumper juhtmed

Must traat

Punane traat

1. samm: 1. samm: LED -maatriksi tegemine

Samm: LED -maatriksi tegemine
Samm: LED -maatriksi tegemine
Samm: LED -maatriksi tegemine
Samm: LED -maatriksi tegemine
Samm: LED -maatriksi tegemine
Samm: LED -maatriksi tegemine

Õpetuse, mida ma selles projektis 8x8 LED -maatriksi valmistamiseks kasutasin, leiate siit. LED -maatriksi jaoks on tavalised konfiguratsioonid:

a) Ühine ridaanood

b) Ühine rea katood

Kuna ma kasutasin maatriksi ühise rea katoodi paigutust, arutan seda peamiselt siin ja saate sama loogikat laiendada ka ühise rea anoodi paigutusele. Ühise rea katoodi paigutuses on valgusdioodide katoodid (või negatiivsed klemmid, mis on LED -i lühem jalg) ühendatud ridadesse, samas kui anoodid (või positiivsed klemmid, mis on LED -i pikem jalg) on ühendatud veergudes. Konkreetse LED -i käsitlemiseks tõmmake katoodirida, et LED -katood on madalal, ja tõmmake anoodikolonni, mille LED -anood on kõrgel.

Märkus. Ülaltoodud lingil näidatud LED -maatriksi tegemisel ühendage anoodikolonnid kindlasti 1k -oomi takistitega, enne kui LED -idele pinget rakendate.

2. samm: 2. samm: nuppude ja vahetusregistrite ühendamine

2. samm: nuppude ja vahetusregistrite ühendamine
2. samm: nuppude ja vahetusregistrite ühendamine
2. samm: nuppude ja vahetusregistrite ühendamine
2. samm: nuppude ja vahetusregistrite ühendamine
2. samm: nuppude ja vahetusregistrite ühendamine
2. samm: nuppude ja vahetusregistrite ühendamine
2. samm: nuppude ja vahetusregistrite ühendamine
2. samm: nuppude ja vahetusregistrite ühendamine

Nuppude ja vahetusregistrite juhtmestik on näidatud ülal. Tahaksin märkida, et lülitusskeemidel olevad nihkeregistrid ei näita kiipide maandust (IC 8. tihvt) ja Vcc -d ega toiteallika (IC 16. tihvti) kontakte; maandusnõel on ühendatud Arduino plaadi GND tihvtiga ja Vcc on ühendatud Arduino plaadi 5 V kontaktiga. Iga nihkeregistri Vcc tihvt on ühendatud ka maapinnaga ühendatud 0,1uF kondensaatoriga.

Märkus: Iga vahetuste registri väljundid on loetletud kui QA kuni QH (ignoreerige QH*). Need on loetletud kõige vähem olulise bitina (LSB) (QA jaoks) kuni kõige olulisemas bitis (MSB) (QH jaoks), st QA kontrolliks 0 -ndat rida või veergu jne.

3. samm: 3. samm: koodi üleslaadimine

Selle õpetuse juurde on lisatud LED -maatriksi juhtimise kood. Proovisin võimalikult palju koodi kommenteerida, nii et oleks väga selge, kuidas programm töötab. Programmi peamine alus on maatriks, mis jälgib, millised LED -id peaksid olema sisse või välja lülitatud. Erinevate valgusdioodide õige kuvamiseks ilma soovimatute dioodide kogemata sisse lülitamata on kasutada kontseptsiooni, mida nimetatakse multipleksimiseks. Multipleksimine sisuliselt süttib konkreetse rea üksikuid LED -e, samal ajal kui kõik teised LED -id teistes ridades, ja teeb sama ülejäänud ridade puhul. Trikk on selles, et kui valgusdioodid liiguvad ridadest piisavalt kiiresti läbi, võivad teie silmad öelda, et üksikuid ridu süttib ükshaaval. Kui soovite uurida rohkem viise, kuidas oma silmi LED -idega petta, võiksite uurida nägemise püsivuse kontseptsiooni (hõlpsasti otsitav Google'ist või Instructablesist).

Anoodiveergude ja katoodiridade värskendamise viis on kasutaja määratud funktsioon nimega „UpdateShiftRegisters”. See funktsioon pöörab esmalt riivi tihvti, mis kontrollib, kas väljundisse saadetakse uus bait (8 bitti), madal, nii et kiibile uute bittide kirjutamise ajal pole väljundites muudatusi võimalik teha. Kasutades siis sisseehitatud Arduino funktsiooni nimega „ShiftOut”, mis tegeleb spetsiaalselt andmete saatmisega vahetusregistritesse, kirjutab programm, kumb (katood) rida oleks madal ja millised (anood) veerud peaksid olema kõrged. Lõpuks tõmmatakse riivi tihvt kõrgele, et värskendada väljundit (valgusdioodid).

4. samm: lisateave/ressursid

Siin on mõned lingid veebisaitidele või raamatutele, mis võivad selle projekti kohta lisateavet anda:

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

Arduino alustamine, 2. väljaanne, autor Massimo Banzi

Soovitan: