Cuprins:

Matrice LED folosind registre de schimbare: 7 pași (cu imagini)
Matrice LED folosind registre de schimbare: 7 pași (cu imagini)

Video: Matrice LED folosind registre de schimbare: 7 pași (cu imagini)

Video: Matrice LED folosind registre de schimbare: 7 pași (cu imagini)
Video: 3 semne ca trebuie sa inlocuiesti uleiul din cutia de viteze 2024, Iulie
Anonim
Matrice LED folosind registre de schimbare
Matrice LED folosind registre de schimbare
Matrice LED folosind registre de schimbare
Matrice LED folosind registre de schimbare
Matrice LED folosind registre de schimbare
Matrice LED folosind registre de schimbare

Acest instructable este menit să fie o explicație mai completă decât altele disponibile online. În special, acest lucru va oferi mai multe explicații hardware decât este disponibil în carcasa LED care poate fi instruită de led555.

Obiective

Acest instructable prezintă conceptele implicate în registrele de schimbare și driverele laterale înalte. Prin ilustrarea acestor concepte cu o matrice LED 8x8, sper să vă ofer instrumentele necesare pentru a vă adapta și extinde la dimensiunea și aspectul pe care îl solicită proiectul dumneavoastră.

Experiență și Abilități

Aș considera că acest proiect este de dificultate medie:

  • Dacă aveți deja experiență în programarea microcontrolerelor și lucrul cu LED-uri, acest proiect ar trebui să vă fie destul de ușor de realizat și de scalat la matrice mai mari de lumini.
  • Dacă tocmai începeți cu microcontrolere și ați aprins un LED sau doi, ar trebui să puteți finaliza acest proiect cu ajutorul unui prieten Google.
  • Dacă aveți puțină sau deloc experiență cu microcontrolerele sau cu programarea, acest lucru este probabil dincolo de ceea ce ar trebui să vă faceți. Încercați câteva alte proiecte pentru începători și reveniți când aveți mai multă experiență în scrierea de programe pentru microcontrolere.

Declinare de responsabilitate și credit

În primul rând, nu sunt inginer electric. Dacă vedeți ceva care nu este în regulă sau nu este o bună practică, vă rugăm să ne informați și voi face corectarea. Faceți acest lucru pe propriul dvs. risc! Ar trebui să știți ce faceți sau puteți provoca daune computerului, microcontrolerului și chiar dvs. Însuși am învățat multe de pe internet, în special de pe forumurile de la: https://www.avrfreaks.net un set de fonturi care a venit împreună cu biblioteca universală ks0108. Verificați aici:

Pasul 1: Piese

Lista de componente

Piese generale

Pentru a crea o rețea de 8x8 de LED-uri și a le controla, veți avea nevoie de:

  • 64 LED-uri la alegere
  • 8 Rezistoare pentru LED-uri
  • 1 Registrați tasta pentru coloane
  • 1 Matrice de drivere pentru rânduri
  • 8 Rezistoare pentru comutarea matricei de drivere
  • 1 microcontroler
  • 1 sursă de ceas pentru microcontroler
  • 1 placă de prototipare
  • 1 sursa de alimentare
  • Sârmă de conectare

Piese specifice utilizate aici

Pentru acest instructable am folosit următoarele:

  • 64 de LED-uri verzi (cod Mouser nr. 604-WP7113GD)
  • 8 rezistențe de 220ohm 1/4 wați pentru LED-uri (Cod Mouser nr. 660-CFS1 / 4CT52R221J)
  • 1 driver LED HEF4794 cu registru de schimbare (piesa Mouser nr. 771-HEF4794BPN)
  • 1 mic 2981 Matrice de driver de sursă de înaltă tensiune de înaltă tensiune (partea Digikey nr. 576-1158-ND)
  • 8 rezistențe de 3,3 kohm de 1/4 wați pentru comutarea matricei de drivere (partea Radio Shack nr. 271-1328)
  • 1 microcontroler Atmel ATmega8 (Cod Mouser nr. 556-ATMEGA8-16PU)
  • 1 cristal de 12 MHz pentru sursa de ceas a microcontrolerului (piesa Mouser nr. 815-AB-12-B2)
  • 1 placă de prototipare de 2200 de găuri (piesa Radio Shack nr. 276-147)
  • Sursă de alimentare ATX convertită: Consultați acest manual
  • Sârmă solidă de 22 awg cu miez solid (piesa Radio Shack nr. 278-1221)
  • Panou fără sudură (partea Radio Shack nr. 276-169 (nu mai este disponibilă, încercați: 276-002)
  • AVR Dragon (partea Mouser nr. 556-ATAVRDRAGON)
  • Dragon Rider 500 de către Ecros Technologies: consultați acest instructiv

Note referitoare la piese

Drivere de rânduri și coloane: Probabil cea mai dificilă parte a acestui proiect este alegerea driverelor de rânduri și coloane. În primul rând, nu cred că un registru de schimbare standard 74HC595 este o idee bună aici, deoarece nu pot gestiona tipul de curent pe care dorim să-l trimitem prin LED-uri. Acesta este motivul pentru care am ales driverul HEF4794, deoarece poate scufunda cu ușurință curentul prezent atunci când toate cele 8 led-uri sunt într-un singur rând sunt pornite. Vom avea nevoie de un driver de rând care să poată furniza suficient curent pentru a înșira mai multe coloane împreună. Mic2981 poate furniza până la 500mA. Singura altă parte pe care am găsit-o care îndeplinește această sarcină este UDN2981 (partea digitală # 620-1120-ND), care este aceeași parte a unui alt producător. Vă rog să-mi trimiteți un mesaj dacă știți despre alte drivere high-side care ar funcționa bine în această aplicație. O matrice LED mai mare poate fi construită prin înșirarea mai multor matrice și va fi discutată în pasul „concepte modulare”. Dacă doriți o gamă mare, comandați toate piesele necesare simultan. Există matrici LED 8x8, 5x7 și 5x8 disponibile într-un singur pachet convenabil. Acestea ar trebui să fie ușor de înlocuit cu o matrice DIY. Ebay este o sursă bună pentru acestea. Mouser are disponibile câteva unități 5x7, cum ar fi partea # 604-TA12-11GWA. Am folosit LED-uri verzi ieftine pentru că doar mă joc și mă distrez. Cheltuind mai mult pe LED-urile cu luminozitate ridicată și eficiență ridicată vă pot permite să produceți un afișaj mult mai spectaculos … acest lucru este suficient de bun pentru mine! Control Hardware: Matricea este controlată de un microcontroler Atmel AVR. Veți avea nevoie de un programator pentru asta. Pentru că fac prototipuri, folosesc Dragon Rider 500 pentru care am scris atât instructaje de asamblare, cât și de utilizare. Acesta este un instrument ușor pentru realizarea de prototipuri și îl recomand cu drag.

Pasul 2: Matricea

Matricea
Matricea
Matricea
Matricea
Matricea
Matricea

Voi construi propria mea matrice LED pentru acest proiect folosind leduri de 5 mm și o placă de prototipare de la Radio Shack. Trebuie remarcat faptul că puteți achiziționa module led 8x8 cu matrice de puncte din mai multe surse, inclusiv eBay. Ar trebui să funcționeze foarte bine cu acest instructiv.

Considerații privind construcția

Alinierea LED-urile trebuie aliniate astfel încât să fie orientate în aceeași direcție în același unghi. Am găsit cea mai ușoară opțiune pentru mine a fost să pun corpul LED-ului la nivelul plăcii și să-l țin acolo cu o bucată mică de plexiglas și o clemă. Am pus câteva LED-uri la un loc de câțiva centimetri distanță de rândul la care lucram pentru a mă asigura că plexiglasul este paralel cu placa de prototipare. Rânduri și coloane Trebuie să avem o conexiune comună pentru fiecare rând, precum și pentru fiecare coloană. Datorită alegerii driverului de rând și coloană, trebuie să avem anodul (cablul pozitiv al LED-ului) conectat prin rând și catodul (cablul negativ al LED-ului) conectat prin coloană. Firele de control Pentru acest prototip folosesc sârmă de conectare cu miez solid (cu un singur conductor). Acest lucru va fi foarte ușor de interfațat cu o placă fără sudură. Simțiți-vă liber să utilizați un alt tip de conector pentru a vă potrivi proiectului.

Construirea Matricei

1. Așezați prima coloană de LED-uri în placa de prototipare.2. Verificați de două ori dacă polaritatea dvs. pentru fiecare LED este corectă, acest lucru va fi foarte greu de remediat dacă vă dați seama mai târziu. Lipiți ambele cabluri ale LED-ului către placă. Verificați pentru a vă asigura că sunt aliniate corect (nu la unghiuri ciudate) și decupați cablurile catodului. Asigurați-vă că nu decupați cablul anodului, vom avea nevoie de el mai târziu, așa că lăsați-l îndreptat în sus. Îndepărtați izolația dintr-o bucată de fir solid. Lipiți această bucată de sârmă pe fiecare catod chiar la nivelul plăcii.

  • Am aplicat acest lucru la fiecare capăt, apoi m-am întors și am adăugat un pic de lipit la fiecare intersecție.
  • Acest fir ar trebui să treacă peste ultimul dvs. LED pentru a crea o interfață ușoară atunci când adăugăm fire de control.

5. Repetați părțile 1-4 până când aveți toate LED-urile în poziție și toate autobuzele de coloane lipite.6. Pentru a crea o magistrală de rând, îndoiți mai multe dintre conductorii anodici la un unghi de 90 de grade, astfel încât să atingă celelalte conducte anodice din același rând.

  • Mai jos sunt imagini detaliate ale acestui lucru.
  • Aveți grijă să nu le lăsați să intre în contact cu autobuzele coloanei, creând un scurtcircuit.

7. Lipiți cablurile la fiecare joncțiune și scoateți excesul de cabluri anodice.

Lăsați ultimul anod să se lipească de LED-ul final. Aceasta va fi utilizată pentru a conecta firele de control ale driverului de rând

8. Repetați piesele 6 și 7 până când toate autobuzele de rânduri au fost lipite.9. Atașați firele de control.

  • Am folosit sârmă roșie cu miez solid pentru rânduri și negru pentru coloane.
  • Conectați un fir pentru fiecare coloană și unul pentru fiecare rând. Acest lucru se poate face cu ușurință la sfârșitul fiecărui autobuz.

Important

Această matrice LED nu are rezistențe de limitare a curentului. Dacă testați acest lucru fără rezistențe, probabil că vă veți arde LED-urile și toate aceste lucrări vor fi degeaba.

Pasul 3: Hardware-ul de control

Hardware-ul de control
Hardware-ul de control
Hardware-ul de control
Hardware-ul de control

Trebuie să controlăm coloanele și rândurile matricei noastre LED. Matricea a fost construită astfel încât anodii (partea de tensiune a LED-ului) să constituie rândurile, iar catodii (partea de masă a LED-ului) formează coloanele. Acest lucru înseamnă că driverul nostru de rând trebuie să furnizeze curent și driverul nostru de coloane trebuie să-l scufunde. Pentru a economisi pe pini, folosesc un registru de schimbare pentru a controla coloanele. În acest fel pot controla un număr aproape nelimitat de coloane cu doar patru pini de microcontroler. Este posibil să utilizați doar trei dacă pinul Activare ieșire este legat direct de tensiune. Am selectat driverul LED HEF4794 cu registru de schimbare. Aceasta este o opțiune mai bună decât un standard 74HC595, deoarece poate scufunda cu ușurință actualul curent atunci când toate cele 8 LED-uri sunt aprinse simultan. Schema arată un UDN2981, cred că aceste două sunt interschimbabile. Acest driver poate furniza curent de până la 500mA. Deoarece conducem doar 1 rând pe rând, acest lucru oferă o mulțime de oportunități de extindere, până la 33 de coloane pentru acest cip (mai multe despre asta în pasul „concepte modulare”).

Construirea hardware-ului de control

Pentru acest instructiv, tocmai am analizat acest circuit. Pentru o soluție mai permanentă, veți dori fie să vă gravați propria placă de circuit, fie să utilizați o placă de prototipare. Șofer de rând

  • Așezați mic2981 (sau UDN2981) în panoul de verificare
  • Conectați pinul 9 la tensiune (acest lucru este confuz în schemă)
  • Conectați pinul 10 la masă (acest lucru este confuz în schemă)
  • introduceți rezistențe 3k3 conectate la pinii 1-8
  • Conectați-vă de la portul D al ATmega8 (PD0-PD8) la cele 8 rezistențe
  • Conectați firele de control de 8 rânduri ale matricei de LED-uri la pinii 11-18 (rețineți că am conectat cel mai jos rând de LED-uri la pinul 18 și cel mai înalt rând la pinul 11).

2. Driver coloană

  • Așezați hef4794 în panou
  • Conectați pinul 16 la tensiune
  • Conectați pinul 8 la masă
  • Conectați rezistențe de 220 ohmi la pinii 4-7 și 11-14.
  • Conectați cele 8 fire de control ale coloanei de la matricea LED la cele 8 rezistențe pe care tocmai le-ați conectat.
  • Conectați Pin1 (Latch) la PC0 al ATmega8
  • Conectați Pin2 (Date) la PC1 al ATmega8
  • Conectați Pin3 (Clock) la PC2 al ATmega8
  • Conectați Pin15 (Activare ieșire) la PC3 al ATmega8

3. Cristal de ceas

Conectați un cristal de 12 MHz și încărcați condensatori așa cum se arată în schemă

4. ISP

Conectați antetul de programare așa cum se arată în schemă

5. Condensator de filtrare și rezistență de tracțiune

  • Cel mai bine este să filtrați tensiunea furnizată ATmega8. Folosiți un condensator de 0.1uf între pinii 7 și 8 ai ATmega8
  • Pinul de resetare nu trebuie lăsat plutitor, deoarece poate provoca resetări aleatorii. Folosiți un rezistor pentru a-l conecta la tensiune, orice despre 1k ar trebui să fie bun. Am folosit un rezistor de 10k în schemă.

6. Asigurați-vă că utilizați o putere reglată de + 5v. Depinde de dvs. să proiectați regulatorul.

Pasul 4: Software

Smecheria

Da, ca orice, există un truc. Trucul este că nu există niciodată mai mult de 8 LED-uri iluminate simultan. Pentru ca acest lucru să funcționeze bine, este nevoie de un pic de programare ingenioasă. Conceptul pe care l-am ales este să folosesc o întrerupere temporizată. Iată cum funcționează întreruperea afișajului în engleză simplă:

  • Timerul contează până la un anumit punct, când este atins rutina serviciului de întrerupere este executată.
  • Această rutină decide care rând urmează să fie afișat.
  • Informațiile pentru rândul următor sunt căutate dintr-un buffer și mutate în driverul coloanei (aceste informații nu sunt „blocate”, deci nu sunt încă afișate).
  • Driverul de rând este oprit, în prezent nu sunt aprinse LED-uri.
  • Driverul coloanei este „blocat” face din informațiile pe care le-am mutat în urmă cu doi pași informațiile curente de afișat.
  • Driverul de rând oferă apoi curent noului rând pe care îl afișăm.
  • Rutina serviciului de întrerupere se încheie și programul revine la fluxul normal până la următoarea întrerupere.

Acest lucru se întâmplă foarte repede. Întreruperea este aruncată la fiecare 1 mSec. Aceasta înseamnă că reîmprospătăm întregul ecran aproximativ o dată la 8 mSec. Aceasta înseamnă o rată de afișare de aproximativ 125Hz. Există o anumită îngrijorare în ceea ce privește luminozitatea, deoarece în esență rulăm LED-urile la un ciclu de funcționare de 1/8 (sunt oprite 7/8 din timp). În cazul meu, am un afișaj suficient de luminos, fără intermitent vizibil. Afișajul cu LED complet este mapat într-o matrice. Între întreruperi, matricea poate fi schimbată (fiți atenți la atomicitate) și va apărea pe afișaj în timpul următoarei întreruperi. Specificul scrierii codului pentru microcontrolerul AVR și a modului de scriere a codului pentru a vorbi cu registrele de deplasare este dincolo de sfera de aplicare din acest instructabil. Am inclus codul sursă (scris în C și compilat cu AVR-GCC), precum și fișierul hex pentru a programa direct. Am comentat tot codul, așa că ar trebui să puteți utiliza acest lucru pentru a clarifica orice întrebări despre cum să introduceți datele în registrul de schimbare și cum funcționează reîmprospătarea rândului. Vă rugăm să rețineți că folosesc un fișier de font care a venit cu biblioteca universală ks0108. Biblioteca respectivă poate fi găsită aici:

Registre de schimbare: Cum să

Am decis să adaug un pic despre cum să programez cu registre de schimbare. Sper că acest lucru clarifică lucrurile pentru cei care nu au mai lucrat cu ei înainte. În acest caz, există un fir de date care preia datele și 8 pini care sunt controlați în funcție de ce date au fost primite. Pentru a îmbunătăți lucrurile, există un vârf pentru fiecare registru de schimbare care poate fi conectat la pinul de intrare al unui alt registru de schimbare. Aceasta se numește cascadă și face ca potențialul de extindere să fie un perspectiv aproape nelimitat. Registrele Control PinsShift au 4 pini de control:

  • Blocare - Acest pin indică registrul de schimbare când este timpul să treceți la datele nou introduse
  • Date - 1 și 0 indică registrului de deplasare ce pini de activat sunt primiți pe acest pini.
  • Ceas - Acesta este un impuls trimis de la microcontroler care spune registrului de schimbare să ia o citire a datelor și să treacă la pasul următor în procesul de comunicare
  • Activare ieșire - Acesta este un comutator de pornire / oprire, Înalt = Activat, Scăzut = Dezactivat

Efectuarea licitației dvs.: Iată un curs de blocare în funcționarea pinilor de control de mai sus: Pasul 1: Setați Latch, Data și Clock low

Setarea Latch-ului mic indică registrul de schimbare pe care urmează să-l scriem

Pasul 2: Setați pinul de date la valoarea logică pe care doriți să o trimiteți la Shift Register Pasul 3: Setați pinul de ceas la înălțime, spunând Shift Register să citească valoarea actuală a pinului de date.

Toate celelalte valori aflate în prezent în registrul Shift se vor deplasa cu 1 loc, făcând loc valorii logice curente a pinului de date

Pasul 4: Setați pinul ceasului Low și repetați pașii 2 și 3 până când toate datele au fost trimise în registrul de schimbare.

PIN-ul ceasului trebuie setat scăzut înainte de a trece la următoarea valoare Data. Comutarea acestui pin între mare și mic este ceea ce creează „pulsul ceasului”, registrul de schimbare trebuie să știe când să treacă la pasul următor al procesului

Pasul 5: Setați Latch ridicat

Aceasta spune registrului de schimbare să ia toate datele care au fost mutate și să le folosească pentru a activa pinii de ieșire. Aceasta înseamnă că nu veți vedea date pe măsură ce se schimbă; nicio modificare a pinilor de ieșire nu va avea loc până când Latch-ul nu este setat la un nivel ridicat

Pasul 6: setați Activare ieșire ridicată

  • Nu va exista ieșire pin până când Enable Output este setat la mare, indiferent de ceea ce se întâmplă cu ceilalți trei pini de control.
  • Acest ac poate fi lăsat întotdeauna sus, dacă doriți

Există doi pini pe care îi puteți folosi pentru cascadă, Os și Os1. Os este pentru ceasurile cu creștere rapidă și Os1 este pentru ceasurile cu creștere lentă. Cuplați acest pin la pinul de date al următorului registru de schimbare și deversarea de pe acest cip va fi introdusă în următoarea.

Adresarea afișajului

În exemplul de program am creat o matrice de 8 octeți numită row_buffer . Fiecare octet corespunde unui rând al afișajului 8x8, rândul 0 fiind de jos și rândul 7 fiind de sus. Cel mai puțin semnificativ bit din fiecare rând este în dreapta, cel mai semnificativ bit din stânga. Schimbarea afișajului este la fel de ușoară ca și scrierea unei noi valori în acea matrice de date, rutina de servicii de întrerupere se ocupă de reîmprospătarea afișajului.

Programare

Programarea nu va fi discutată în detaliu aici. Vă avertizez să nu utilizați un cablu de programare DAPA deoarece cred că nu veți putea programa cipul odată ce acesta rulează la 12MHz. Toți ceilalți programatori standard ar trebui să funcționeze (STK500, MKII, Dragon, programatori paraleli / seriali etc.) Siguranțe: Asigurați-vă că programați siguranțele pentru a utiliza cristalul de 12 MHz: 0xC9lfuse: 0xEF

În acțiune

Odată ce ați programat cipul, afișajul ar trebui să deruleze „Hello World!”. Iată un videoclip al matricei LED în acțiuni. Calitatea video este destul de scăzută, deoarece am realizat acest lucru cu funcția video a camerei digitale și nu cu un videoclip sau o cameră web adecvate.

Pasul 5: Concepte modulare

Concepte modulare
Concepte modulare
Concepte modulare
Concepte modulare
Concepte modulare
Concepte modulare
Concepte modulare
Concepte modulare

Acest proiect este scalabil. Singurul factor limitativ adevărat va fi cât de mult curent poate furniza sursa de alimentare. (Cealaltă realitate este câte LED-uri și comutatoare de înregistrare aveți la dispoziție).

Matematica

Conduc LED-urile la aproximativ 15mA (5V-1.8vDrop / 220ohms = 14.5mA). Aceasta înseamnă că pot conduce până la 33 de coloane cu driverul mic2981 (500mA / 15mA = 33,3). Împărțiți la 8 putem vedea că acest lucru ne permite să înșirăm 4 registre de schimbare. Luați în considerare, de asemenea, că nu este necesar să aveți toate cele 32 de coloane întinse de la stânga la dreapta. În schimb, puteți crea o matrice de 16x16 care este conectată la fel cum ați face o matrice de 8x32. Acest lucru ar fi abordat prin deplasarea în 4 octeți …. primii doi s-ar deplasa până la leduri pentru al 9-lea rând, al doilea doi octeți s-ar deplasa în primul rând. Ambele rânduri ar fi obținute de un singur pin pe driverul de rând.

Registre de schimbare în cascadă

Registrele de schimburi utilizate sunt registre de schimbare în cascadă. Aceasta înseamnă că atunci când schimbați datele, revărsatul apare pe pinul Os. Devine foarte util, deoarece un set de registre de schimbare poate fi conectat între ele, pinul Os la pinul de date, adăugând 8 coloane cu fiecare nou chip. Toate registrele de schimbare se vor conecta la aceleași pini Latch, Clock și Enable Output microcontrolerul. Efectul „în cascadă” este creat atunci când Os-ul primului registru de schimbare este conectat la pinul de date al celui de-al doilea. Programarea va trebui modificată pentru a reflecta numărul crescut de coloane. Atât bufferul care stochează informațiile, cât și funcția care mută informațiile pentru fiecare coloană trebuie actualizate pentru a reflecta numărul real de coloane. O schemă a acestui lucru este prezentată mai jos ca exemplu.

Drivere cu mai multe rânduri

Driverul de rând (mic2981) poate sursa suficient curent pentru a conduce 32 de coloane. Ce se întâmplă dacă doriți mai mult de 32 de coloane? Ar trebui să fie posibil să folosiți mai multe drivere de rând fără a utiliza mai mulți pini de microcontroler. Avem nevoie de driverele de rând pentru a furniza suficient curent pentru a aprinde LED-urile. Dacă utilizați mai multe coloane decât este posibil să se aprindă simultan, driverele de rând suplimentar pot furniza curentul necesar. Sunt utilizați aceiași pini de intrare de la microcontroler, astfel încât nu este nevoie să modificați scanarea rândurilor. Cu alte cuvinte, fiecare driver controlează rândurile pentru un bloc 8x32. Chiar dacă 64 de coloane pot avea aceeași plasare de rând FIZIC, împărțim autobuzele de rând în două, folosind un driver pentru cele 8 rânduri ale primelor 32 de coloane și un al doilea driver pentru cele 8 rânduri ale celei de-a 32-a coloane și așa mai departe. O schemă a acestui fapt este prezentată mai jos, ca exemplu. Nu utilizați drivere cu mai multe rânduri cu același număr de coloane. Acest lucru ar însemna că fiecare pin al registrului de schimbare ar conduce mai mult de un LED la un moment dat. Trebuie să aveți un set de 8 rezistențe (3k3) pentru fiecare driver de rând, un set pentru driverele de rând multiple nu va funcționa, deoarece nu va furniza curentul necesar pentru a comuta porțile.

De exemplu

Am decis să mă extind pe matricea pe care am construit-o mai devreme. Am adăugat încă 7 rânduri pentru un total de 15, deoarece asta e tot ce pot încadra pe acest protoboard. De asemenea, tocmai am aflat despre un concurs pe care Instructables îl face numit „Let it Glow”. Iată un videoclip cu părerea mea despre asta. Încă o dată, camera digitală pe care obișnuiam să o fac, nu îi face dreptate. Acest lucru arată minunat pentru ochiul uman, mai ales în cazul în care toate LED-urile clipesc, dar nu arată aproape la fel de bine în videoclip. Bucurați-vă: codul sursă pentru acest afișaj mai mare este inclus mai jos.

Pasul 6: Concluzie

Adăugări posibile

I2CI a lăsat pinii interfeței cu două fire (I2C) nefolosiți în acest design. Există mai multe perspective interesante care pot folosi acești doi ace. Adăugarea unei EEPROM I2C va permite stocarea mesajelor mult mai mari. Există, de asemenea, perspectiva proiectării programării pentru a transforma mega8 într-un driver de afișaj compatibil I2C. Acest lucru ar deschide posibilitatea de a avea un dispozitiv de activare USB pentru a afișa date pe matricea dvs. de LED-uri, trecându-le peste magistrala I2C. Acest lucru ar permite programarea mesajelor prin intermediul unui sistem de meniuri. Afișare Pentru acest instructiv, am implementat doar câteva funcții de afișare. Unul scrie doar caractere pe ecran, celălalt derulează caractere pe ecran. Important de reținut este că ceea ce vedeți în lumini este reprezentat într-o matrice de date. Dacă veniți cu modalități mai clare de a schimba matricea de date, luminile se vor schimba în același mod. Unele oportunități tentante includ crearea unui contor grafic din coloane. Acesta ar putea fi folosit ca un analizor de semnal cu stereo. Derularea poate fi implementată de sus în jos sau de jos în sus, chiar de la stânga la dreapta. Noroc sa te distrezi!

Pasul 7: Urmăriți

Urmare
Urmare
Urmare
Urmare
Urmare
Urmare
Urmare
Urmare

După ce am lăsat circuitul controlerului să stea în panoul de luni de zile, am proiectat și am gravat câteva plăci de circuit pentru a pune împreună acest prototip. Totul a funcționat grozav, nu cred că ar fi făcut ceva altfel.

Caracteristici ale circuitului

  • Registrele de schimbare sunt pe plăci separate care pot fi legate în lanț pentru a crește dimensiunea afișajului.
  • Placa de control are propriul regulator de putere, astfel încât aceasta poate fi rulată de orice sursă de alimentare care asigură 7v-30v (bateria de 9v sau alimentarea pe bancă de 12v funcționează perfect pentru mine).
  • Antet ISP cu 6 pini inclus, astfel încât microcontrolerul să poată fi reprogramat fără al scoate de pe placă.
  • Antet cu 4 pini disponibil pentru utilizarea viitoare a magistralei I2C. Acest lucru ar putea fi folosit pentru un eeprom pentru a stoca mai multe mesaje sau chiar pentru a face din acesta un dispozitiv sclav controlat de un alt microcontroler (RSS ticker anyone?)
  • 3 butoane de moment sunt incluse în design. Aș putea modifica firmware-ul în viitor pentru a include utilizarea acestor butoane.

Asamblare

Dă-mi plexiglas, consolă unghiulară, șuruburi 6x32, piulițe și șaibe, precum și un set de robinete pentru a găuri filetate și pot crea orice.

Premiul II la Let It Glow!

Recomandat: