Turinys:

„Dot Matrix“šviesos diodo naudojimas naudojant „Arduino“ir „Shift“registrą: 5 žingsniai
„Dot Matrix“šviesos diodo naudojimas naudojant „Arduino“ir „Shift“registrą: 5 žingsniai

Video: „Dot Matrix“šviesos diodo naudojimas naudojant „Arduino“ir „Shift“registrą: 5 žingsniai

Video: „Dot Matrix“šviesos diodo naudojimas naudojant „Arduino“ir „Shift“registrą: 5 žingsniai
Video: Международный аэропорт Ханэда всегда будет в курсе потребностей наших клиентов. 🇷🇺 2024, Lapkritis
Anonim
„Dot Matrix“šviesos diodo naudojimas su „Arduino“ir „Shift“registru
„Dot Matrix“šviesos diodo naudojimas su „Arduino“ir „Shift“registru
„Dot Matrix“šviesos diodo naudojimas su „Arduino“ir „Shift“registru
„Dot Matrix“šviesos diodo naudojimas su „Arduino“ir „Shift“registru
„Dot Matrix“šviesos diodo naudojimas su „Arduino“ir „Shift“registru
„Dot Matrix“šviesos diodo naudojimas su „Arduino“ir „Shift“registru

„Siemens DLO7135 Dot Matrix LED“yra vienas nuostabus optoelektronikos elementas. Jis apmokestinamas kaip 5x7 taškų matricos išmanusis ekranas (r) su atmintimi/dekoderiu/tvarkykle. Kartu su šia atmintimi ji turi 96 simbolių ASCII ekraną su didžiosiomis ir mažosiomis raidėmis, įmontuotą simbolių generatorių ir multiplekserį, keturis šviesos intensyvumo lygius ir visa tai veikia 5 V įtampa., o už $ 16 pop, tai tikrai turėtų. Pusę dienos praleisdama mėgstamoje vietinėje elektronikos parduotuvėje radau pilną šiukšliadėžę už 1,50 USD už vienetą. Iš parduotuvės išėjau su keliais. Ši instrukcija parodys, kaip prisijungti prie šių taškinės matricos šviesos diodų ir rodyti simbolius naudojant AVR pagrįstą „Arduino“. Jei perskaitėte bet kurį ankstesnį mano vadovą, jums gali kilti mintis, kad aš dažnai esu už palankiausią sprendimą, ir jūs nesuklystumėte, net jei kartkartėmis nepasiekiu tikslo. Todėl aš taip pat žengiu dar vieną žingsnį šioje instrukcijoje ir parodysiu, kaip galite sumažinti įvesties/išvesties prievadų skaičių, reikalingą šiems dideliems taškinės matricos šviesos diodams valdyti.

1 žingsnis: įsigykite prekes…

Gaukite prekes…
Gaukite prekes…

Šiam trumpam mažam projektui jums reikės:

  • AVR pagrindu sukurtą mikrovaldiklį, pvz., „Arduino“ar bet kurį kitą panašų. Šios instrukcijos tikriausiai gali būti pritaikytos jūsų pasirinktam MCU.
  • DLO7135 taškinės matricos šviesos diodas arba kitas tos pačios šeimos
  • 8 bitų poslinkių registrą, pvz., 74LS164, 74C299 arba 74HC594
  • duonos lenta
  • prijungimo viela, vielos pjaustytuvai ir kt.

Lituoklio nereikia, nors aš jį naudoju vėliau; galite apsieiti be jo.

2 žingsnis: Tiesiogiai prijunkite prie LED ekrano

Tiesiogiai prijunkite prie LED ekrano
Tiesiogiai prijunkite prie LED ekrano
Tiesiogiai prijunkite prie LED ekrano
Tiesiogiai prijunkite prie LED ekrano
Tiesiogiai prijunkite prie LED ekrano
Tiesiogiai prijunkite prie LED ekrano

Išdėstykite savo nedidelį dalių sąrašą ir patraukite šviesos diodą. Padėkite jį ant duonos lentos, šiek tiek centre, ties vidurio linijos grioveliu. Pirmoji prijungimo dalis vyksta kairėje šviesos diodo pusėje. Smeigtukas #1 yra viršuje kairėje, kaip parodyta trikampiu/rodykle. Smeigtukų funkcijas įdėjau į paveikslėlį, kad galėtumėte skaityti ar prijungti šviesos diodą.

Kairioji pusė

Teigiamas ir neigiamas Pradedant viršuje kairėje, prijunkite Vcc prie 5 V. Galbūt gera idėja, kad jūsų lenta nebūtų maitinama, kol neužbaigsite visos kairės pusės; Šviesos diodas gali būti ryškus, jei bandote pamatyti mažas skyles laidams įkišti. Prijunkite apatinį kairįjį GND prie žemės. Lempos bandymas, lusto įjungimas ir rašymas 2 ir 3 iš viršaus kairėje yra lempos bandymas ir įjungimas. Tai yra neigiama logika, tai reiškia, kad jie įjungiami, kai jie yra ne 1, o loginiame 0. LT kaištis, kai įjungtas, uždega kiekvieną tašką matricos matricoje esant 1/7 ryškumui. Tai labiau pikselių testas, tačiau įdomus dalykas, susijęs su LT kaiščiu, yra tai, kad jis neperrašo jokių atmintyje esančių simbolių, taigi, jei turite kelis iš jų sujungtus (jie turi 20 pėdų žiūrėjimo atstumą), tada „strobing LT“gali atrodyti kaip žymeklis. Norėdami užtikrinti, kad jis būtų išjungtas, prijunkite jį prie 5 V. CE ir WR kaiščiai taip pat yra neigiamos logikos ir turi būti įjungti, kad būtų galima rašyti į šį išmanųjį įrenginį. Šiuos kaiščius galite valdyti mikroprocesoriuje naudodami atsarginius įvesties/išvesties prievadus savo mikrovaldiklyje, bet mes čia nesivarginsime. Tiesiog prijunkite juos prie žemės, kad jie būtų įjungti. Ryškumo lygiai DLO šeimos šviesos diodų šeimoje yra keturi programuojami ryškumo lygiai:

  • Tuščias
  • 1/7 Ryškumas
  • 1/2 Ryškumas
  • Visas ryškumas

BL1 HIGH ir BL0 LOW yra 1/2 ryškumo. Abu HIGH yra pilni ryškumo. Nustatykite tai, kas jums patinka. Vėlgi, jei turite atsarginių įvesties/išvesties prievadų ir tai jums pakankamai svarbu, tai taip pat gali valdyti jūsų „Arduino“. Tai apvynioja kairę pusę. Jei prijungsite maitinimą prie savo plokštės, turėtumėte pamatyti, kaip šviečia šviesos diodas. Jei įdomu, žaiskite su ryškumo valdikliais ir lempos testu.

Dešinė pusė

Dešinę pusę sudaro visiškai duomenų prievadai. Apatinis dešinysis, tiksliau 8 arba D0 kaištis, žymi mažiausiai reikšmingą bitą 7 bitų simbolyje. Viršuje dešinėje, 14 arba D6 kaištis reiškia reikšmingiausią bitą. Tai leidžia jums žinoti, kokia tvarka reikia maišyti bitus rašant į šviesos diodą. Prijungę duomenų įvesties prievadus, suraskite septynis tuščius skaitmeninius įvesties/išvesties prievadus „Arduino“arba AVR ir prijunkite juos. Tikriausiai norėsite prisiminti, koks jūsų AVR duomenų išvesties prievadas eina į kurį šviesos diodo įvesties prievadą. Dabar esate pasiruošę perkelti kai kuriuos duomenis į tą išmanųjį šviesos diodą. Ar jau drebate iš jaudulio? Žinau, kad aš esu…

3 veiksmas: rodomo simbolio nurodymas

Rodomo simbolio nurodymas
Rodomo simbolio nurodymas

Simbolių rinkinys, naudojamas šiam CMOS šviesos diodui, yra jūsų ASCII serija, pradedant nuo 0x20 (dešimtainė dalis; tarpas) ir baigiant 0x7F (dešimtainis skaičius 127; ištrynimas, nors LED rodomas kaip žymeklio grafika). Taigi, jei LED rodomas simbolis, nieko daugiau nereikia, kaip tik paspausti loginę 1 arba 0 ant jūsų duomenų išvesties kaiščių, po kurių paprastai seka WR impulsas, bet aš tai darau šiam pratimui. Taigi, jūs užsirašėte arba prisiminiau, kokie smeigtukai eina į kokius uostus, tiesa? Aš pasirinkau PD [2..7] ir PB0 (skaitmeniniai kaiščiai nuo 2 iki 8 Arduino kalba). Paprastai nesiūlau naudoti PD [0..1], nes skiriu jį savo serijiniam ryšiui atgal į „FreeBSD“dėžutę, o Arduino ir kt. susieti tuos kaiščius su jų FTDI USB ryšio kanalu, ir nors „jie“SAKO, kad 0 ir 1 kaiščiai veiks, jei nepradėsite inicijuoti nuoseklaus ryšio, aš niekada negalėjau naudoti tų kaiščių kaip įprasto skaitmeninio įvesties/išvesties. Tiesą sakant, dvi dienas bandžiau derinti problemą, kai bandžiau naudoti PD0 ir PD1 ir pastebėjau, kad jie visada buvo AUKŠTI. * gūžtelėti pečiais* Tikriausiai būtų gerai turėti tam tikrą išorinį įvestį, pvz., klaviatūrą, stūmoklį ar nykščio jungiklį, o gal net įvestį iš terminalo (mano „ArduinoTerm“dar nepasiruošęs pagrindiniam laikui …). Tavo pasirinkimas. Kol kas aš tik iliustruosiu, kaip gauti kodą, kad norimas simbolis patektų į šviesos diodą. Yra ZIP failas, kurį galima atsisiųsti, įskaitant šaltinio kodą ir „Makefile“, taip pat yra trumpas filmas, rodantis, kad LED spausdina jo simbolių rinkinį. Atsiprašome už kraupią vaizdo įrašo kokybę. Toliau pateiktas kodas spausdina eilutę „Sveiki atvykę į mano instrukciją!“tada pereina per visą simbolių rinkinį, kurį palaiko šviesos diodas.

DDRD = 0xFF; // OutputDDRB = (1 << DDB0); char msg = "Sveiki atvykę į mano mokomą!"; uint8_t i; for (;;) {for (i = 0; i <27; i ++) {Print2LED (msg ); _delay_ms (150); } (i = 0x20; i <0x80; i ++) {Print2LED (i); _delay_ms (150); } Print2LED (& apos*& apos);}Prievado išvestimi pasirūpinama naudojant funkciją „Print2Led ()“

voidPrint2LED (uint8_t i) {PORTD = (i << 2); jei (i & 0b01000000) PORTB = (1 <

Kodas ir „Makefile“yra įtraukti į žemiau esantį ZIP failą.

4 žingsnis: išsaugokite įvesties/išvesties prievadus naudodami pamainų registrą

Išsaugokite įvesties/išvesties prievadus naudodami pamainų registrą
Išsaugokite įvesties/išvesties prievadus naudodami pamainų registrą
Išsaugokite įvesties/išvesties prievadus naudodami pamainų registrą
Išsaugokite įvesties/išvesties prievadus naudodami pamainų registrą
Išsaugokite įvesties/išvesties prievadus naudodami pamainų registrą
Išsaugokite įvesties/išvesties prievadus naudodami pamainų registrą

Taigi dabar mūsų mikrovaldiklis gali siųsti duomenis į taškinės matricos šviesos diodą, tačiau jis naudoja aštuonis įvesties/išvesties prievadus. Tai neapima ATtiny naudojimo 8 kontaktų DIP pakete ir net naudojant naujesnį „Arduino“, kuriame yra „ATmega328p“, tai yra daug įvesties/išvesties prievadų vienam LED. Tačiau tai galime išspręsti naudodami IC, vadinamą pamainų registru. Akimirka „perjungti“pavaras… Perjungimų registrą geriausiai galima suprasti pagalvojus apie du žodžius, sudarančius jo pavadinimą: „perjungti“ir „užsiregistruoti“. Žodis „poslinkis“reiškia, kaip duomenys juda per registrą. Čia (kaip ir mūsų „Arduino“ir mikrovaldikliuose) registras yra vieta, kurioje saugomi duomenys. Tai daroma diegiant linijinę skaitmeninių loginių grandinių grandinę, vadinamą „šlepetėmis“, turinčią dvi stabilias būsenas, kurias galima pavaizduoti 1 arba 0. ir atstovauja 8 bitų baitui. Kaip ir yra kelių tipų šlepetės, ir keletas variantų pamainų registrų tema (pagalvokite aukštyn/žemyn skaitikliai ir „Johnson“skaitikliai), taip pat yra keletas pamainų registrų tipų, pagrįstų duomenų yra įtrauktas į registrą ir kaip tie duomenys išvedami. Remdamiesi tuo, apsvarstykite šiuos pamainų registrų tipus:

  • Serial In / Parallel Out (SIPO)
  • Serial In / Serial Out (SISO)
  • Parallel In/ Serial Out (PISO)
  • Lygiagretus įėjimas / lygiagretus išėjimas (PIPO)

Dvi svarbiausios yra SIPO ir PISO. SIPO registrai ima duomenis serijiniu būdu, tai yra, vieną bitą po kito, perkeliant anksčiau įvestą bitą į kitą apversimą ir siunčiant duomenis iš visų įėjimų vienu metu. Tai daro gražų serijinį lygiagretų keitiklį. PISO poslinkių registrai, atvirkščiai, turi lygiagrečius įėjimus, todėl visi bitai įvedami iš karto, bet išvedami po vieną. Ir jūs atspėjote, tai yra puiki paralelė serijiniam keitikliui. Pamainų registras, kurį norime naudoti norėdami sumažinti įvesties/išvesties kaiščių skaičių, leistų mums paimti tuos 8 anksčiau naudojamus IO kaiščius ir sumažinti juos iki vieno, o gal tik poros, atsižvelgiant į tai, kad mums gali tekti kontroliuoti, kaip įvedame bitai. Todėl mūsų naudojamas pamainų registras yra serijinis įėjimas / lygiagretusis išėjimas. Sujunkite poslinkių registrą tarp šviesos diodo ir „Arduino“Naudoti perjungimo registrą lengva. Sunkiausia yra tik vizualizuoti duomenų išvesties kaiščius ir tai, kaip dvejetainiai skaitmenys pateks į IC ir kaip jie galiausiai pasirodys šviesos diode. Skirkite šiek tiek laiko tai suplanuoti. 1. Pritvirtinkite 5V prie 14 kaiščio (viršuje dešinėje) ir nuimkite 7 kaištį (apačioje kairėje) žemyn. Pamainų registre yra du nuoseklūs įėjimai, tačiau naudosime tik vieną, todėl prijunkite du kaiščius prie 5V3. Mes nenaudosime skaidraus kaiščio (naudojamas nuliui išvesti visus išėjimus), todėl palikite jį plūduriuojantį arba užpulkite iki 5 V4. Prijunkite vieną skaitmeninį IO prievadą, kad prisegtumėte vieną pamainų registrą. Tai yra nuosekliosios įvesties kaištis.5. Prijunkite vieną skaitmeninį IO prievadą prie 8 kaiščio (apačioje dešinėje). Tai laikrodžio kaištis.6. Prijunkite duomenų linijas nuo Q0 iki Q6. Mes naudojame tik 7 bitus, nes ASCII simbolių rinkinys naudoja tik septynis bitus. Aš naudoju PD2 serijiniams duomenims išvesti, o PD3 - laikrodžio signalui. Duomenų kaiščiams prijungiau šviesos diodą nuo Q0 iki D6 ir tęsiu taip (nuo Q1 iki D5, nuo Q2 iki D4 ir tt). Kadangi siunčiame duomenis serijiniu būdu, turėsime išnagrinėti kiekvieno norimo siųsti simbolio dvejetainį vaizdą, pažvelgti į 1 ir 0 ir išvesti kiekvieną bitą serijos eilutėje. Aš įtraukiau antrąją „dotmatrixled.c“šaltinio versiją kartu su „Makefile“žemiau. Jis cikliuoja per simbolių rinkinį ir parodo visus lyginius simbolius (jei keista manyti, kad raidė gali būti nelyginė ar lyginė, akimirką pagalvokite apie dvejetainį vaizdavimą). Pabandykite išsiaiškinti, kaip tai padaryti, rodant visus nelyginius simbolius. Galite toliau eksperimentuoti su jungtimis tarp pamainų registro, taškinės matricos šviesos diodo ir „Arduino“. Tarp šviesos diodo ir registro yra keletas valdymo funkcijų, leidžiančių tiksliai sureguliuoti, kada rodomi duomenys. Taigi…. Nuo aštuonių įvesties/išvesties prievadų naudojome tik du!

5 žingsnis: santrauka

Santrauka
Santrauka
Santrauka
Santrauka

Šioje pamokoje aš pristatiau DLO7135 taškinės matricos šviesos diodą ir kaip tai padaryti. Toliau aptariau, kaip sumažinti būtinų įvesties/išvesties prievadų skaičių nuo aštuonių iki tik dviejų, naudojant pamainų registrą. Taškinės matricos šviesos diodas DLO7135 gali būti sujungtas, kad būtų labai patrauklios ir įdomios palapinės. Tikiuosi, kad jums buvo smagu skaityti šią pamoką! Jei manote, kad galėčiau padaryti kokių nors patobulinimų, ar pasiūlymų, kuriuos norėtumėte pateikti dėl šio ar bet kurio iš mano stebuklų, džiaugiuosi juos girdėdamas! Laimingas AVR!

Rekomenduojamas: