Obsah:

Použitie bodovej matice LED s Arduino a posuvným registrom: 5 krokov
Použitie bodovej matice LED s Arduino a posuvným registrom: 5 krokov

Video: Použitie bodovej matice LED s Arduino a posuvným registrom: 5 krokov

Video: Použitie bodovej matice LED s Arduino a posuvným registrom: 5 krokov
Video: I Bought A $6,000 Porsche 911! 2024, Júl
Anonim
Použitie bodovej matice LED s Arduino a posuvným registrom
Použitie bodovej matice LED s Arduino a posuvným registrom
Použitie bodovej matice LED s Arduino a posuvným registrom
Použitie bodovej matice LED s Arduino a posuvným registrom
Použitie bodovej matice LED s Arduino a posuvným registrom
Použitie bodovej matice LED s Arduino a posuvným registrom

Ihličková LED dióda Siemens DLO7135 je úžasný kus optoelektroniky. Účtuje sa ako 5x7 bodový maticový inteligentný displej (r) s pamäťou/dekodérom/ovládačom. Spolu s touto pamäťou je vybavený 96-znakovým displejom ASCII s veľkými a malými písmenami, vstavaným generátorom znakov a multiplexorom, štyrmi úrovňami intenzity svetla a to všetko beží na 5V. To je veľa, čo je možné prežiť, a pri 16 dolároch za pop by to rozhodne malo byť. Keď som strávil pol dňa v mojom obľúbenom miestnom obchode s elektronikou, našiel som ich plný kôš za 1,50 dolára za kus. S niekoľkými som odišiel z obchodu. Tento návod vám ukáže, ako sa pripojiť k týmto bodovým LED diódam a zobrazovať znaky pomocou Arduina na báze AVR. Ak ste si prečítali niektorého z mojich predchádzajúcich sprievodcov, možno vám napadne, že som často za to najšetrnejšie riešenie a nemýlili by ste sa, aj keď z času na čas cieľ nesplním.. Preto tiež prejdem ďalším krokom v tomto návode a ukážem vám, ako môžete znížiť počet I/O portov potrebných na pohon týchto veľkých, honkinových bodových maticových diód LED.

Krok 1: Získajte tovar …

Získajte tovar…
Získajte tovar…

Na tento malý krátky projekt budete potrebovať:

  • mikrokontrolér na báze AVR ako Arduino alebo čokoľvek podobné. Tieto pokyny je pravdepodobne možné prispôsobiť vášmu vybranému MCU.
  • bodová matica LED DLO7135 alebo iná v rovnakej rodine
  • 8-bitový posuvný register ako 74LS164, 74C299 alebo 74HC594
  • chlebník
  • prepojovací drôt, nožnice na drôty atď.

Spájkovačka nie je potrebná, aj keď ju použijem neskôr; zaobídete sa bez toho.

Krok 2: Pripojte sa priamo k LED displeju

Pripojte sa priamo k LED displeju
Pripojte sa priamo k LED displeju
Pripojte sa priamo k LED displeju
Pripojte sa priamo k LED displeju
Pripojte sa priamo k LED displeju
Pripojte sa priamo k LED displeju

Rozložte si malý zoznam dielov a chyťte LED diódu. Položte ho na dosku trochu vycentrovanú tak, aby obkolesil drážku v stredovej línii. Prvá časť pripojenia prebieha všetko na ľavej strane diódy LED. Kolík č. 1 je umiestnený vľavo hore, ako ukazuje trojuholník/šípka. Pri čítaní alebo pripájaní diódy LED som vložil funkcie pinov na obrázok pre vašu referenciu.

Ľavá strana

Kladné a záporné Začnite vľavo hore a pripojte Vcc na 5V. Možno je dobré nenechať dosku napájať, kým nedokončíte celú ľavú stranu; LED dióda môže byť jasná, ak sa pokúšate vidieť malé otvory na zasunutie drôtov. Pripojte ľavý dolný GND k zemi. Test žiarovky, zapnutie čipu a zápis 2. a 3. zhora vľavo sú test lampy a zapnutie čipu. Obidve sú negatívne logiky, čo znamená, že sú povolené, keď sú na logickej 0 namiesto 1. Môj obrázok nižšie by mal mať nad sebou pruhy, ale pre žiadny z nich som to neanotoval. Keď je kolík LT zapnutý, rozsvieti každý bod v bodovej matici pri 1/7. Je to skôr test pixelov, ale zaujímavou vecou na pine LT je, že neprepíše žiadny znak, ktorý je v pamäti, takže ak máte niekoľko z nich navlečených dohromady (majú vzdialenosť pozorovania 20 stôp), strobovanie LT môže vyzerať ako kurzor. Aby ste sa uistili, že je deaktivovaný, pripojte ho k 5 V. Piny CE a WR majú tiež negatívnu logiku a je potrebné, aby boli zapnuté, aby sa do tohto inteligentného zariadenia zapisovalo. Tieto piny môžete mikromanažovať pomocou náhradných I/O portov na vašom mikrokontroléri, ale nebudeme sa tu trápiť. Stačí ich pripojiť k zemi a ponechať ich zapnuté. Úrovne jasu V sérii LED diód DLO sú štyri programovateľné úrovne jasu:

  • Prázdne
  • 1/7 jas
  • 1/2 jasu
  • Plný jas

BL1 HIGH a BL0 LOW je 1/2 jasu. Oba HIGH sú plný jas. Nastavte si to, čo sa vám páči. Ak máte rezervné I/O porty a je to pre vás dosť dôležité, môžete to ovládať aj pomocou Arduina. Tým sa obalí ľavá strana. Ak dosku napájate, mali by ste vidieť, že sa rozsvieti LED dióda. Ak ste zvedaví, pohrajte sa s ovládaním jasu a testom žiarovky.

Pravá strana

Pravá strana pozostáva výlučne z dátových portov. Vpravo dole, kolík 8 alebo D0, presnejšie, predstavuje najmenej významný bit v 7-bitovom znaku. Vpravo hore, kolík 14 alebo D6, predstavuje najdôležitejší bit. Vďaka tomu budete vedieť, v akom poradí zamiešať vaše bity pri zápise do diódy LED. Keď máte zapojené porty na zadávanie údajov, nájdite na svojom zariadení Arduino alebo AVR sedem prázdnych digitálnych vstupno -výstupných portov a prepojte ich. Pravdepodobne si budete chcieť zapamätať, aký dátový výstupný port na vašom AVR smeruje do ktorého vstupného dátového portu na dióde LED. Teraz ste pripravení vložiť niektoré údaje do tejto inteligentnej diódy LED. Trasiete sa už od vzrušenia? Viem že som…

Krok 3: Zadanie znaku, ktorý sa má zobraziť

Špecifikácia znaku, ktorý sa má zobraziť
Špecifikácia znaku, ktorý sa má zobraziť

Znaková sada, ktorá je použitá na tejto CMOS LED, je váš bežný ASCII začínajúci na 0x20 (desatinná čiarka 32; medzera) a končiaca na 0x7F (desatinné číslo 127; vymazanie, aj keď je na dióde LED znázornené ako kurzorová grafika). Mať znak LED na displeji teda neznamená nič iné, ako stlačiť logiku 1 alebo 0 na výstupných kolíkoch údajov, po ktorých zvyčajne nasleduje impulz WR, ale to pri tomto cvičení uvádzam. Takže ste si zapísali alebo pamätal si, aké piny idú do akých portov, nie? Vybral som PD [2..7] a PB0 (digitálne piny 2 až 8 v Arduino-speak). Normálne neodporúčam používať PD [0..1], pretože ho venujem svojej sériovej komunikácii späť do poľa FreeBSD a Arduino a kol. namapujte tieto piny na ich komunikačný kanál FTDI USB, a hoci „oni“POVEDAJÚ, piny 0 a 1 budú fungovať, ak neinicializujete sériovú komunikáciu, nikdy som tieto piny nedokázal použiť ako bežné digitálne I/O. V skutočnosti som strávil dva dni pokusom o ladenie problému, keď som sa pokúsil použiť PD0 a PD1 a zistil som, že boli vždy VYSOKÉ. * pokrčiť ramenami* Pravdepodobne by bolo dobré mať nejaký externý vstup, napríklad klávesnicu, prepínač tlačidiel alebo koliesok, alebo možno dokonca vstup z terminálu (môj ArduinoTerm ešte nie je pripravený na hlavný vysielací čas …). Výber je na tebe. Teraz len ilustrujem, ako získať kód, aby sa požadovaný znak dostal na diódu LED. K dispozícii je súbor zip na stiahnutie vrátane zdrojového kódu a súboru Makefile a je tu aj krátky film s LED diódami, ktoré vytlačia jeho sadu znakov. Ospravedlňujeme sa za mizernú kvalitu videa. Nasledujúci kód vytlačí reťazec „Welcome to my Instructable!“potom cyklicky prechádza celou znakovou sadou, ktorú LED dióda podporuje.

DDRD = 0xFF; // OutputDDRB = (1 << DDB0); char msg = "Vitajte v mojom pokyne!"; uint8_t i; for (;;) {for (i = 0; i <27; i ++) {Print2LED (msg ); _delay_ms (150); } pre (i = 0x20; i <0x80; i ++) {Print2LED (i); _delay_ms (150); } Print2LED (& apos*& apos);}O výstup portu je postarané vo funkcii Print2Led ()

voidPrint2LED (uint8_t i) {PORTD = (i << 2); ak (i & 0b01000000) PORTB = (1 <

Kód a súbor Makefile sú zahrnuté v nižšie uvedenom súbore zip.

Krok 4: Zachráňte vstupno -výstupné porty pomocou posuvného registra

Šetrite vstupno -výstupné porty pomocou posuvného registra
Šetrite vstupno -výstupné porty pomocou posuvného registra
Šetrite I/O porty pomocou posuvného registra
Šetrite I/O porty pomocou posuvného registra
Šetrite I/O porty pomocou posuvného registra
Šetrite I/O porty pomocou posuvného registra

Náš mikrokontrolér teraz môže odosielať údaje na bodovú maticu LED, ale používa osem I/O portov. To vylučuje použitie ATtiny v 8-kolíkovom DIP balíku a dokonca aj pri novšom Arduine s ATmega328p je to veľa I/O portov pre jednu LED. Toto však môžeme obísť pomocou IC nazývaného posuvný register. Chvíľu na „preraďovanie“prevodových stupňov … Posuvný register je možné najlepšie pochopiť tak, že sa zamyslíte nad dvoma slovami, ktoré tvoria jeho názov: „radenie“a „register“. Slovo posun označuje, ako sa údaje pohybujú v registri. Tu (ako v našich Arduino a mikrokontroléroch všeobecne) je register umiestnenie, ktoré uchováva údaje. Vykonáva to implementáciou lineárneho reťazca digitálnych logických obvodov nazývaných „preklopné obvody“, ktorý má dva stabilné stavy, ktoré môžu byť reprezentované buď číslom 1, alebo 0. Keď teda spojíte osem preklopných obvodov, získate zariadenie, ktoré dokáže udržať a predstavujú 8-bitový bajt. Rovnako ako existuje niekoľko typov preklápacích obvodov a niekoľko variácií na tému posuvných registrov (počítadlá hore/dole a počítadlá Johnson), existuje aj niekoľko typov posuvných registrov založených na tom, ako údaje je zaistený v registri a ako sú tieto údaje odosielané. Na základe toho zvážte nasledujúce typy posuvných registrov:

  • Sériový / paralelný výstup (SIPO)
  • Sériový vstup / Sériový výstup (SISO)
  • Paralelný vstup/ sériový výstup (PISO)
  • Paralelný vstup / paralelný výstup (PIPO)

Dva z nich sú SIPO a PISO. Registre SIPO berú údaje sériovo, to znamená jeden bit za druhým, presúvajúc predchádzajúci vstupný bit na nasledujúci klopný obvod a odosielate údaje von na všetky vstupy naraz. To je pekný sériový na paralelný prevodník. Posuvné registre PISO majú naopak paralelné vstupy, takže všetky bity sa zadávajú naraz, ale sú na výstupe jeden po druhom. A uhádli ste, že to robí pekný paralelný k sériovému prevodníku. Posunový register, ktorý chceme použiť na zníženie počtu I/O pinov, by nám umožnil vziať tých 8 IO pinov, ktoré sme použili predtým, a redukovať ich na jeden alebo možno len pár, vzhľadom na to, že možno budeme musieť ovládať spôsob zadávania bity. Posuvný register, ktorý použijeme, je preto sériový / paralelný výstup. Zapojte posuvný register medzi LED a Arduino Použitie posuvného registra je jednoduché. Najťažšia časť je len vizualizácia výstupných pinov údajov a toho, ako binárne číslice skončia v integrovanom obvode, a ako sa nakoniec zobrazia na dióde LED. Nájdite si chvíľu a naplánujte si to. 1. Pripojte 5V na kolík 14 (vpravo hore) a kolík 7 (vľavo dole) vyberte na zem.2. Posuvný register má dva sériové vstupy, ale budeme používať iba jeden, takže zapojte pin dva k 5V3. Nebudeme používať čistý pin (slúži na vynulovanie všetkých výstupov), takže ho nechajte plávajúci alebo naň zaútočte na 5V4. Pripojte jeden digitálny port IO k kolíku jedného z posuvného registra. Toto je pin sériového vstupu.5. Pripojte jeden digitálny IO port na pin 8 (vpravo dole). Toto je hodinový kolík.6. Pripojte svoje dátové linky od Q0 do Q6. Používame iba 7 bitov, pretože znaková sada ASCII používa iba sedem bitov. Použil som PD2 na výstup svojich sériových dát a PD3 na hodinový signál. Pre dátové piny som pripojil Q0 až D6 na LED a pokračoval som týmto spôsobom (Q1 až D5, Q2 až D4 atď.). Pretože odosielame údaje sériovo, budeme musieť preskúmať binárne znázornenie každého znaku, ktorý chceme odoslať, pričom sa pozrieme na číslice 1 a 0 a každý bit vydáme na sériovú linku. Zahrnul som druhú verziu zdroja dotmatrixled.c spolu s Makefile nižšie. Prechádza cyklom znakovej sady a zobrazuje všetky párne znaky (ak je divné myslieť si, že písmeno môže byť nepárne alebo párne, chvíľu premýšľajte o binárnej reprezentácii). Skúste prísť na to, ako ho cyklicky zobrazovať a zobrazovať všetky nepárne znaky. Môžete ďalej experimentovať s prepojením medzi posuvným registrom, bodovou maticou LED a zariadením Arduino. Medzi diódou LED a registrom je niekoľko funkcií ovládania, ktoré vám umožňujú jemne doladiť kontrolu nad zobrazovaním údajov. Takže…. Od toho, aby sme museli používať osem I/O portov, sme prešli len na používanie dvoch!

Krok 5: Zhrnutie

Zhrnutie
Zhrnutie
Zhrnutie
Zhrnutie

V tomto návode som predstavil bodovú maticu LED DLO7135 a spôsob, ako fungovať. Ďalej som diskutoval o tom, ako znížiť počet požadovaných I/O portov z osem na iba dva pomocou posuvného registra. Bodovú maticu LED DLO7135 je možné spojiť, aby ste urobili veľmi pútavé a zaujímavé markízy. Dúfam, že ste si užili čítanie tohto návodu! Ak si myslíte, že by som mohol urobiť nejaké vylepšenia alebo návrhy, ktoré by ste chceli poskytnúť v súvislosti s týmto alebo niektorým z mojich článkov, rád ich vypočujem! Šťastný AVR'ing!

Odporúča: