Arduino és TM1638 LED kijelző modulok: 11 lépés
Arduino és TM1638 LED kijelző modulok: 11 lépés
Anonim
Arduino és TM1638 LED kijelző modulok
Arduino és TM1638 LED kijelző modulok

Ha gyors és egyszerű módra van szüksége ahhoz, hogy felhasználói bevitelt és kimenetet adjon a projekthez, ezek a megjelenítő modulok érdekesek és szórakoztatóak.

Nyolc 7 szegmenses piros LED-számjegyet, nyolc piros/zöld LED-et és nyolc gombot tartalmaz a felhasználói bevitelhez. Az egységek láncba is köthetők, lehetővé téve egyszerre akár ötöt is, és minden modulhoz rövid kábel tartozik, valamint néhány rövid távtartó és csavar, amint az a képen is látható.

1. lépés:

Kép
Kép

A távtartók éppen elég hosszúak ahhoz, hogy a nyomtatott áramköri lapot egy felület fölé emeljék, azonban a táblákat bárhová felszerelheti, ahol hasznos lehet, ha hosszabbra van szüksége. Érdemes eltávolítani az IDC foglalatokat is, ha a modult egy panel felületéhez szeretné felszerelni. Ez egyszerű forrasztási feladat lenne, mivel átmenő lyukak.

2. lépés:

Kép
Kép

A táblát egy TM1638 IC vezérli.

Ez egy LED és interfész illesztőprogram IC a „Titan Micro Electronics” -tól. Ezeket az IC -ket a PMD Way -től is megvásárolhatja. További részletekért letöltheti az adatlapot is.

3. lépés: Első lépések - Hardver

Első lépések - Hardver
Első lépések - Hardver

Hardver-Az Arduino-kompatibilis kártyához (vagy más MCU-hoz) való csatlakozás meglehetősen egyszerű. A tűk a NYÁK hátoldalán láthatók, és illeszkednek a szalagkábel illesztéséhez. Ha a kábel végét úgy nézzük.

A jobb felső furat az első csap, a bal felső pedig a második, a jobb alsó kilenc és a bal alsó 10. Ezért a tűk a következők:

  1. Vcc (5V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. Nem kapcsolódik.

Az Arduino használatához az 1-4. Tűk a minimális szükségesek egy modul használatához. Minden további modulhoz szükség lesz egy másik digitális tűre, amely az STB2, STB3, stb. -Hoz van csatlakoztatva. Erről később. Kérjük, vegye figyelembe, hogy minden modul teljes fényerőre állítva minden LED bekapcsolásakor 127 mA -t fogyaszt, ezért bölcs dolog lenne több áramforrást használni több modullal és egyéb kapcsolatokkal az Arduino kártyákkal.

4. lépés: Első lépések - Szoftver

Szoftver - innen töltse le és telepítse a T1638 könyvtárat. Köszönet és dicséret rjbatistának a gmail dot com -ban a könyvtárért. A modulok inicializálása a vázlatban egyszerű. Tartalmazza a könyvtárat a következőkkel:

#befoglalni

majd minden modulhoz használja az alábbiak egyikét:

TM1638 modul (x, y, z);

x az Arduino digitális tüske, amely a modul kábel 4 tűjéhez van csatlakoztatva, y az Arduino digitális tű, amely a modul kábel 3 tűjéhez van csatlakoztatva, és z a stroboszkóp. Tehát ha egy modul van adatokkal, órával és villogóval a 8, 7 és 6 csapokhoz csatlakoztatva, akkor a következőket használja:

TM1638 modul (8, 7, 6);

Ha két modulja lenne, az első modul stroboszkópja az Arduino digital 6 -hoz, a második modul pedig a 5 -öshöz lenne csatlakoztatva, akkor a következőket használná:

TM1638 modul (8, 7, 6); TM1638 modul (8, 7, 5);

és így tovább további modulok esetén. Most a kijelző vezérlése…

5. lépés: A kétszínű LED-ek

A kétszínű LED-ek
A kétszínű LED-ek

A piros/zöld LED -ek vezérlése egyszerű. Referenciaként balról jobbra nulla -hét számmal vannak ellátva. Egyetlen LED be- vagy kikapcsolásához használja a következőket:

module.setLED (TM1638_COLOR_RED, x); // az x LED -számot állítsa redmodule.setLED (TM1638_COLOR_GREEN, x); // az x LED -számot állítsa zöld modulra.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // állítsa az x LED -számot pirosra és zöldre

A fenti módszer használata egyszerű lehet, némileg nem hatékony. Jobb módja, ha az összes LED -et egy nyilatkozatban kezeli. Ehhez két bájtnyi, hexadecimális adatot küldünk a kijelzőre. Az MSB (legjelentősebb bájt) nyolc bitből áll, amelyek mindegyike egy zöld LED -et világít (1) vagy nem (0). Az LSB (legkevésbé jelentős bájt) a piros LED -eket jelöli.

A LED -ek vezérlésére szolgáló hexadecimális érték meghatározásának egyszerű módja az, hogy van egy sor LED -je - az első nyolc zöld, a második nyolc piros. Minden számjegyet állítson 1 -re be és 0 -ra kikapcsolt értékre. Konvertálja a két bináris számot hexadecimálisra, és használja ezt a függvényt:

module.setLEDs (0xzöld);

Ahol a zöld a hexadecimális szám a zöld LED -eknél, és a piros a hexadecimális szám a piros LED -eknél. Ha például az első három LED -et pirosan, az utolsó hármat pedig zöldként kapcsolja be, a bináris ábrázolás a következő lesz:

00000111 11100000, amely hexadecimális számban E007.

Tehát használnánk:

module.setLEDs (0xE007);

amely a fent látható képet állítja elő.

6. lépés: A 7 szegmenses kijelző

A numerikus kijelző (de nem az alábbi LED -ek) törléséhez egyszerűen használja:

module.clearDisplay ();

vagy minden szegmens ÉS az összes LED bekapcsolásához használja az alábbiakat

module.setupDisplay (igaz, 7); // ahol 7 az intenzitás (0-7)

A tizedes számok megjelenítéséhez használja a következő funkciót:

module.setDisplayToDecNumber (a, b, hamis);

ahol a az egész szám, b a tizedespont helyzete (0 nincs, 1, 8, 2, 7, 4, 6, 8, 4, stb.), és az utolsó paraméter (true/ hamis) be- vagy kikapcsolja a vezető nullákat. Az alábbi vázlat bemutatja ennek a funkciónak a használatát:

#include // definiáljon egy modult a 8 -as adattűn, az óra 9 -es és a 7 -es villogócsapon TM1638 modul (8, 9, 7); előjel nélküli hosszú a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); késleltetés (1); } for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); késleltetés (1); }}

… A videóban látható eredményekkel.

7. lépés:

Image
Image

Az egyik legérdekesebb funkció a szöveg görgetése egy vagy több kijelzőn. Ehhez nem kell magyarázat, mivel a mellékelt bemutató vázlat:

tm_1638_scrolling_modules_example.pde

könnyen megtalálható a TM1638 könyvtárban. Csak illessze be a szövegét a const char karakterláncba , győződjön meg arról, hogy a modul (ok) a vázlat elején lévő moduldefiníció szerint vannak bekötve, és készen áll. Az elérhető karakterek megtekintéséhez keresse fel a funkció oldalt. Ne feledje, hogy a kijelző csak hét szegmensből áll, így előfordulhat, hogy egyes karakterek nem tűnnek tökéletesnek, de a kontextusban jó ötletet adnak-lásd ebben a lépésben a videót.

8. lépés:

Végül külön -külön is címezheti az egyes számjegyek minden szegmensét. Vegye figyelembe a tömb tartalmát:

bájtértékek = {1, 2, 4, 8, 16, 32, 64, 128};

minden elem az 1-8 számjegyeket jelöli. Az egyes elemek értéke határozza meg, hogy a számjegy melyik szegmense kapcsol be. Az a ~ f, dp szegmensek esetén az értékek 1, 2, 4, 6, 16, 32, 64, 128. Tehát a fenti tömb használatának eredményei a következő függvényben:

module.setDisplay (értékek);

kép szerint lesz.

9. lépés:

Kép
Kép

Természetesen kombinálhatja az egyes számjegyek értékeit, hogy saját karaktereket, szimbólumokat stb. Hozzon létre. Például a következő értékek használatával:

bájtértékek = {99, 99, 99, 99, 99, 99, 99, 99};

ebben a lépésben a kép szerint hoztuk létre.

10. lépés: A gombok

A gombok értékei bájtként kerülnek visszaadásra a függvényből:

module.getButtons ();

Mivel nyolc gomb van, mindegyik egy bináris szám bitjét jelenti, amelyet bájtként adnak vissza. A bal oldali gomb tizedest ad vissza, a jobb pedig a 128. -at. Egyidejű megnyomásokat is vissza tud adni, így az első és a nyolc gomb megnyomása 129 -et ad vissza. Tekintsük a következő vázlatot, amely a gombnyomások értékeit tizedes formában adja vissza, majd megjeleníti az érték:

#include // definiáljon egy modult a 8 -as adattűn, az óra 9 -es és a 7 -es villogócsapon TM1638 modul (8, 9, 7); bájt gombok; void setup () {} void loop () {gombok = modul.getButtons (); module.setDisplayToDecNumber (gombok, 0, hamis); }

és az eredmények a videóban.

Ezek a kijelzőpanelek hasznosak, és remélhetőleg otthont találnak projektjeikben. Ezt a bejegyzést a pmdway.com hozta neked - mindent kínál a gyártóknak és az elektronika rajongóinak, ingyenes szállítással világszerte.

Ajánlott: