Tartalomjegyzék:

Dot Matrix LED használata Arduino és Shift regisztrációval: 5 lépés
Dot Matrix LED használata Arduino és Shift regisztrációval: 5 lépés

Videó: Dot Matrix LED használata Arduino és Shift regisztrációval: 5 lépés

Videó: Dot Matrix LED használata Arduino és Shift regisztrációval: 5 lépés
Videó: Easy LED Matrix Control: Arduino and 8x8 1088AS Matrix Multiplexing 2024, November
Anonim
Dot Matrix LED használata Arduino és Shift regiszterrel
Dot Matrix LED használata Arduino és Shift regiszterrel
Dot Matrix LED használata Arduino és Shift regiszterrel
Dot Matrix LED használata Arduino és Shift regiszterrel
Dot Matrix LED használata Arduino és Shift regiszterrel
Dot Matrix LED használata Arduino és Shift regiszterrel

A Siemens DLO7135 Dot mátrix LED az optoelektronika egyik csodálatos darabja. 5x7 Dot Matrix Intelligens kijelzőként (r) van számlázva, memóriával/dekódolóval/illesztőprogrammal. Ezzel a memóriával együtt egy 96 karakteres ASCII kijelzővel rendelkezik, kis- és nagybetűkkel, beépített karaktergenerátorral és multiplexerrel, négy fényerősségi szinttel, és mindez 5 V-on működik., 16 dollárért pedig mindenképpen. Miközben a fél napot a kedvenc helyi elektronikai boltomban töltöttem, találtam egy ilyen tálcát, amely darabonként 1,50 dollárért volt. Többekkel elhagytam a boltot. Ez az utasítás megmutatja, hogyan lehet csatlakozni ezekhez a pontmátrix LED-ekhez és megjeleníteni a karaktereket AVR-alapú Arduino segítségével. Ha elolvasta bármelyik korábbi útmutatót, akkor az az elképzelése támadhat, hogy gyakran a legelőnyösebb megoldás mellett vagyok, és nem tévedne, még akkor sem, ha időnként elmaradok a céltól. Ezért még egy lépést teszek ebben az utasításban, és megmutatom, hogyan csökkentheti az I/O portok számát, amelyek szükségesek ezeknek a nagy, dicsőséges pontmátrixos LED -eknek a meghajtásához.

Lépés: Szerezze be az árut…

Szerezd meg az árut…
Szerezd meg az árut…

Ehhez a rövid kis projekthez szüksége lesz:

  • egy AVR-alapú mikrokontroller, például egy Arduino vagy bármi más. Ezeket az utasításokat valószínűleg a választott MCU -hoz kell igazítani.
  • egy DLO7135 pontmátrix LED vagy más ugyanabban a családban
  • 8 bites eltolású regiszter, mint a 74LS164, 74C299 vagy 74HC594
  • egy kenyértábla
  • bekötőhuzal, huzalvágók stb.

Forrasztópáka nem szükséges, bár később használok egyet; kibírod nélküle.

Lépés: Közvetlenül csatlakozzon a LED -kijelzőhöz

Közvetlenül csatlakoztassa a LED kijelzőhöz
Közvetlenül csatlakoztassa a LED kijelzőhöz
Közvetlenül csatlakoztassa a LED kijelzőhöz
Közvetlenül csatlakoztassa a LED kijelzőhöz
Közvetlenül csatlakoztassa a LED kijelzőhöz
Közvetlenül csatlakoztassa a LED kijelzőhöz

Állítsa össze az alkatrészek kis listáját, és ragadja meg a LED -et. Helyezze a kenyérsütő táblára kissé középre, a középvonal hornyában. A csatlakoztatás első része a LED bal oldalán történik. Az 1. tű a bal felső sarokban található, amint azt a háromszög/nyíl jelzi. A pin funkciókat egy képre helyezem, hogy tájékozódhasson, miközben olvassa vagy csatlakoztatja a LED -et.

A bal oldal

Pozitív és negatív A bal felső sarokban kezdve csatlakoztassa az Vcc -t 5V -hoz. Talán jó ötlet, ha a táblát nem kapcsolja be, amíg a teljes bal oldalt el nem készíti; a LED világíthat, ha kis lyukakat próbál látni a vezetékekbe. Csatlakoztassa a bal alsó GND -t a földhöz. Lámpa teszt, forgács engedélyezés és írás A bal oldali felülről a 2. és a 3. a Lámpa teszt és a chip engedélyezése. Mindkettő negatív logika, vagyis engedélyezve vannak, ha 1 helyett logikai 0 -nál vannak. Az alábbi képen sávokkal kell ellátni, de egyikhez sem írtam megjegyzést. Az LT tű, ha engedélyezve van, a pontmátrix minden pontját 1/7 -es fényerővel világítja meg. Ez inkább képpontteszt, de az LT -tű érdekessége, hogy nem ír felül egyetlen memóriát sem, így ha több ilyen van összefűzve (20 lábnyi látótávolságuk van), akkor az LT -t kurzornak tűnhet. Annak biztosítása érdekében, hogy le legyen tiltva, csatlakoztassa 5V -ra. A CE és a WR csapok szintén negatív logikájúak, és engedélyezniük kell az intelligens eszköz írását. Mikrokezelheti ezeket a csapokat a mikrokontroller tartalék I/O portjaival, de itt nem fogunk zavarni. Csak csatlakoztassa őket a földhöz, hogy engedélyezve legyenek. Fényerősségi fokozatok A DLO LED -családban négy programozható fényerőszint áll rendelkezésre:

  • Üres
  • 1/7 Fényerő
  • 1/2 Fényerő
  • Teljes fényerő

A BL1 HIGH és BL0 LOW 1/2 fényerő. Mindkettő HIGH teljes fényerővel rendelkezik. Állítsa be, amit szeretne. Ismét, ha van tartalék I/O portja, és ez elég fontos az Ön számára, akkor ezt az Arduino is vezérelheti. Ez a bal oldalt borítja. Ha áramot visz a táblára, látnia kell, hogy a LED világít. Ha kíváncsi, játsszon a fényerő -szabályozóval és a lámpatesttel, hogy megismerkedjen vele.

A jobb oldal

A jobb oldal teljesen adatportokból áll. A jobb alsó sarok, pontosabban a 8-as vagy a D0-as tű jelenti a legkevesebb szignifikáns bitet a 7 bites karakterben. A jobb felső sarokban lévő 14 vagy D6 tű jelenti a legjelentősebb bitet. Így tudhatja, hogy milyen sorrendben kell keverni a biteket, amikor a LED -re ír. Ha be vannak kötve az adatbeviteli portok, keressen hét üres digitális I/O portot az Arduino vagy AVR készüléken, és csatlakoztassa őket. Valószínűleg emlékezni szeretne arra, hogy az AVR melyik adatkimeneti portja melyik adatbeviteli porthoz megy a LED -en. Most készen áll arra, hogy néhány adatot az intelligens LED -re helyezzen. Remeg még az izgalomtól? Tudom, hogy vagyok…

3. lépés: A megjelenítendő karakter megadása

A megjelenítendő karakter megadása
A megjelenítendő karakter megadása

A CMOS LED-en használt karakterkészlet az Ön ASCII-sorozatának 0x20-as kezdete (tizedesjegy 32; szóköz), és 0x7F-nél végződik (tizedes 127; törlés, bár a LED-en kurzorgrafikaként jelenik meg). Tehát, ha a LED kijelzője egy karaktert tartalmaz, az nem jelent mást, mint az 1 -es vagy a 0 -as logika megnyomását az adatkimeneti érintkezőkön, általában egy WR -impulzus után, de én ezt a feladatot megelőzöm. Tehát, leírta vagy emlékszem, milyen csapok mennek a portokhoz, ugye? A PD-t [2..7] és a PB0-t választottam (2–8. Digitális tüskék az arduino-beszédben). Általában nem javaslom a PD [0..1] használatát, mert azt a soros kommunikációmnak szenteltem vissza egy FreeBSD dobozba, és Arduino és mtsai. leképezi ezeket a csapokat az FTDI USB kommunikációs csatornájukra, és bár "ők" azt mondják, hogy a 0 és 1 gomb működni fog, ha nem inicializálja a soros kommunikációt, soha nem tudtam ezeket a csapokat normál digitális I/O -ként használni. Valójában két napot töltöttem egy hiba elhárításával, amikor a PD0 és a PD1 segítségével próbáltam használni, és azt tapasztaltam, hogy azok mindig MAGASak. * vállat vont* Valószínűleg jó lenne valamilyen külső bemenet, például billentyűzet, toló- vagy hüvelykujj -kapcsoló, vagy akár terminálról történő bemenet (az ArduinoTerm még nem áll készen a főműsoridőre …). A választás a tiéd. Egyelőre csak azt illusztrálom, hogyan lehet elérni a kívánt kódot a LED -re. Van egy letölthető ZIP -fájl, amely tartalmazza a forráskódot és a Makefile -t, valamint egy rövid film is, amely bemutatja, hogy a LED nyomtatja ki a karakterkészletét. Elnézést a videó gagyi minőségéért. Az alábbi kód a "Welcome to my Instructable!" majd végigkíséri a LED által támogatott teljes karakterkészletet.

DDRD = 0xFF; // OutputDDRB = (1 << DDB0); char msg = "Welcome to my Instructable!"; uint8_t i; for (;;) {for (i = 0; i <27; i ++) {Print2LED (msg ); _delay_ms (150); } for (i = 0x20; i <0x80; i ++) {Print2LED (i); _delay_ms (150); } Print2LED (& apos*& apos);}A port kimenetéről a Print2Led () függvény gondoskodik

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

A kód és a Makefile az alábbi zip fájlban található.

4. lépés: Az I/O portok megőrzése eltolásregiszterrel

Az I/O portok megőrzése eltolásregiszterrel
Az I/O portok megőrzése eltolásregiszterrel
Az I/O portok megőrzése eltolásregiszterrel
Az I/O portok megőrzése eltolásregiszterrel
Az I/O portok megőrzése eltolásregiszterrel
Az I/O portok megőrzése eltolásregiszterrel

Így most a mikrokontrollerünk képes adatokat küldeni a pontmátrix LED -re, de nyolc I/O portot használ. Ez kizárja az ATtiny használatát 8 tűs DIP csomagban, és még egy újabb Arduino-val, amely ATmega328p-vel rendelkezik, sok I/O port van egy LED-hez. Ezt azonban megkerülhetjük egy váltóregiszternek nevezett IC használatával. Egy pillanat a fogaskerekek "váltásához"… A váltásregisztert a legjobban úgy lehet megérteni, ha a nevét alkotó két szóra gondolunk: "váltás" és "regiszter". A shift szó arra utal, hogy az adatok hogyan mozognak a regiszterben. Itt (mint általában az Arduino -nál és a mikrokontrollereknél) a regiszter olyan hely, amely adatokat tárol. Ezt úgy hajtja végre, hogy a digitális logikai áramkörök lineáris láncát „flip flopoknak” nevezi, amely két stabil állapotot tartalmaz, amelyeket 1 vagy 0 jelölhet. Tehát, ha nyolc flip flopot tesz össze, akkor van egy eszköze, amely képes megtartani és 8 bites bájtot képvisel. Ahogy többféle flip flop létezik, és több variáció létezik a műszakregiszterek témájára (gondoljunk fel/le számlálókra és Johnson számlálókra), az adatok módjától függően többféle műszakregiszter is létezik. be van zárva a nyilvántartásba, és hogy az adatok hogyan kerülnek kiadásra. Ennek alapján vegye figyelembe a következő típusú műszakregisztereket:

  • Soros bemenet / párhuzamos kimenet (SIPO)
  • Soros bemenet / Soros kimenet (SISO)
  • Párhuzamos bemenet/ soros kimenet (PISO)
  • Párhuzamos be / párhuzamos kimenet (PIPO)

Kettő a SIPO és a PISO. A SIPO regiszterek sorban veszik az adatokat, azaz egy bitet a másik után, áthelyezve az előzőleg bevitt bitet a következő flip flopra, és az adatokat minden bemenetre egyszerre küldik ki. Ez szép soros -párhuzamos átalakítót eredményez. Ezzel szemben a PISO shift regiszterek párhuzamos bemenettel rendelkeznek, így minden bit egyszerre kerül bevitelre, de egyenként. És sejtette, ez szép párhuzamot teremt a soros átalakítóval. A műszakregiszter, amellyel az I/O érintkezők számát szeretnénk csökkenteni, lehetővé tenné számunkra, hogy kivesszük azt a 8 IO tűt, amelyeket korábban használtunk, és lecsökkentsük őket egyre, vagy talán csak párra, tekintettel arra, hogy szükségünk lehet a beviteli mód szabályozására. a biteket. Ezért az általunk használt műszakregiszter soros bemenet / párhuzamos kimenet. Csatlakoztassa a váltásregisztert a LED és az Arduino között A váltásregiszter használata egyszerű. A legnehezebb csak az adatkimeneti érintkezők megjelenítése és a bináris számjegyek miként kerülnek az IC -be, és hogyan fognak megjelenni a LED -en. Szánjon egy percet ennek megtervezésére. 1. Csatlakoztassa az 5V -ot a 14 -es csaphoz (jobbra fent), és vegye le a 7 -es (bal alsó) csapot a talajhoz. A váltóregiszter két soros bemenettel rendelkezik, de csak egyet fogunk használni, ezért csatlakoztassa a 2 -es tűt az 5V3 -hoz. Nem használjuk az átlátszó csapot (az összes kimenet nullázására használjuk), ezért hagyjuk lebegni, vagy támadjuk 5V4 -re. Csatlakoztasson egy digitális IO portot az egyik váltóregiszterhez. Ez a soros bemeneti csap.5. Csatlakoztasson egy digitális IO portot a 8. tűhöz (jobbra lent). Ez az óracsap.6. Csatlakoztassa az adatvonalakat a Q0 és a Q6 között. Csak 7 bitet használunk, mert az ASCII karakterkészlet csak hét bitet használ. A PD2 -t használtam a soros adataim és a PD3 -at az órajelhez. Az adatcsapokhoz Q0 -D6 -ot kötöttem a LED -en, és így folytatom (Q1 -D5, Q2 -D4 stb.). Mivel soronként küldünk adatokat, meg kell vizsgálnunk az egyes küldeni kívánt karakterek bináris ábrázolását, megnézve az 1 -es és a 0 -s számokat, és minden egyes bitet a soros sorban. Mellékeltem a dotmatrixled.c forrás második verzióját az alábbi Makefile -lal együtt. Változik a karakterkészletben, és megjeleníti az összes páros karaktert (ha furcsa azt gondolni, hogy egy betű páratlan vagy páros lehet, gondoljon egy pillanatra a bináris ábrázolásra). Próbálja meg kitalálni, hogyan lehet ciklikusan megjeleníteni az összes páratlan karaktert. Tovább kísérletezhet a váltóregiszter, a pontmátrix LED és az Arduino közötti kapcsolatokkal. A LED és a regiszter között számos vezérlési funkció található, amelyek lehetővé teszik az adatok megjelenítésének finomhangolását. Tehát…. A nyolc I/O port használatától a kettőig!

5. lépés: Összefoglalás

Összefoglaló
Összefoglaló
Összefoglaló
Összefoglaló

Ebben az utasításban bemutattam a DLO7135 pontmátrix LED -et és annak működését. Továbbá megbeszéltem, hogyan lehet a szükséges I/O portok számát nyolcról kettőre csökkenteni egy shift regiszter használatával. A DLO7135 pontmátrixos LED összekapcsolható, hogy nagyon vonzó és érdekes sátrakat készítsen. Remélem, jól éreztétek magatokat olvasva ezt az oktatóanyagot! Ha úgy gondolja, hogy bármiféle fejlesztést tehetnék, vagy javaslatokat szeretne tenni ezzel vagy bármelyik „ibleimmel” kapcsolatban, örömmel hallom őket! Boldog AVR -t!

Ajánlott: