Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Ahoj všichni, Rád pracuji s LED displeji se 7 segmenty nebo s jehličkovou maticí a už jsem s nimi dělal mnoho různých projektů.
Pokaždé jsou zajímaví, protože existuje určitý druh magie v tom, jak mohou fungovat, protože to, co vidíte, je optický klam!
Displeje mají spoustu pinů pro připojení k Arduinu (nebo jinému mikrokontroléru) a nejlepším řešením je použít techniku multiplexování dat, aby se minimalizovalo využití jejich portů.
Když to uděláte, každý segment nebo každá LED se na několik okamžiků (milisekund nebo méně) rozsvítí, ale jejich opakování tolikrát za sekundu vytváří iluzi obrazu, který chcete zobrazit.
Pro mě je nejzajímavější vyvinout logiku, program, aby se zjistilo, jak mohou zobrazit správné informace podle vašeho projektu.
V jednom projektu vyžaduje použití displejů mnoho času na sestavení všech komponent na prkénko s mnoha vodiči pro připojení.
Vím, že na trhu běží mnoho různých displejů s I2C, se zjednodušenými způsoby (nebo ne), pro jejich programování a také jsem je použil, ale dávám přednost práci se standardními součástmi, jako jsou 74HC595 (multiplexer IC) a ULN2803 (ovladače), protože poskytnou vám větší kontrolu nad vaším programem a také větší robustnost a spolehlivost při vašem používání.
Aby se zjednodušil proces montáže, vyvinul jsem modul LED Dipslay pro více účelů pomocí jednoduchých a běžných komponent ve světě Arduina.
S tímto modulem můžete pracovat s bodovou maticí s dvoubarevnými LED ve dvou standardních velikostech (větší a menší) a také můžete ovládat displej 7 Seg x 4 Digits, který je na trhu velmi běžný a snadno dostupný.
A také můžete s těmito moduly pracovat kaskádově sériovým způsobem (různá data do displejů) nebo paralelně (stejná data do displejů).
Pojďme se tedy podívat, jak tento modul může fungovat a pomůže vám ve vašem vývoji!
Video (modul LED displeje)
Video (Dot Matrix Test)
Pozdravy, LAGSILVA
Krok 1: Součásti
PCB (deska s plošnými spoji)
- 74HC595 (03 x)
- ULN2803 (02 x)
- Tranzistor PNP - BC327 (08 x)
- Rezistor 150 Ohmů (16 x)
- odpor 470 ohmů (08 x)
- Kondenzátor 100 nF (03 x)
- Zásuvka IC 16 pinů (03 x)
- Zásuvka IC 18 pinů (02 x)
- Pin konektor samice - 6 pinů (8 x)
- Záhlaví kolíků 90º (01 x)
- Záhlaví kolíků 180º (01 x)
- kolíky Borne KRE 02 (02 x)
- PCB (01 x) - Vyrobeno
Ostatní
- Arduino Uno R3 / Nano / podobné
- LED displej 04 číslic x 7 segmentů - (společná anoda)
- LED Dot Matrix Dual Color (zelená a červená) - (společná anoda)
Důležité poznámky:
- Datový list všech nejdůležitějších komponent jsem vložil pouze jako referenci, ale před použitím je nutné zkontrolovat datový list vašich vlastních komponent.
- Tato deska byla navržena tak, aby používala pouze displeje COMMON ANODE.
Krok 2: První prototypy
Můj první prototyp byl proveden na prkénku k otestování obvodu.
Poté jsem udělal další prototyp pomocí univerzální desky, jak můžete vidět na obrázcích.
Tento druh desky je zajímavý pro výrobu rychlého prototypu, ale uvědomujete si, že stále obsahuje spoustu drátů.
Je to funkční řešení, ale ne tak elegantní ve srovnání s konečným vyráběným PCB (ten modrý).
Nejsem dobrý v pájení, protože s tímto procesem nemám dostatečné zkušenosti, ale i díky tomu jsem získal dobré výsledky s oběma zkušenostmi a ještě důležitější: nespálil jsem žádnou součást a ani ruce!
Výsledky na mém příštím plánu budou pravděpodobně lepší díky praxi.
Proto vás vyzývám, abyste vyzkoušeli tento druh zkušeností, protože to pro vás bude vynikající.
Mějte na paměti, že s horkou žehličkou byste měli dávat pozor a snažit se na součástku neutratit více než několik sekund, aby nedošlo k jejímu spálení !!
A nakonec na Youtube najdete mnoho videí o pájení, která se můžete naučit, než se vydáte do skutečného světa.
Krok 3: Návrh DPS
Tuto desku plošných spojů jsem navrhl pomocí specializovaného softwaru pro výrobu dvouvrstvé desky a před touto poslední bylo vyvinuto několik různých verzí.
Na začátku jsem měl pro každý druh displejů jednu verzi a koneckonců jsem se rozhodl vše spojit do jediné verze.
Cíle návrhu:
- Jednoduché a užitečné pro prototypy.
- Snadné nastavení a rozšíření.
- Možnost použití 3 různých druhů displejů.
- Maximální šířka velké bodové matice LED.
- Maximální délka 100 mm, aby se minimalizovaly náklady na výrobu desky.
- Použijte tradiční součástky místo SMD, abyste se vyhnuli dalším potížím při ručním pájení.
- Deska musí být modulární, aby mohla být propojena s dalšími deskami v kaskádě.
- Sériový nebo paralelní výstup pro další desky.
- Několik desek musí ovládat pouze Arduino.
- Pouze 3 vodiče dat pro připojení Arduina.
- Externí 5V připojení napájení.
- Zvyšte elektrickou odolnost použitím tranzistorů a ovladačů (ULN2803) pro ovládání LED.
Poznámka:
V souvislosti s touto poslední položkou doporučuji přečíst si můj další návod k těmto komponentám:
Pomocí posuvného registru 74HC595 s ULN2803, UDN2981 a BC327
Výroba DPS:
Po dokončení návrhu jsem jej odeslal výrobci desek plošných spojů v Číně po mnoha vyhledáváních u různých místních dodavatelů a v různých zemích.
Hlavním problémem bylo množství desek versus náklady, protože jich potřebuji jen několik.
Nakonec jsem se rozhodl zadat pravidelnou objednávku (nikoli expresní objednávku kvůli vyšším nákladům) pouze 10 desek u společnosti v Číně.
Po pouhých 3 dnech byly desky vyrobeny a odeslány ke mně po celém světě za další 4 dny.
Výsledky byly vynikající !!
Do jednoho týdne po objednávce byly desky v mých rukou a byl jsem opravdu ohromen jejich vysokou kvalitou a vysokou rychlostí!
Krok 4: Programování
Při programování musíte mít na paměti několik důležitých konceptů o návrhu hardwaru a o posuvném registru 74HC595.
Hlavní funkcí 74HC595 je transformace 8bitového sériového vstupu na 8 paralelní směny.
Všechna sériová data jdou do pinu č. 14 a při každém hodinovém signálu přecházejí bity na odpovídající paralelní vývody (Qa až Qh).
Pokud budete nepřetržitě odesílat více dat, budou bity přesunuty jeden po druhém na Pin #9 (Qh ') opět jako sériový výstup a díky této funkci můžete zapojit další čipy zapojené do kaskády.
Důležité:
V tomto projektu máme tři integrované obvody 74HC595. První dva fungují na řízení sloupců (s POZITIVNÍ logikou) a poslední na ovládání linek (s NEGATIVNÍ logikou kvůli fungování tranzistorů PNP).
Pozitivní logika znamená, že musíte poslat signál VYSOKÉ úrovně (+5 V) z Arduina a negativní logika znamená, že musíte poslat signál NÍZKÉ úrovně (0 V).
Tečková matice LED
- První je pro výstupy katod z červených LED (8 x) >> COLUMN RED (1 až 8).
- Druhý je pro výstup L katod zelených LED (8 x) >> COLUMN GREEN (1 až 8).
- Poslední je pro výstup anod všech LED (08 x červená a zelená) >> ŘÁDKY (1 až 8).
Pokud například chcete zapnout pouze zelenou LED ve sloupci 1 a řádku 1, musíte odeslat následující sekvenci sériových dat:
1º) ŘÁDKY
~ 10 000 000 (pouze první řádek je zapnutý) - Symbol ~ znamená invertovat všechny bity od 1 do 0 a naopak.
2º) SLOUPEC Zelená
10 000 000 (pouze první sloupec zelené LED je zapnutý)
3º) SLOUPEK ČERVENÝ
00000000 (všechny sloupce červených LED jsou vypnuté)
Prohlášení Arduino:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000); // Negativní logika pro řádky
shiftOut (dataPin, clockPin, LSBFIRST, B10000000); // Pozitivní logika pro zelené sloupce
shiftOut (dataPin, clockPin, LSBFIRST, B00000000); // Pozitivní logika pro červené sloupce
Poznámka:
Můžete také zkombinovat obě LED diody (zelenou a červenou) a vytvořit tak ŽLUTOU barvu následovně:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
7 Zobrazení segmentů
U těchto typů displejů je sekvence stejná. Jediným rozdílem je, že nemusíte používat zelené LED diody.
1º) DIGIT (1 až 4 zleva doprava) ~ 10 000 000 (nastavte číslici č. 1)
~ 01000000 (nastavená číslice #2)
~ 00100000 (nastavená číslice č. 3)
~ 00010000 (nastavená číslice #4)
2º) NEPOUŽITO
00000000 (všechny bity nastaveny na nulu)
3º) SEGMENTY (A až F a DP - zkontrolujte datový list displeje)
10000000 (nastavit segment A)
01000000 (nastavit segment B)
00100000 (nastavit segment C)
00010000 (nastavit segment D)
00001000 (nastavit segment E)
00000100 (nastavit segment F)
00000010 (sada segmentu G)
00000001 (sada DP)
Příklad Arduina pro nastavení displeje č. 2 číslem 3:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000); // Nastavit DISPLAY 2 (negativní logika)
shiftOut (dataPin, clockPin, LSBFIRST, 0); // Nastavit data na nulu (nepoužívá se)
shiftOut (dataPin, clockPin, LSBFIRST, B11110010); // Nastavit segmenty A, B, C, D, G)
Nakonec můžete pomocí tohoto procesu ovládat jakoukoli LED diodu na displeji a také můžete vytvářet speciální znaky, které potřebujete.
Krok 5: Testování
Zde jsou dva programy jako příklad funkčnosti zobrazovacího modulu.
1) Zobrazení odpočítávání (od 999,9 sekundy do nuly)
2) Bodová matice (číslice 0 až 9 a abeceda A až Z)
3) Digitální hodiny RTC na LED displeji se 4 číslicemi a 7 segmenty
Tento poslední je aktualizací mé první verze digitálních hodin.
Krok 6: Závěr a další kroky
Tento modul bude užitečný ve všech budoucích projektech, které vyžadují nějaký LED displej.
Jako další kroky sestavím více desek, abych s nimi pracoval v kaskádovém režimu, a také vyvinu knihovnu, která programování ještě více zjednoduší.
Doufám, že se vám tento projekt líbil.
Zašlete mi prosím své komentáře, protože to je důležité pro zlepšení projektu a informací v tomto Instructable.
Pozdravy, LAGSILVA
26. května 2016