Indicatoare LED cu șapte segmente. Indicator cu șapte segmente Indicatoare LED cu șapte segmente cu un catod comun

Un LED (sau dioda emițătoare de lumină) este o diodă optică care emite energie luminoasă sub formă de „fotoni” atunci când este polarizat direct. În electronică numim acest proces electroluminiscență. Culoarea luminii vizibile emise de LED-uri variază de la albastru la roșu și este determinată de spectrul spectral al luminii emise, care, la rândul său, depinde de diferitele impurități care sunt adăugate materialelor semiconductoare în timpul procesului lor de fabricație.

LED-urile au multe avantaje față de lămpile și corpurile de iluminat tradiționale și, poate, cele mai importante dintre ele sunt dimensiunile reduse, durabilitatea, diferitele culori, costul redus și disponibilitatea ușoară și capacitatea de a interfața cu ușurință cu diverse alte componente electronice din circuitele digitale.

Dar principalul avantaj al LED-urilor este că, datorită dimensiunilor reduse, unele dintre ele pot fi concentrate într-o singură carcasă compactă, formând un așa-numit indicator cu șapte segmente.

Indicatorul cu șapte segmente este format din șapte LED-uri (de unde și numele), dispuse într-un dreptunghi, așa cum se arată în figură. Fiecare dintre cele șapte LED-uri se numește segment deoarece, atunci când este iluminat, segmentul face parte dintr-o cifră (zecimală sau de 12 cifre). Uneori, în cadrul aceluiași pachet, este folosit un al 8-lea LED suplimentar. Acesta servește la afișarea punctului zecimal (DP), permițând astfel afișarea dacă doi sau mai mulți indicatori cu 7 segmente sunt conectați împreună pentru a reprezenta numere mai mari de zece.

Fiecare dintre cele șapte segmente de afișaj cu LED-uri este conectat la un pad de rând de contact corespunzător situat direct pe carcasa indicatorului dreptunghiular din plastic. Pinii LED sunt etichetați de la a la g, reprezentând fiecare segment individual. Alte contacte ale segmentelor LED sunt interconectate și formează o ieșire comună.

Deci, polarizarea directă aplicată pinii corespunzători ai segmentelor LED într-o anumită ordine va face ca unele segmente să se aprindă, în timp ce restul rămân întunecate, permițând ca simbolul modelului numeric dorit să fie iluminat pentru a fi afișat pe afișaj. Acest lucru ne permite să reprezentăm fiecare dintre cele zece cifre zecimale de la 0 la 9 pe un afișaj cu 7 segmente.

Pinul comun este de obicei folosit pentru a determina tipul de afișaj cu 7 segmente. Fiecare LED de afișare are două terminale de conectare, dintre care unul se numește „anod”, iar celălalt, în consecință, se numește „catod”. Prin urmare, un indicator LED cu șapte segmente poate avea două tipuri de design de circuit - cu un catod comun (OC) și cu un anod comun (OA).

Diferența dintre aceste două tipuri de afișaje este că, în designul OK, catozii tuturor celor 7 segmente sunt conectați direct unul la altul, iar în proiectarea anodului comun (CA), anozii tuturor celor 7 segmente sunt conectați unul la altul. Ambele scheme funcționează după cum urmează.

  • Catod comun (OC) - catozii interconectați ai tuturor segmentelor LED au un nivel logic de „0” sau sunt conectați la un fir comun. Segmentele individuale sunt iluminate prin aplicarea unui semnal logic înalt sau logic 1 la pinul lor anod printr-un rezistor de limitare pentru a polariza LED-urile individuale.
  • Anod comun (CA) - anozii tuturor segmentelor LED sunt combinați și au un nivel logic de „1”. Segmente individuale ale indicatorului luminos atunci când fiecare catod specific este conectat la masă, „0” logic sau un semnal cu potențial scăzut prin rezistența de limitare corespunzătoare.

În general, indicatorii anodici comuni cu șapte segmente sunt mai populari, deoarece multe circuite logice pot necesita mai mult curent decât poate furniza sursa de alimentare. De asemenea, rețineți că un afișaj cu catod comun nu este o înlocuire directă în circuit pentru un afișaj cu anod comun. Și invers - aceasta este echivalentă cu aprinderea LED-urilor în direcția opusă și, prin urmare, nu va fi emisă nicio lumină.

Deși un contor cu 7 segmente poate fi gândit ca un singur afișaj, acesta constă în continuare din șapte LED-uri individuale într-un singur pachet și, ca atare, aceste LED-uri necesită protecție la supracurent. LED-urile emit lumină numai atunci când sunt polarizate direct, iar cantitatea de lumină pe care o emit este proporțională cu curentul direct. Aceasta înseamnă doar că intensitatea LED-ului crește aproximativ liniar odată cu creșterea curentului. Deci, pentru a evita deteriorarea LED-ului, acest curent direct trebuie monitorizat și limitat la o valoare sigură de un rezistor de limitare extern.

Astfel de indicatori cu șapte segmente sunt numiți statici. Dezavantajul lor semnificativ este numărul mare de știfturi din pachet. Pentru a elimina acest dezavantaj, se folosesc scheme de control dinamic pentru indicatorii cu șapte segmente.

Indicatorul cu șapte segmente a câștigat o mare popularitate în rândul amatorilor de radio, deoarece este convenabil de utilizat și ușor de înțeles.

În această lecție vom afla despre diagramele pentru conectarea indicatoarelor LED cu șapte segmente la microcontrolere și despre cum să controlăm indicatoarele.

Indicatoarele LED cu șapte segmente rămân unul dintre cele mai populare elemente pentru afișarea informațiilor digitale.

Următoarele lor calități contribuie la aceasta.

  • Preț scăzut. În ceea ce privește afișajul, nu este nimic mai ieftin decât indicatoarele digitale LED.
  • Varietate de dimensiuni. Cei mai mici și mai mari indicatori sunt LED. Cunosc indicatoare LED cu înălțimi de cifre de la 2,5 mm la 32 cm.
  • Stralucire in intuneric. În unele aplicații această proprietate este aproape decisivă.
  • Au culori strălucitoare diferite. Există chiar și cele două culori.
  • Curenți de control destul de mici. Indicatoarele LED moderne pot fi conectate la pinii microcontrolerelor fără chei suplimentare.
  • Potrivit pentru condiții dure de funcționare (gamă de temperatură, umiditate ridicată, vibrații, medii agresive etc.). Pentru această calitate, indicatoarele LED nu au egal între alte tipuri de elemente de afișare.
  • Durată de viață nelimitată.

Tipuri de indicatoare LED.

Indicatorul LED cu șapte segmente afișează un caracter folosind șapte LED-uri - segmente de cifre. Al optulea LED luminează punctul zecimal. Deci există 8 segmente într-un indicator cu șapte segmente.

Segmentele sunt desemnate prin litere latine de la „A” la „H”.

Anozii sau catozii fiecărui LED sunt combinați în indicator și formează un fir comun. Prin urmare, există indicatori cu un anod comun și un catod comun.

Indicator LED cu anod comun.

Indicator LED cu catod comun.

Control static cu LED.

Indicatoarele LED trebuie conectate la microcontroler prin rezistențe de limitare a curentului.

Calculul rezistențelor este același ca pentru LED-urile individuale.

R = (Ofertă U - segment U) / Segment I

Pentru acest circuit: I segment = (5 – 1,5) / 1000 = 3,5 mA

Indicatoarele LED moderne strălucesc destul de puternic chiar și la un curent de 1 mA. Pentru un circuit cu anod comun, se vor aprinde segmentele, la pinii de control al cărora microcontrolerul va genera un nivel scăzut.

În schema de conectare a unui indicator cu catod comun, polaritatea sursei de alimentare și a semnalelor de control se modifică.

Se va aprinde segmentul, la pinul de control al căruia va fi generat un nivel ridicat (5 V).

Modul multiplexat pentru controlul indicatorilor LED.

Sunt necesari opt pini pentru a conecta fiecare indicator cu șapte segmente la microcontroler. Dacă există 3-4 indicatori (cifre), atunci sarcina devine practic imposibilă. Pur și simplu nu sunt destui pini pentru microcontroler. În acest caz, indicatoarele pot fi conectate în modul multiplexat, în modul indicație dinamică.

Constatările segmentelor cu același nume ale fiecărui indicator sunt combinate. Acest lucru are ca rezultat o matrice de LED-uri conectate între pinii segmentului și pinii indicatori comuni. Iată un circuit pentru controlul multiplexat al unui indicator cu trei cifre cu un anod comun.

Pentru a conecta trei indicatoare, au fost necesari 11 pini, și nu 24, ca în modul de control static.

Cu afișajul dinamic, doar o cifră este aprinsă în orice moment. Un semnal de nivel înalt (5 V) este furnizat pinului comun al unuia dintre biți, iar semnalele de nivel scăzut sunt trimise către pinii de segment pentru acele segmente care ar trebui să se aprindă în acest bit. După un anumit timp, următoarea descărcare este aprinsă. Un nivel înalt este aplicat pinului său comun, iar semnalele de stare pentru acest bit sunt trimise către pinii de segment. Și așa mai departe pentru toate cifrele într-o buclă nesfârșită. Durata ciclului se numește timp de regenerare a indicatorului. Dacă timpul de regenerare este suficient de scurt, ochiul uman nu va observa comutarea descărcărilor. Se va părea că toate descărcările strălucesc în mod constant. Pentru a evita pâlpâirea indicatorilor, se crede că frecvența ciclului de regenerare ar trebui să fie de cel puțin 70 Hz. Încerc să folosesc cel puțin 100 Hz.

Circuitul de indicare dinamică pentru LED-urile cu catod comun arată astfel.

Polaritatea tuturor semnalelor se schimbă. Acum se aplică un nivel scăzut firului comun al descărcării active, iar un nivel ridicat este aplicat segmentelor care ar trebui să se aprindă.

Calculul elementelor de afișare dinamice ale indicatoarelor cu diode emițătoare de lumină (LED).

Calculul este ceva mai complicat decât pentru modul static. În timpul calculului este necesar să se determine:

  • curent mediu al segmentelor;
  • curent de impuls al segmentelor;
  • rezistența rezistenței segmentului;
  • curent de impuls al bornelor comune ale descărcărilor.

Deoarece Cifrele indicatoare se aprind pe rând, luminozitatea strălucirii determină curentul mediu. Trebuie să-l alegem în funcție de parametrii indicatorului și de luminozitatea necesară. Curentul mediu va determina luminozitatea indicatorului la un nivel corespunzător controlului static cu același curent constant.

Să alegem un curent de segment mediu de 1 mA.

Acum să calculăm curentul de impuls al segmentului. Pentru a furniza curentul mediu necesar, curentul de impuls trebuie să fie de N ori mai mare. Unde N este numărul de cifre indicatoare.

eu segmentez imp. = I segment medie *N

Pentru schema noastră I segment. imp. = 1 * 3 = 3 mA.

Calculăm rezistența rezistențelor care limitează curentul.

R = (Ofertă U - segment U) / Segment I. imp.

R = (5 – 1,5) / 0,003 = 1166 Ohm

Determinăm curenții de impuls ai bornelor comune ale descărcărilor. 8 segmente se pot aprinde în același timp, ceea ce înseamnă că trebuie să înmulțiți curentul de impuls al unui segment cu 8.

I categoria imp. = I segment imp. * 8

Pentru circuitul nostru categoria I imp. = 3 * 8 = 24 mA.

  • Selectăm rezistența rezistenței să fie de 1,1 kOhm;
  • pinii microcontrolerului de control al segmentului trebuie să furnizeze un curent de cel puțin 3 mA;
  • pinii microcontrolerului pentru selectarea cifrei indicator trebuie să furnizeze un curent de cel puțin 24 mA.

Cu astfel de valori curente, indicatorul poate fi conectat direct la pinii plăcii Arduino, fără a utiliza chei suplimentare. Pentru indicatoarele luminoase, astfel de curenți sunt destul de suficiente.

Scheme cu chei suplimentare.

Dacă indicatoarele necesită mai mult curent, atunci este necesar să folosiți taste suplimentare, în special pentru semnalele de selecție a cifrelor. Curentul total de descărcare este de 8 ori curentul unui segment.

Schema de conectare pentru un indicator LED cu un anod comun în modul multiplexat cu comutatoare cu tranzistori pentru selectarea descărcărilor.

Pentru a selecta un bit în acest circuit, este necesar să generați un semnal de nivel scăzut. Cheia corespunzătoare se va deschide și va furniza energie la descărcarea indicatorului.

Schema de conectare pentru un indicator LED cu catod comun în modul multiplexat cu comutatoare cu tranzistori pentru selectarea descărcărilor.

Pentru a selecta un bit în acest circuit, este necesar să generați un semnal de nivel înalt. Cheia corespunzătoare va deschide și închide borna comună de descărcare la masă.

Pot exista circuite în care este necesar să se utilizeze comutatoare cu tranzistori atât pentru segmente, cât și pentru pini de biți comuni. Astfel de scheme sunt ușor de sintetizat din cele două precedente. Toate circuitele prezentate sunt utilizate atunci când indicatorul este alimentat cu o tensiune egală cu sursa de alimentare a microcontrolerului.

Chei pentru indicatoare cu tensiune de alimentare crescută.

Există indicatoare mari în care fiecare segment este format din mai multe LED-uri conectate în serie. Pentru a alimenta astfel de indicatori, este necesară o sursă cu o tensiune mai mare de 5 V. Comutatoarele trebuie să asigure comutarea tensiunii crescute controlată de semnalele de nivel al microcontrolerului (de obicei 5 V).

Circuitul cheilor care conectează semnalele indicatoare la masă rămâne neschimbat. Și comutatoarele de alimentare ar trebui să fie construite conform unei scheme diferite, de exemplu, așa.

În acest circuit, bitul activ este selectat de nivelul ridicat al semnalului de control.

Între comutarea cifrelor indicatoare, toate segmentele ar trebui să fie oprite pentru o perioadă scurtă de timp (1-5 μs). Acest timp este necesar pentru a finaliza procesele tranzitorii de comutare a tastelor.

Din punct de vedere structural, pinii de descărcare pot fi combinați într-un singur caz de indicator cu mai multe cifre sau un indicator cu mai multe cifre poate fi asamblat din indicatoare separate cu o singură cifră. Mai mult, puteți asambla un indicator din LED-uri individuale combinate în segmente. Acest lucru se face de obicei atunci când este necesar să se monteze un indicator foarte mare. Toate schemele de mai sus vor fi valabile pentru astfel de opțiuni.

În lecția următoare, vom conecta un indicator LED cu șapte segmente la placa Arduino și vom scrie o bibliotecă pentru a-l controla.

Categorie: . Puteți să-l marcați.

Sau termometre cu numere mari, este dificil să găsești indicatori potriviți (cum ar fi ALS), iar uneori ai nevoie de o dimensiune care nu este disponibilă în comerț. Pentru a face acest lucru, fiecare element (segment) de numere este adesea asamblat din mai multe LED-uri rotunde obișnuite. Oferim o versiune mai avansată și mai convenabilă a acestei soluții, folosind microcircuitul 74HC595. Proiectul a rezultat în semne de aproape 10 centimetri înălțime, care pot fi vizibile pe distanțe mari. Dacă este necesar, un număr mare de cifre pot fi conectate secvenţial între ele printr-un conector specializat.

Diagramă schematică

Acest circuit este un controler de afișare cu 7 segmente cu o singură cifră, care utilizează un set mare de 5 LED-uri pe segment și un registru de deplasare pentru un control ușor de intrare al microcontrolerului. Fiecare dintre LED-urile folosite în acest proiect are un diametru de 5 mm.

Cipul ULN2003 ajută la amplificarea curentului care curge prin LED-uri. Rezistoarele R1 - R8 sunt limitatoare de curent pentru LED-uri, care sunt conectate în serie în circuit.

O zi buna! După pauza mea lungă și forțată, vom continua să stăpânim cursul de programare Arduino. Într-una dintre lecțiile noastre anterioare, am lucrat deja cu o secvență de LED-uri, acum este timpul să trecem la următoarea etapă de antrenament. Subiectul articolului de astăzi va fi un indicator cu 7 segmente.

Cunoașterea indicatorului cu 7 segmente va consta din două părți. În prima parte, vom trece pe scurt peste componenta teoretică, vom lucra cu hardware-ul și vom scrie programe simple.

Ultima dată când am lucrat cu o secvență de 8 LED-uri, astăzi vor fi și 8 dintre ele (7 benzi LED și 1 punct). Spre deosebire de secvența anterioară, elementele acestui set nu sunt aliniate (unul după altul), ci sunt aranjate într-o anumită ordine. Datorită acestui fapt, folosind o singură componentă, puteți afișa 10 cifre (de la 0 la 9).

O altă diferență semnificativă care diferențiază acest indicator de LED-urile simple. Are un catod comun (sau mai bine zis, două picioare echivalente 3 și 8, pe care este conectat catodul). Este suficient să conectați unul dintre catozi la masă ( GND). Toate elementele indicatoare au anozi individuali.

O mică digresiune. Toate cele de mai sus se aplică indicatoarelor cu 7 segmente cu un catod comun. Cu toate acestea, există indicatori cu un anod comun. Conectarea unor astfel de indicatori are diferențe semnificative, așa că vă rugăm să nu confundați „păcătosul cu neprihănit”. Trebuie să înțelegeți clar ce tip de dispozitiv cu șapte segmente aveți în mâini!

Pe lângă diferențele dintre LED-urile simple și indicatoarele cu 7 segmente, există și caracteristici comune. De exemplu: indicatoarele, cum ar fi LED-urile, pot fi montate într-un rând (secvență) pentru a afișa numere cu două, trei, patru cifre (cifre). Cu toate acestea, nu vă sfătuiesc să vă faceți prea multe griji cu privire la asamblarea seturilor de segmente. La vânzare „lângă” indicatoare cu o singură cifră, se vând și indicatoare cu mai multe cifre.

Sper că nu ați uitat de necesitatea folosirii rezistențelor de limitare a curentului atunci când conectați LED-urile. Același lucru este valabil și pentru indicatoare: fiecare element al indicatorului trebuie să aibă propriul rezistor conectat. 8 elemente (7 + 1) – 8 rezistențe.

Aveam la îndemână o unitate cu șapte segmente marcată 5161AS (catod comun). Pinout:



Diagramă schematică

După cum am spus mai devreme, pentru a porni segmentul „A”, conectăm masă la orice pin comun (3 sau 8) și furnizăm curent 5V pinului 7. Dacă indicatorul are un anod comun, atunci aplicăm 5V anodului și împămânțim la ieșirea segmentului!

Să asamblam un banc de testare. Conectăm firele în ordine, începând cu primul picior, care merge la al 2-lea pin al plăcii Arduino. Conectăm pământul la pinul 8 al indicatorului.

După ce suportul este asamblat, puteți începe să scrieți firmware-ul.

Pentru a verifica indicatorul, să rulăm programul scris. Să selectăm elementul „A” și să-l flash.


Acum, să afișăm numărul 2. Pentru a face acest lucru, să activăm încă câteva elemente.

Pentru a scoate o cifră, trebuie să scrieți n-număr de linii de cod. E greu, nu crezi?

Există o altă cale. Pentru a afișa orice număr pe indicator, acesta trebuie mai întâi reprezentat ca o anumită secvență de biți.

Tabelul de corespondență.

Dacă afișajul are un anod comun, atunci 1 trebuie înlocuit cu 0 și 0 cu 1!

Coloana hex este o reprezentare a unui număr sub formă de octeți (vom vorbi despre asta mai detaliat în a doua parte).

Un număr din sistemul de numere binar se scrie după cum urmează: 0b00000000. 0b- sistem binar. Zerourile înseamnă că toate LED-urile sunt stinse.

La conectare, am folosit pinii de la 2 la 9. Pentru a activa pinul 2, scrieți unul = 0b00000001. Al patrulea bit din dreapta este responsabil pentru punct. Ultimul bit corespunde liniei din mijlocul indicatorului.

Să scriem un exemplu de ieșire a numărului 0.

Pentru a reduce numărul de linii tastate, vom folosi o buclă care vă permite să „iterați” toți cei 8 biți. Variabil Enable_segment se atribuie valoarea bitului citit. După aceasta, ieșirea curentă este setată la modul corespunzător ( prezența sau absența semnalului).

Notă: Funcția bitRead() citește starea bitului specificat și returnează valoarea stării (0 sau 1).bitRead(x, n)unde x este numărul ai cărui biți trebuie citiți; n este numărul bitului a cărui stare trebuie citită. Numerotarea începe cu bitul cel mai puțin semnificativ (cel mai din dreapta) numerotat 0.

Și la sfârșitul primei părți vom scrie un mic contor.

În articolul de astăzi vom vorbi despre indicatorii cu 7 segmente și despre cum să ne „împrietenești” cu Arduino. Există mai multe opțiuni. Cel mai ușor, desigur, este să mergi la și cumpărați un indicator gata făcut cu scut integrat (așa se numește cardul potrivit), dar nu căutăm căi ușoare, așa că vom lua o cale ceva mai dificilă. Începători - nu vă alarmați, acest articol, ca și articolele mele anterioare (Și ) doar pentru tine. Lasă-i pe guru să scrie pentru aceiași guru experimentați, iar eu sunt un începător - scriu pentru începători.

De ce un indicator cu 7 segmente? La urma urmei, există atât de multe ecrane diferite, cu un număr mare de caractere, linii, diverse diagonale și rezoluții, alb-negru și color, dintre care cel mai accesibil costă câțiva dolari... Și aici: „vechiul” unul, revoltător de simplu, dar care necesită un număr mare de pini indicator cu 7 segmente, dar totuși acest „bătrân” are și un avantaj. Cert este că, folosind schițele prezentate aici, puteți reînvia nu numai un indicator cu o înălțime a cifrei de 14 mm, ci și proiecte mai serioase (deși de casă), iar cifrele contorului în acest caz sunt departe de limită. Acest lucru poate să nu fie atât de interesant pentru locuitorii capitalelor, dar populația din Novokatsapetovka sau Nizhnyaya Kedrovka va fi foarte fericită dacă la un club sau la consiliul satului apare un ceas care poate afișa și data și temperatura și vor vorbi despre creator. a acestui ceas de foarte mult timp. Dar astfel de ceasuri sunt subiectul unui articol separat: vizitatorii vor dori - Voi scrie. Tot ce este scris mai sus poate fi considerat o introducere. La fel ca ultimul meu articol, acest articol va fi format din părți, de data aceasta în două. În prima parte vom „gestiona” pur și simplu indicatorul, iar în a doua vom încerca să-l adaptăm pentru ceva cel puțin puțin util. Deci hai sa continuam:

Prima parte. Experimental – educativ

Baza acestui proiect este ARDUINO UNO, care ne este deja bine cunoscut din articolele anterioare. Permiteți-mi să vă reamintesc că cel mai simplu mod de a-l cumpăra este aici: sau aici: , în plus, veți avea nevoie de un indicator cu 4 cifre și 7 segmente. Am, în special, GNQ-5641BG-11. De ce acesta? Da, pur și simplu pentru că acum 5 ani l-am cumpărat din greșeală, mi-a fost prea lene să mă duc să-l schimb, așa că a stat întins în tot acest timp, așteptând în aripi. Cred că oricine are un anod comun va face (și cu un catod comun este posibil, dar va trebui să inversați datele matricei și alte valori ale portului - adică să le schimbați la cele opuse), atâta timp cât nu este prea puternic pentru a nu arde Arduino. În plus, 4 rezistențe limitatoare de curent, de aproximativ 100 ohmi fiecare, și o bucată de cablu (10 cm a fost suficient pentru mine) pentru 12 pini (miezuri) pot fi „smulse” din cel mai lat, ceea ce am făcut. Sau le puteți lipi chiar cu fire separate, nu vor fi probleme. Veți avea nevoie și de știfturi pentru tablă (11 bucăți), deși dacă ești atent te poți descurca fără ele. O schiță a indicatorului poate fi văzută în Figura 1 și diagrama acestuia în Figura 2. Voi reține, de asemenea, că este mai bine să furnizați nu mai mult de 2,1 V fiecărui segment al acestui indicator (limitat de rezistențe de 100 ohmi) și în acest caz nu va consuma mai mult de 20 mA. Dacă se aprinde numărul „8”, consumul nu va depăși 7x20=140 mA, ceea ce este destul de acceptabil pentru ieșirile Arduino. Un cititor curios va pune întrebarea: „Dar 4 descărcări de 140 mA fiecare sunt deja 4x140 = 560 mA, iar acest lucru este deja prea mult!” Voi răspunde - vor mai rămâne 140. Cum? Citește mai departe! Locația pinilor de pe indicator poate fi văzută în Figura 3. Și facem conexiunea conform Tabelului 1.


Orez. 1 - Schiță indicator


Orez. 2 - Circuit indicator


Orez. 3 - Locația pinului

tabelul 1

Pin Arduino Uno

Pin indicator

Notă

Segmentul G

Segmentul F

Segmentul E

Segmentul D

Segmentul C

Segmentul B

Segmentul A

Anodul comun al segmentului nr. 1, se conectează printr-un rezistor de 100 ohmi.

Anodul comun al segmentului nr. 2 se conectează printr-un rezistor de 100 ohmi.

Anodul comun al segmentului nr. 3, se conectează printr-un rezistor de 100 ohmi.

Anodul comun al segmentului nr. 6 se conectează printr-un rezistor de 100 ohmi.



Completam o schiță simplă, care este un simplu „tabel de numărare” de la 0 la 9:


Acum pentru niște clarificări. DDRD este un registru al portului D (DDRB - respectiv, portul B) în spatele cuvântului „înfricoșător” „registrare” există doar o funcție „ascunsă” care indică dacă portul va citi ceva cu pinul său (primire informații) sau vice invers se va putea face ceva acolo apoi scrie (dai informatii). În acest caz, linia DDRD=B11111111; indică faptul că toți pinii portului D sunt ieșiți, adică informatiile vor iesi din ele. Litera „B” înseamnă că un număr binar este scris în registru. Un cititor nerăbdător va întreba imediat: „Este posibilă zecimală!?!” Mă grăbesc să vă asigur că se poate, dar mai multe despre asta un pic mai târziu. Dacă dorim să folosim jumătate din port pentru intrare și jumătate pentru ieșire, l-am putea specifica astfel: DDRD=B11110000; cele arată acele ace care vor oferi informații, iar zerourile arată pe cei care vor primi aceste informații. Principala comoditate a registrului constă și în faptul că nu trebuie să înregistrați toți pinii de 8 ori, adică. salvăm 7 rânduri în program. Acum să ne uităm la următoarea linie:

PORTB=B001000; // setați pinul 11 ​​al portului B la înălțime

PORTB este registrul de date portului B, adică Scriind un număr în el, indicăm ce pin al portului va avea unul și care va avea zero. Pe lângă comentariu, voi spune că dacă iei Arduino Uno în așa fel încât să vezi controlerul și pinii digitali sunt deasupra, intrarea în registru va fi clară, adică. care „zero” (sau „unu”) corespunde cărui pin, adică. zeroul din dreapta al portului B este responsabil pentru al 8-lea pin, iar cel din stânga este pentru al 13-lea (care are un LED încorporat). Pentru portul D, respectiv, cel din dreapta este pentru pinul 0, cel din stânga este pentru pinul 7.
Sper ca dupa explicatii atat de detaliate totul sa fie clar, dar din moment ce este clar imi propun sa revenim la sistemul de numere zecimal cunoscut de noi si indragit inca din copilarie. Și încă ceva - o schiță de 25 de linii poate părea mică, dar pentru un începător este încă oarecum greoaie. O vom reduce.

Să completăm o schiță și mai simplă, același „tabel de numărare”:


Videoclipul 1.
Doar 11 rânduri! Acesta este modul nostru, „modul începătorului”! Vă rugăm să rețineți că în loc de numere binare, numere zecimale sunt scrise în registre. Desigur, pentru numerele zecimale nu sunt necesare litere în față. Cred că n-ar strica să punem toate numerele în tabele.

Tabelul 2. Corespondența caracterului afișat cu datele portului

Anod comun

catod comun

Sistem binar

Sistemul zecimal

Sistem binar

Sistemul zecimal

Tabelul 3. Corespondența cifrei afișate cu datele portului

Anod comun

catod comun

Sistem binar

Sistemul zecimal

Sistem binar

Sistemul zecimal



Atenţie! Datele din tabelele 2 și 3 sunt valabile numai atunci când sunt conectate conform tabelului 1.
Acum să încărcăm o schiță cu un „tabel de numărare” de la 0 la 9999:




Orez. 4 - Masa de numărare

Puteți vedea schița în acțiune laVideoclipul 2.

Există mai multe comentarii în această schiță decât codul în sine. Nu ar trebui să existe întrebări... Pe lângă un lucru, ce fel de „ciclu de pâlpâire” este acesta, ce, de fapt, pâlpâie acolo și de ce? Și există și un fel de variabilă pentru asta...
Și ideea este că segmentele cu același nume din toate cele patru categorii sunt conectate la un moment dat. A1, A2, A3 și A4 au un catod comun; A1, B1,…..G1 anod comun. Deci, aplicând simultan „1234” indicatorului cu 4 cifre, vom obține „8888” și vom fi foarte surprinși de acest lucru. Pentru a preveni acest lucru, trebuie mai întâi să aprindeți „1” în categoria dvs., apoi să o opriți, să aprindeți „2” în a dvs. etc. Dacă faci acest lucru foarte repede, pâlpâirea numerelor se va îmbina, ca cadrele dintr-un film, iar ochiul practic nu o va observa. Și valoarea maximă a variabilei pâlpâitoare în acest caz controlează viteza de schimbare a numerelor de pe indicator. Apropo, datorită acestei „pâlpâiri” consumul maxim de curent este de doar 140 mA, în loc de 560. Acum sugerez să trecem la ceva mai util.

Partea a doua. Cel puțin puțin util

În această parte, vom scoate caractere de pe un computer personal la un indicator cu 7 segmente folosind ARDUINO MEGA. De ce a apărut brusc ideea „schimbării cailor la trecere”? Există două motive: în primul rând, nu am luat niciodată în considerare ARDUINO MEGA în articolele mele; și în al doilea rând, în ARDUINO UNO încă nu mi-am dat seama cum pot schimba dinamic portul COM și portul D. Dar sunt un începător - pot fi iertat. Desigur, puteți achiziționa acest controler aici: . Pentru a implementa planul, a trebuit să iau un fier de lipit și să lipim din nou cablul din partea Arduino și, de asemenea, să scriu o nouă schiță. Puteți vedea cum este lipit cablul în Figura 5. Chestia este că ARDUINO MEGA și ARDUINO UNO au pinouts diferite ale portului, iar Mega are mult mai multe porturi. Corespondența pinilor utilizați poate fi văzută în Tabelul 4.



Orez. 5 - Cablaje noi

Tabelul 4

Port Mega


Atenţie! Acest tabel este valabil doar pentru acest proiect!

De asemenea, trebuie să rețineți că portul C al Arduino Mega „pornește” de la pinul 37 și apoi în ordine descrescătoare, iar portul A începe de la pinul 22 și apoi în ordine crescătoare.



Orez. 6 - Vedere generală



Caracteristici mici de implementare: vom scoate 4 caractere. Caracterele trebuie să fie numere. Dacă ați introdus „1234” și vom vedea „1234”, dacă ați introdus „123456” vom vedea în continuare „1234”, dacă ați introdus „ytsuk”, „fyva1234”, „otiog485909oapom” - nu vom vedea nimic. Dacă ați introdus „pp2345mm”, vom vedea „23”, adică. mic, „foolproofing” încorporat.

Schița în sine:



Puteți vedea cum funcționează acest program laVideoclipul 3.



Recenzie pregătită de Pavel Sergeev