Obsah:
- Krok 1: Získejte zboží…
- Krok 2: Přímé připojení k LED displeji
- Krok 3: Určení znaku, který se má zobrazit
- Krok 4: Zachovejte I/O porty pomocí posuvného registru
- Krok 5: Shrnutí
Video: Použití LED diody Dot Matrix s Arduinem a posuvným registrem: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:25
Jehličková LED dioda Siemens DLO7135 je úžasný kus optoelektroniky. Je účtován jako inteligentní displej 5x7 Dot Matrix (r) s pamětí/dekodérem/ovladačem. Spolu s touto pamětí má 96místný ASCII displej s velkými a malými písmeny, vestavěný generátor znaků a multiplexor, čtyři úrovně intenzity světla a to vše běží na 5V. To je hodně, co se dá žít a za 16 $ za pop by to rozhodně mělo být. Zatímco jsem strávil půl dne ve svém oblíbeném místním obchodě s elektronikou, našel jsem plný koš za 1,50 $ za kus. S několika jsem odešel z obchodu. Tento instruktážní program vám ukáže, jak se připojit k těmto jehličkovým LED diodám a zobrazovat znaky pomocí Arduina na bázi AVR. Pokud jste si přečetli některý z mých předchozích průvodců, možná vám dojde, že jsem často pro nejšetrnější řešení a nemýlíte se, i když čas od času cíl nesplním.. Proto také udělám další krok v tomto návodu a ukážu vám, jak můžete snížit počet I/O portů potřebných k pohonu těchto velkých, honkinových jehličkových LED diod.
Krok 1: Získejte zboží…
Pro tento krátký malý projekt budete potřebovat:
- mikrokontrolér na bázi AVR, jako je Arduino nebo cokoli podobného. Tyto pokyny by pravděpodobně mohly být přizpůsobeny vašemu vybranému MCU.
- bodová matice LED DLO7135 nebo jiná ve stejné rodině
- 8bitový posuvný registr jako 74LS164, 74C299 nebo 74HC594
- prkénko
- propojovací drát, nůžky na drát atd.
Páječka není potřeba, i když ji použiji později; můžete se bez toho obejít.
Krok 2: Přímé připojení k LED displeji
Rozložte si malý seznam dílů a chyťte LED diodu. Umístěte jej na prkénko trochu vystředěné, obkročmo nad drážkou ve střední čáře. První část připojení probíhá vše na levé straně LED. Kolík č. 1 je umístěn vlevo nahoře, jak ukazuje trojúhelník/šipka. Když čtete nebo připojujete LED, vložil jsem funkce pinů na obrázek pro vaši referenci.
Levá strana
Pozitivní a negativní Počínaje vlevo nahoře připojte Vcc na 5V. Možná je dobrý nápad nechat desku napájet, dokud nedokončíte celou levou stranu; LED dioda může být jasná, pokud se snažíte vidět malé otvory pro strkání do vodičů. Připojte levý dolní GND k zemi. Lamp Test, Chip Enable and Write 2. a 3. shora vlevo jsou Lamp Test a Chip Enable. Oba jsou negativní logikou, což znamená, že jsou povoleny, když jsou na logické 0 místo 1. Můj obrázek níže by měl mít nad sebou pruhy, ale u žádného z nich jsem to neoznačil. Je -li aktivován kolík LT, rozsvítí každý bod v matici bodů při 1/7 jasu. Je to spíše test pixelů, ale zajímavou věcí na pinu LT je, že nepřepíše žádný znak, který je v paměti, takže pokud máte několik z nich navlečených dohromady (mají pozorovací vzdálenost 20 stop), strobujete LT může vypadat jako kurzor. Chcete -li zajistit, aby byl deaktivován, připojte jej k 5 V. Piny CE a WR jsou také negativní logikou a je nutné je povolit, aby bylo možné do tohoto chytrého zařízení zapisovat. Tyto piny můžete mikromanažovat pomocí náhradních I/O portů na vašem mikrokontroléru, ale nebudeme se zde obtěžovat. Stačí je připojit k uzemnění, aby zůstaly aktivní. Úrovně jasu Na řadě LED diod DLO existují čtyři programovatelné úrovně jasu:
- Prázdný
- 1/7 jas
- 1/2 jasu
- Plný jas
BL1 HIGH a BL0 LOW je 1/2 jasu. Oba HIGH jsou plný jas. Nastavte si to, co se vám líbí. Opět platí, že pokud máte volných I/O portů a je to pro vás dost důležité, můžete to také ovládat pomocí Arduina, což obepíná levou stranu. Pokud na desku přivedete energii, měla by se rozsvítit kontrolka LED. Pokud jste zvědaví, pohrajte si s ovládáním jasu a testem lampy.
Pravá strana
Pravá strana se skládá výhradně z datových portů. Vpravo dole, přesněji pin 8 nebo D0, představuje nejmenší významný bit v 7bitovém znaku. Vpravo nahoře pin 14 nebo D6 představuje nejvýznamnější bit. Díky tomu budete vědět, v jakém pořadí zamíchat vaše bity při zápisu do LED. Až budete mít připojené porty pro vstup dat, najděte na svém Arduinu nebo AVR sedm prázdných digitálních I/O portů a připojte je. Pravděpodobně si budete chtít pamatovat, jaký datový výstupní port na vašem AVR jde do kterého datového vstupního portu na LED. Nyní jste připraveni přenést nějaká data na tuto inteligentní LED. Už se třesete vzrušením? Vím že jsem…
Krok 3: Určení znaku, který se má zobrazit
Znaková sada použitá na této CMOS LED je váš run-of-the-mill ASCII počínaje 0x20 (desetinné číslo 32; mezera) a končící 0x7F (desetinné číslo 127; odstranění, i když je na LED zobrazeno jako kurzorová grafika). Takže mít LED displej znak neznamená nic jiného, než tlačit logickou 1 nebo 0 na vaše datové výstupní kolíky, obvykle následované pulsem WR, ale to pro toto cvičení předcházím. Takže jste si zapsali nebo pamatujete si, jaké piny jdou do jakých portů, že? Vybral jsem PD [2..7] a PB0 (digitální piny 2 až 8 v Arduino-speak). Normálně nedoporučuji používat PD [0..1], protože ho věnuji své sériové komunikaci zpět do boxu FreeBSD a Arduino a spol. namapujte tyto piny na jejich komunikační kanál FTDI USB, a přestože „oni“SAY piny 0 a 1 budou fungovat, pokud neinicializujete sériovou komunikaci, nikdy jsem tyto piny nemohl použít jako normální digitální I/O. Ve skutečnosti jsem strávil dva dny pokusem o ladění problému, když jsem se pokusil použít PD0 a PD1 a zjistil jsem, že jsou vždy VYSOKÉ. * pokrčil rameny* Pravděpodobně by bylo dobré mít nějaký externí vstup, například klávesnici, přepínač s kolečkem nebo s kolečkem, nebo dokonce vstup z terminálu (můj ArduinoTerm ještě není připraven na hlavní vysílací čas…). Volba je na tobě. Prozatím budu jen ilustrovat, jak dostat kód, aby se požadovaný znak dostal na LED. K dispozici je zipfile ke stažení včetně zdrojového kódu a Makefile a je zde také krátký film ukazující LED tisk jeho znakové sady. Omlouváme se za mizernou kvalitu videa. Níže uvedený kód vytiskne řetězec „Welcome to my Instructable!“pak cykluje celou znakovou sadu, kterou LED podporuje.
DDRD = 0xFF; // OutputDDRB = (1 << DDB0); char msg = "Vítejte v mém Instructable!"; uint8_t i; for (;;) {for (i = 0; i <27; i ++) {Print2LED (msg ); _delay_ms (150); } pro (i = 0x20; i <0x80; i ++) {Print2LED (i); _delay_ms (150); } Print2LED (& apos*& apos);}O výstup portu je postaráno ve funkci Print2Led ()
voidPrint2LED (uint8_t i) {PORTD = (i << 2); if (i & 0b01000000) PORTB = (1 <
Kód a Makefile jsou zahrnuty v níže uvedeném souboru zip.
Krok 4: Zachovejte I/O porty pomocí posuvného registru
Náš mikrokontrolér nyní může odesílat data na LED diodu s maticí, ale používá osm I/O portů. To vylučuje použití ATtiny v 8pólovém DIP balíčku a dokonce is novějším Arduinem s ATmega328p je to spousta I/O portů pro jednu LED. Můžeme to obejít pomocí IC nazývaného posuvný registr. Chvilku na „řazení“rychlostních stupňů … Posuvný registr lze nejlépe pochopit zamyšlením nad dvěma slovy, která tvoří jeho název: „shift“a „register“. Slovo posun označuje, jak se data v registru pohybují. Zde (stejně jako v našich Arduino a mikrokontrolérech obecně) je registr místem, kde jsou uložena data. Dělá to implementací lineárního řetězce digitálních logických obvodů nazývaných „klopné obvody“, který má dva stabilní stavy, které mohou být reprezentovány buď 1 nebo 0. Takže spojením osmi klopných obvodů dohromady máte zařízení, které je schopné pojmout a představující 8bitový bajt. Stejně jako existuje několik typů klopných obvodů a několik variací na téma posuvných registrů (počítadla nahoru/dolů a čítače Johnson), existuje také několik typů posuvných registrů podle toho, jak data je uzamčen do registru a jak jsou tato data vydávána. Na základě toho zvažte následující typy posuvných registrů:
- Sériový vstup / paralelní výstup (SIPO)
- Sériový vstup / Sériový výstup (SISO)
- Parallel In/ Serial Out (PISO)
- Parallel In / Parallel Out (PIPO)
Dva z nich jsou SIPO a PISO. Registry SIPO odebírají data sériově, to znamená jeden bit za druhým, přesouvajíc dříve vstupní bit na další klopný obvod a odesílají data na všechny vstupy najednou. Díky tomu je pěkný převodník sériového na paralelní. Posuvné registry PISO mají naopak paralelní vstupy, takže všechny bity jsou zadávány najednou, ale jsou vydávány po jednom. A uhodli jste, že to dělá pěkný paralelní k sériovému převaděči. Posuvný registr, který chceme použít ke snížení počtu I/O pinů, by nám umožnil vzít těch 8 IO pinů, které jsme použili dříve, a zmenšit je na jeden, nebo možná jen na pár, vzhledem k tomu, že možná budeme muset kontrolovat, jak zadáváme bity. Posuvný registr, který použijeme, je tedy Serial In / Parallel Out. Zapojte posuvný registr mezi LED a Arduino Pomocí posuvného registru je to snadné. Nejtěžší je jen vizualizace výstupních datových pinů a toho, jak binární číslice skončí v IC, a jak se nakonec zobrazí na LED. Udělejte si chvilku a naplánujte si to. 1. Připojte 5V ke kolíku 14 (vpravo nahoře) a vezměte kolík 7 (dole vlevo) dolů k zemi. Posuvný registr má dva sériové vstupy, ale budeme používat pouze jeden, takže připojte pin dva k 5V3. Nebudeme používat čistý pin (používá se k vynulování všech výstupů), takže ho nechte plovoucí nebo na něj zaútočte na 5V4. Připojte jeden digitální IO port a připojte jeden z posuvných registrů. Toto je pin sériového vstupu. Připojte jeden digitální IO port ke kolíku 8 (vpravo dole). Toto je hodinový kolík. Připojte své datové linky od Q0 do Q6. Používáme pouze 7 bitů, protože znaková sada ASCII používá pouze sedm bitů. Použil jsem PD2 pro výstup mých sériových dat a PD3 pro hodinový signál. Pro datové piny jsem připojil Q0 až D6 na LED a pokračoval tímto způsobem (Q1 až D5, Q2 až D4 atd.). Protože posíláme data sériově, budeme muset prozkoumat binární reprezentaci každého znaku, který chceme poslat, při pohledu na 1 a 0 a na výstupu každého bitu na sériové lince. Zahrnul jsem druhou verzi zdroje dotmatrixled.c spolu s Makefile níže. Prochází cyklem znakové sady a zobrazuje všechny sudé znaky (pokud je divné myslet si, že písmeno může být liché nebo sudé, na okamžik přemýšlejte o binární reprezentaci). Pokuste se přijít na to, jak to nechat procházet zobrazením všech lichých znaků. Můžete dále experimentovat s propojením mezi posuvným registrem, LED diodou s maticí a vaším Arduinem. Mezi LED a registrem je několik ovládacích funkcí, které vám umožňují jemně doladit ovládání, když jsou data zobrazena. Takže … … přešli jsme od používání osmi I/O portů k použití pouze dvou!
Krok 5: Shrnutí
V tomto návodu jsem představil LED matici DLO7135 s bodovou maticí a její fungování. Dále jsem diskutoval, jak pomocí posuvného registru snížit počet požadovaných I/O portů z osmi na pouhé dva. Bodovou matici LED DLO7135 lze spojit dohromady a vytvořit tak poutavé a zajímavé markýzy. Doufám, že jste si čtení tohoto návodu užili! Pokud si myslíte, že bych mohl něco vylepšit, nebo návrhy, které byste k tomuto nebo některému z mých textů chtěli poskytnout, rád je slyším! Happy AVR'ing!
Doporučuje:
7 Segmentový čítač s posuvným registrem: 3 kroky
7 Segmentový čítač s posuvným registrem: Toto je perfektní projekt pro začátečníky, pokud se teprve učíte používat posuvný registr a jak funguje s kódem. Tento projekt je navíc skvělým začátkem, pokud jste na 7segmentovém displeji nováčkem. Než začnete s tímto projektem, ujistěte se, že
Arduino s posuvným registrem CD4015B: 3 kroky
Arduino s posuvným registrem CD4015B: CD4015B je duální 4stupňový statický posuvný registr se sériovým vstupem a paralelním výstupem. Je to 16pinový IC a obsahuje dva identické, 4stupňové registry s nezávislými vstupy Data, Clock a Reset. Logická úroveň přítomná na vstupu každého st
Použití LCD displeje s Arduinem: 5 kroků
Používání LCD displeje s Arduinem: V této lekci Instructables je ukázáno zobrazování textů a jejich zobrazování na LCD displeji 16 x 2 pomocí Arduina. Začněme a doufám, že se vám bude líbit
Propojení 7segmentového displeje s posuvným registrem pomocí mikrokontroléru CloudX: 5 kroků
Propojení 7segmentového displeje s posuvným registrem pomocí mikrokontroléru CloudX: V tomto projektu vydáváme návod, jak propojit sedmisegmentový LED displej s mikrokontrolérem CloudX. Sedm segmentových displejů se používá v mnoha vestavěných systémových a průmyslových aplikacích, kde je rozsah výstupů, které mají být zobrazeny, znám
DIY MusiLED, hudební synchronizované LED diody s aplikací Windows a Linux na jedno kliknutí (32bitová a 64bitová). Snadné obnovení, snadné použití, snadné přenesení: 3 kroky
DIY MusiLED, synchronizované LED diody hudby s aplikací Windows a Linux jediným kliknutím (32bitová a 64bitová). Snadno se obnovuje, snadno se používá a snadno se přenáší: Tento projekt vám pomůže připojit 18 LED diod (6 červených + 6 modrých + 6 žlutých) k desce Arduino a analyzovat signály zvukové karty vašeho počítače v reálném čase a přenášet je do LED diody je rozsvítí podle efektů rytmu (Snare, High Hat, Kick)