Tartalomjegyzék:

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

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

Videó: Arduino és TM1638 LED kijelző modulok: 11 lépés
Videó: Tutorial : TM1638 Led and Key module for arduino 2024, November
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: