Obsah:

Moduly LED displeje Arduino a TM1638: 11 kroků
Moduly LED displeje Arduino a TM1638: 11 kroků

Video: Moduly LED displeje Arduino a TM1638: 11 kroků

Video: Moduly LED displeje Arduino a TM1638: 11 kroků
Video: TM1638 Display Module with Arduino Mega Pro (#142) 2024, Červenec
Anonim
Moduly LED Arduino a TM1638 LED
Moduly LED Arduino a TM1638 LED

Pokud potřebujete rychlý a snadný způsob přidání vstupů a výstupů uživatele do projektu, jsou tyto zobrazovací moduly zajímavé a zábavné.

Obsahují osm 7segmentových červených číslic LED, osm červených/zelených LED a také osm tlačítek pro vstup uživatele. Jednotky lze také řetězit za sebou, což umožňuje až pět najednou, a ke každému modulu je přiložen krátký kabel a také krátké rozpěrky a šrouby, jak ukazuje obrázek.

Krok 1:

obraz
obraz

Distanční vložky jsou dostatečně dlouhé na to, aby zvedly desku plošných spojů nad povrch, avšak k montáži desek kamkoli užitečných budete potřebovat delší. Pokud chcete modul připevnit blízko povrchu panelu, můžete také chtít odstranit zásuvky IDC. To by byl jednoduchý úkol odpájení, protože jsou to průchozí zásuvky.

Krok 2:

obraz
obraz

Deska je řízena integrovaným obvodem TM1638.

Toto je integrovaný obvod LED a ovladače rozhraní od společnosti „Titan Micro Electronics“. Tyto integrované obvody můžete také zakoupit u PMD Way. Můžete si také stáhnout datový list pro další podrobnosti.

Krok 3: Začínáme - hardware

Začínáme - hardware
Začínáme - hardware

Hardware-Připojení k desce kompatibilní s Arduino (nebo jinému MCU) je celkem jednoduché. Vývody jsou zobrazeny na zadní straně desky plošných spojů a odpovídají kování na plochém kabelu. Když se podíváte na konec kabelu jako takový.

Pravý horní otvor je kolík jedna, přičemž vlevo nahoře je kolík dva, kolík vpravo dole devět a dole vlevo kolík deset. Pinouty jsou tedy:

  1. Vcc (5V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. Nepřipojený.

Pro použití Arduina jsou piny 1 ~ 4 minimum potřebné k použití jednoho modulu. Každý další modul bude vyžadovat další digitální pin připojený k STB2, STB3 atd. Více o tom později. Vezměte prosím na vědomí, že každý modul nastavený na plný jas s každou zapnutou LED spotřebovává 127 mA, takže by bylo rozumné použít externí napájení s více než jedním modulem a další připojení s deskami Arduino.

Krok 4: Začínáme - software

Software - stáhněte a nainstalujte knihovnu T1638 odtud. Díky a sláva rjbatistovi na gmail dot com pro knihovnu. Inicializace modulů v náčrtu je jednoduchá. Zahrnout knihovnu s:

#zahrnout

pak pro každý modul použijte jednu z následujících položek:

Modul TM1638 (x, y, z);

x je digitální pin Arduino připojený ke kolíku 4 kabelu kabelu modulu, y je digitální pin Arduino připojený ke kolíku 3 kabelu kabelu modulu a z je stroboskopický kolík. Pokud byste tedy měli jeden modul s daty, hodinami a bleskem připojený k pinům 8, 7 a 6, použili byste:

Modul TM1638 (8, 7, 6);

Pokud byste měli dva moduly, s bleskem modulu jedna připojeným k Arduino digital 6 a modulem dva s bleskem připojeným k digitálu 5, použili byste:

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

a tak dále pro další moduly. Nyní k ovládání displeje…

Krok 5: Dvoubarevné LED diody

Dvoubarevné LED diody
Dvoubarevné LED diody

Ovládání červené/zelené LED diody je snadné. Pro informaci jsou očíslovány od nuly do sedmi zleva doprava. Chcete -li zapnout nebo vypnout jednu LED, použijte následující:

module.setLED (TM1638_COLOR_RED, x); // nastavit číslo LED x na redmodule.setLED (TM1638_COLOR_GREEN, x); // nastavit číslo LED x na zelený modul.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // nastavte číslo LED x na červenou a zelenou

Použití výše uvedené metody může být jednoduché, ale poněkud neefektivní. Lepším způsobem je oslovit všechny LED diody v jednom prohlášení. Za tímto účelem pošleme na displej dva bajty dat v šestnáctkové soustavě. MSB (nejvýznamnější bajt) se skládá z osmi bitů, z nichž každý představuje jednu zelenou LED svítí (1) nebo nesvítí (0). LSB (nejméně významný bajt) představuje červené LED diody.

Snadný způsob, jak určit hexadecimální hodnotu pro ovládání LED diod, je jednoduchý. Na obrázku máte jednu řadu LED diod - prvních osm zelených a druhé osm červených. Nastavte každou číslici na 1 pro zapnutí a 0 pro vypnutí. Převeďte dvě binární čísla na hexadecimální a použijte tuto funkci:

module.setLEDs (0xgreenred);

Kde zelená je hexadecimální číslo pro zelené LED diody a červená je hexadecimální číslo pro červené LED diody. Například pokud chcete zapnout první tři LED diody jako červené a poslední tři jako zelené, binární reprezentace bude:

00000111 11100000, což je v šestnáctkové soustavě E007.

Použili bychom tedy:

module.setLEDs (0xE007);

který vytvoří obrázek, jak je uvedeno výše.

Krok 6: 7segmentový displej

Chcete -li vymazat numerický displej (nikoli však LED diody níže), jednoduše použijte:

module.clearDisplay ();

nebo pro zapnutí každého segmentu A všech LED diod použijte následující

module.setupDisplay (true, 7); // kde 7 je intenzita (od 0 ~ 7)

Chcete -li zobrazit desetinná čísla, použijte funkci:

module.setDisplayToDecNumber (a, b, false);

kde a je celé číslo, b je pozice pro desetinnou čárku (0 pro žádnou, 1 pro číslici 8, 2, pro číslici 7, 4 pro číslici 6, 8 pro číslici 4 atd.) a poslední parametr (true/ false) zapíná nebo vypíná úvodní nuly. Následující skica ukazuje použití této funkce:

#include // definovat modul na datovém pinu 8, hodinovém pinu 9 a stroboskopickém pinu 7 modulu TM1638 (8, 9, 7); nepodepsané dlouhé a = 1; void setup () {} void loop () {for (a = 10 000; a <11 000; a ++) {module.setDisplayToDecNumber (a, 4, false); zpoždění (1); } pro (a = 10 000; a <11 000; a ++) {module.setDisplayToDecNumber (a, 0, true); zpoždění (1); }}

… S výsledky zobrazenými ve videu.

Krok 7:

Image
Image

Jednou z nejzajímavějších funkcí je možnost posouvání textu na jednom nebo více displejích. K tomu ve skutečnosti nepotřebujete vysvětlení, protože přiložený ukázkový náčrt:

tm_1638_rolling_modules_example.pde

dodávané s knihovnou TM1638 lze snadno sledovat. Jednoduše vložte svůj text do konstantního řetězce , ujistěte se, že moduly jsou zapojeny podle definice modulu na začátku náčrtu a jste nastaveni. Chcete -li zobrazit dostupné znaky, navštivte stránku funkcí. Všimněte si toho, že displej je pouze sedmisegmentový, takže některé znaky nemusí vypadat perfektně, ale v kontextu vám dá dobrý nápad-podívejte se na video v tomto kroku.

Krok 8:

Nakonec můžete také jednotlivě adresovat každý segment každé číslice. Zvažte obsah tohoto pole:

bajtové hodnoty = {1, 2, 4, 8, 16, 32, 64, 128};

každý prvek představuje číslice 1 ~ 8. Hodnota každého prvku určuje, který segment číslice se zapne. Pro segmenty a ~ f, dp jsou hodnoty 1, 2, 4, 6, 16, 32, 64, 128. Takže výsledky použití výše uvedeného pole v následující funkci:

module.setDisplay (hodnoty);

bude podle obrázku.

Krok 9:

obraz
obraz

Přirozeně můžete kombinovat hodnoty pro každou číslici a vytvářet vlastní znaky, symboly atd. Například pomocí následujících hodnot:

bajtové hodnoty = {99, 99, 99, 99, 99, 99, 99, 99};

v tomto kroku jsme vytvořili podle obrázku.

Krok 10: Tlačítka

Hodnoty tlačítek jsou vráceny jako bajtová hodnota z funkce:

module.getButtons ();

Protože existuje osm tlačítek, každé z nich představuje jeden bit binárního čísla, které je vráceno jako bajt. Tlačítko nalevo vrací desetinné a pravé 128. Může také vrátit souběžné stisknutí, takže stisknutí tlačítek jedna a osm vrátí 129. Zvažte následující náčrt, který vrátí hodnoty stisknutí tlačítka v desítkové formě, poté zobrazí hodnota:

#include // definovat modul na datovém pinu 8, hodinovém pinu 9 a stroboskopickém pinu 7 modulu TM1638 (8, 9, 7); bajtová tlačítka; neplatné nastavení () {} prázdná smyčka () {tlačítka = modul.getButtons (); module.setDisplayToDecNumber (tlačítka, 0, false); }

a výsledky ve videu.

Tyto zobrazovací panely jsou užitečné a ve vašich projektech snad najdou domov. Tento příspěvek vám přinesl web pmdway.com - nabízí vše pro výrobce a nadšence do elektroniky s doručením zdarma po celém světě.

Doporučuje: