4 ciparu indikators Arduino savienojums. Septiņu segmentu indikators. Izvade uz daļskaitļu indikatoriem, peldošā formātā

Ir parametri, par kuriem ērtāk būtu sniegt objektīvu informāciju, nevis tikai norādi. Piemēram, gaisa temperatūra ārā vai modinātāja laiks. Jā, to visu varētu izdarīt ar kvēlojošām spuldzēm vai gaismas diodēm. Viens grāds – viena degoša LED vai spuldzīte utt. Bet paskaitot šīs ugunspuķes – nu nē! Bet, kā saka, visvairāk vienkāršus risinājumus- visuzticamākais. Tāpēc, ilgi nedomājot, izstrādātāji paņēma vienkāršas LED sloksnes un sakārtoja tās pareizā secībā.

Divdesmitā gadsimta sākumā ar adventi vakuuma caurules parādījās pirmie gāzizlādes indikatori

Ar šādu rādītāju palīdzību varēja secināt digitālā informācija ar arābu cipariem. Iepriekš tieši uz šādām lampām tika veiktas dažādas norādes ierīcēm un citiem elektroniskās ierīces. Pašlaik gāzizlādes elementi gandrīz nekad netiek izmantoti. Bet retro vienmēr ir modē, tāpēc daudzi radio amatieri savāc brīnišķīgus pulksteņus uz gāzizlādes indikatoriem sev un saviem mīļajiem.


Gāzlādes spuldžu trūkums ir tas, ka tās patērē daudz elektrības. Par izturību var strīdēties. Mūsu universitātē mēs joprojām izmantojam frekvenču skaitītājus mūsu laboratoriju telpās. gāzes izlādes indikatori.

Septiņu segmentu rādītāji

Līdz ar gaismas diožu parādīšanos situācija ir krasi mainījusies uz labo pusi. Gaismas diodes paši patērē maza strāva. Ja novietojat tos pareizajā pozīcijā, varat parādīt pilnīgi jebkuru informāciju. Lai izceltu visus arābu ciparus, pietiek tikai ar septiņām gaismas diožu sloksnēm - segmentiem, kas noteikti noteiktā veidā:

Gandrīz visiem šādiem septiņu segmentu rādītājiem tiek pievienots arī astotais segments - punkts, lai būtu iespējams parādīt jebkura parametra veselo skaitli un daļskaitļu vērtību

Teorētiski mēs iegūstam astoņu segmentu indikatoru, bet vecmodīgā veidā to sauc arī par septiņu segmentu indikatoru.

Kāds ir rezultāts? Katra septiņu segmentu indikatora josla tiek izgaismota ar LED vai gaismas diožu grupu. Rezultātā, izceļot noteiktus segmentus, varam attēlot ciparus no 0 līdz 9, kā arī burtus un simbolus.

Veidi un apzīmējums diagrammā

Ir viencipara, divciparu, trīsciparu un četrciparu septiņu segmentu rādītāji. Es nekad neesmu redzējis vairāk par četrām kategorijām.

Diagrammās septiņu segmentu indikators izskatās apmēram šādi:

Faktiski katram septiņu segmentu indikatoram papildus galvenajiem spailēm ir arī kopīgs terminālis ar kopēju anodu (OA) vai kopīgu katodu (OC)

Septiņu segmentu indikatora iekšējā ķēde ar kopēju anodu izskatīsies šādi:


un ar tādu kopīgu katodu kā šis:


Ja mums ir septiņu segmentu indikators ar kopējo anodu (OA), tad ķēdē mums ir jāpiegādā šai tapai “plus” jauda, ​​un, ja ar kopējo katodu (OC), tad “mīnus” vai zemējums.

Kā pārbaudīt septiņu segmentu indikatoru

Mums ir šādi rādītāji:


Lai pārbaudītu mūsdienīgu septiņu segmentu indikatoru, mums ir nepieciešams tikai multimetrs ar diodes pārbaudes funkciju. Sākumā mēs meklējam vispārīgu secinājumu - tas var būt gan OA, gan OK. Šeit tikai nejauši. Tad mēs pārbaudām atlikušo indikatora segmentu veiktspēju saskaņā ar iepriekš minētajām diagrammām.

Kā redzat zemāk esošajā fotoattēlā, testējamais segments iedegas. Tādā pašā veidā pārbaudām citus segmentus. Ja visi segmenti ir izgaismoti, tad šāds indikators ir neskarts un to var izmantot jūsu izstrādē.


Dažreiz ar multimetra spriegumu nepietiek, lai pārbaudītu segmentu. Tāpēc mēs ņemam barošanas avotu un iestatām to uz 5 voltiem. Lai ierobežotu strāvu caur segmentu, mēs pārbaudām caur 1-2 kiloomu rezistoru.


Tādā pašā veidā mēs pārbaudām indikatoru no Ķīnas uztvērēja


Ķēdēs septiņu segmentu indikatori ir savienoti ar rezistoriem pie katras tapas

Mūsu mūsdienu pasaule septiņu segmentu indikatori tiek aizstāti ar šķidro kristālu indikatoriem, kas spēj attēlot pilnīgi jebkuru informāciju

bet, lai tos izmantotu, ir nepieciešamas noteiktas prasmes šādu ierīču shēmas projektēšanā. Tāpēc septiņu segmentu indikatori tiek izmantoti arī šodien, pateicoties to zemajām izmaksām un lietošanas vienkāršībai.

Septiņu segmentu LED indikatori ir ļoti populāri digitālo vērtību displeja ierīču vidū un tiek izmantoti mikroviļņu krāsniņu priekšējos paneļos, veļas mašīnas, digitālie pulksteņi, skaitītāji, taimeri utt. Salīdzinot ar LCD indikatoriem, LED indikatoru segmenti spīd spilgti un ir redzami lielā attālumā un plašā skata leņķī. Lai mikrokontrolleram pievienotu septiņu segmentu 4 bitu indikatoru, būs nepieciešamas vismaz 12 I/O līnijas. Tāpēc ir gandrīz neiespējami izmantot šos indikatorus ar mikrokontrolleriem ar nelielu skaitu tapu, piemēram, sērijas no uzņēmuma. Protams, jūs varat izmantot dažādas metodes multipleksēšana (kuras aprakstu var atrast mājaslapas sadaļā “Shēmas”), taču arī šajā gadījumā katrai metodei ir noteikti ierobežojumi, turklāt bieži tiek izmantoti sarežģīti programmatūras algoritmi.

Apskatīsim indikatora pieslēgšanas metodi caur SPI interfeisu, kam būs nepieciešamas tikai 3 mikrokontrollera I/O līnijas. Tajā pašā laikā saglabāsies visu indikatoru segmentu kontrole.

Lai savienotu 4 bitu indikatoru ar mikrokontrolleru, izmantojot SPI kopni, tiek izmantota specializēta uzņēmuma ražota draivera mikroshēma. Mikroshēma spēj vadīt astoņus septiņu segmentu indikatorus ar kopēju katodu un ietver BCD dekodētāju, segmentu draiverus, multipleksēšanas ķēdi un statisko RAM ciparu vērtību glabāšanai.

Strāva caur indikatora segmentiem tiek iestatīta, izmantojot tikai vienu ārējo rezistoru. Turklāt mikroshēma atbalsta indikatora spilgtuma kontroli (16 spilgtuma līmeņi), izmantojot iebūvēto PWM.

Rakstā aplūkotā shēma ir displeja moduļa shēma ar SPI interfeisu, ko var izmantot radioamatieru dizainā. Un mūs vairāk interesē nevis pati ķēde, bet gan darbs ar mikroshēmu, izmantojot SPI interfeisu. +5 V moduļa strāva tiek piegādāta Vcc kontaktam, signāla līnijas MOSI, CLK un CS ir paredzēti saziņai starp galveno ierīci (mikrokontrolleri) un pakārtoto ierīci (MAX7219 mikroshēmu).

Mikroshēma tiek izmantota standarta savienojumā; vienīgie nepieciešamie ārējie komponenti ir rezistors, kas regulē strāvu caur segmentiem, aizsargdiode barošanas avotam un filtra kondensators barošanas avotam.

Dati tiek pārsūtīti uz mikroshēmu 16 bitu paketēs (divos baitos), kuras tiek ievietotas iebūvētajā 16 bitu maiņu reģistrā uz katras CLK signāla augošās malas. Mēs apzīmējam 16 bitu paketi kā D0-D15, kur biti D0-D7 satur datus, D8-D11 satur reģistra adresi, bitiem D12-D15 nav nozīmes. Bits D15 ir visnozīmīgākais bits un pirmais saņemtais bits. Lai gan mikroshēma spēj kontrolēt astoņus indikatorus, mēs apsvērsim iespēju strādāt tikai ar četriem. Tos kontrolē izejas DIG0 - DIG3, kas atrodas secīgi no labās uz kreiso pusi, tām atbilstošās 4 bitu adreses (D8-D11) ir 0x01, 0x02, 0x03 un 0x04 (heksadecimālais formāts). Ciparu reģistrs tiek ieviests, izmantojot mikroshēmas RAM ar 8x8 organizāciju, un tas ir tieši adresējams, lai katru displeja atsevišķu ciparu varētu atjaunināt jebkurā laikā. Nākamajā tabulā ir parādīti MAX7219 mikroshēmas adresējamie cipari un vadības reģistri.

Reģistrēties

Adrese

HEX vērtība

Nav operācijas

Dekodēšanas režīms

Rādītāju skaits

Izslēgt

Indikatora pārbaude

Kontroles reģistri

MAX1792 mikroshēmai ir 5 vadības reģistri: dekodēšanas režīms (Decode-Mode), indikatora spilgtuma kontrole (Intensity), pievienoto indikatoru skaita reģistrs (Scan Limit), ieslēgšanas/izslēgšanas vadība (Shutdown), testa režīms (Display Test).

Mikroshēmas ieslēgšana un izslēgšana

Kad mikroshēmai tiek pieslēgta strāva, visi reģistri tiek atiestatīti un pāriet uz izslēgšanas režīmu. Šajā režīmā displejs ir izslēgts. Lai pārslēgtos uz normālu darbības režīmu, ir jāiestata izslēgšanas reģistra bits D0 (adrese 0Сh). Šo bitu var notīrīt jebkurā laikā, lai piespiestu draiveri izslēgties, atstājot visu reģistru saturu nemainīgu. Šo režīmu var izmantot enerģijas taupīšanai vai trauksmes režīmā, mirgojot indikatoram (secīga izslēgšanas režīma aktivizēšana un deaktivizēšana).

Mikroshēma tiek pārslēgta uz Shutdown režīmu, secīgi pārsūtot adresi (0Сh) un datus (00h), un pārsūtot 0Ch (adrese) un pēc tam 01h (dati) atgriežas normālā darbībā.

Dekodēšanas režīms

Izmantojot dekodēšanas režīma izvēles reģistru (adrese 09h), varat izmantot BCD koda B dekodēšanu (rādīt rakstzīmes 0-9, E, H, L, P, -) vai bez dekodēšanas katram ciparam. Katrs bits reģistrā atbilst vienam ciparam, loģiskā iestatīšana atbilst dekodera ieslēgšanai šim bitam, iestatījums 0 nozīmē, ka dekodētājs ir atspējots. Ja tiek izmantots BCD dekoderis, tiek ņemts vērā tikai zemākais datu nibble ciparu reģistros (D3-D0), biti D4-D6 tiek ignorēti, bits D7 nav atkarīgs no BCD dekodera un ir atbildīgs par ieslēgšanu. indikatora decimālzīme, ja D7 = 1. Piemēram, ja baiti 02h un 05h tiek nosūtīti secīgi, indikatorā DIG1 (otrais cipars no labās puses) tiks parādīts skaitlis 5. Līdzīgi, sūtot 01h un 89h, indikators DIG0 parādīs skaitli 9 ar komata zīmi. . Zemāk redzamā tabula parāda pilns saraksts rakstzīmes, kas tiek parādītas, izmantojot mikroshēmas BCD dekodētāju.

Simbols

Dati reģistros

Iespējotie segmenti = 1

Tukšs

*Decimālzīmi nosaka bits D7=1

Ja BCD dekodētājs ir izslēgts no darbības, datu biti D7-D0 atbilst indikatora segmentu līnijām (A-G un DP).

Indikatora spilgtuma kontrole

Mikroshēma ļauj programmatiski kontrolēt indikatoru spilgtumu, izmantojot iebūvēto PWM. PWM izvadi kontrolē Intensity reģistra (adrese 0Ah) zemas kārtas nibble (D3-D0), kas ļauj iestatīt vienu no 16 spilgtuma līmeņiem. Kad visi nibble biti ir iestatīti uz 1, tiek atlasīts indikatora maksimālais spilgtums.

Pievienoto indikatoru skaits

Scan-Limit reģistrs (adrese 0Bh) nosaka mikroshēmas apkalpoto bitu skaita vērtību (1 ... 8). Mūsu 4 bitu versijai reģistrā jāieraksta vērtība 03h.

Indikatora pārbaude

Par šo režīmu atbildīgais reģistrs atrodas adresē 0Fh. Iestatot reģistrā D0 bitu, lietotājs ieslēdz visus indikatoru segmentus, savukārt vadības un datu reģistru saturs nemainās. Lai atspējotu displeja pārbaudes režīmu, bitam D0 jābūt 0.

Interfeiss ar mikrokontrolleru

Indikatora moduli var savienot ar jebkuru mikrokontrolleru, kuram ir trīs brīvas I/O līnijas. Ja mikrokontrolleram ir iebūvēts SPI aparatūras modulis, tad indikatora moduli var pieslēgt kā pakārtotu ierīci kopnē. Šajā gadījumā mikrokontrollera SPI signāla līnijas SDO (serial data out), SCLK (serial clock) un SS (slave select) var tieši savienot ar MAX7219 mikroshēmas (moduļa) MOSI, CLK un CS tapām, CS signāls ir aktīvs zemā līmenī.

Ja mikrokontrolleram nav aparatūras SPI, interfeisu var organizēt programmatūrā. Saziņa ar MAX7219 sākas, pavelkot un turot zemu CS līniju, pēc tam secīgi nosūtot 16 bitus datu (MSB vispirms) MOSI līnijā CLK signāla augošajā malā. Pabeidzot pārraidi, CS līnija atkal kļūst augsta.

Lejupielādes sadaļā lietotāji var lejupielādēt testa programmas avota tekstu un programmaparatūras HEX failu, kas ievieš parasto 4 bitu skaitītāju ar vērtību parādīšanu indikatora modulī ar SPI interfeisu. Izmantotais mikrokontrolleris ir programmatūrā realizēts interfeiss, indikatora moduļa signālu līnijas CS, MOSI un CLK ir savienotas attiecīgi ar pieslēgvietām GP0, GP1 un GP2. MikroC kompilators tiek izmantots PIC mikrokontrolleri(mikroElektronika

Lai komentētu vietnes materiālus un saņemtu pilna piekļuve uz mūsu forumu, kas jums nepieciešams reģistrēties .


Savienojuma shēma viencipara septiņu segmentu indikatoram
Savienojuma shēma daudzciparu septiņu segmentu indikatoram

Digitālās informācijas displeja ierīce. Šī ir vienkāršākā indikatora ieviešana, kas var attēlot arābu ciparus. Burtu attēlošanai tiek izmantoti sarežģītāki vairāku segmentu un matricu indikatori.

Kā norāda nosaukums, tas sastāv no septiņiem displeja elementiem (segmentiem), kas ieslēdzas un izslēdzas atsevišķi. Iekļaujot tos dažādās kombinācijās, tos var izmantot, lai izveidotu vienkāršotus arābu ciparu attēlus.
Segmenti ir apzīmēti ar burtiem A līdz G; astotais segments - decimālzīme (decimālpunkts, DP), paredzēts daļskaitļu attēlošanai.
Reizēm uz septiņu segmentu indikatora tiek parādīti burti.

Tie ir dažādās krāsās, parasti baltā, sarkanā, zaļā, dzeltenā un zilā krāsā. Turklāt tie var būt dažāda izmēra.

Arī LED indikators var būt viencipara (kā attēlā iepriekš) vai daudzciparu. Pamatā praksē tiek izmantoti viena, divu, trīs un četru ciparu LED indikatori:

Papildus desmit cipariem septiņu segmentu indikatori spēj attēlot burtus. Taču dažiem burtiem ir intuitīvs septiņu segmentu attēlojums.
Latīņu valodā: lielie A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, mazie burti a, b, c, d, e, g , h, i, n, o, q, r, t, u.
Kirilicā: A, B, V, G, g, E, i, N, O, o, P, p, R, S, s, U, Ch, Y (divi cipari), b, E/Z.
Tāpēc septiņu segmentu indikatori tiek izmantoti tikai vienkāršu ziņojumu parādīšanai.

Kopumā septiņu segmentu LED indikators var parādīt 128 rakstzīmes:

Tipiskam LED indikatoram ir deviņi vadi: viens iet uz visu segmentu katodiem, bet pārējie astoņi - uz katra segmenta anodu. Šo shēmu sauc "kopējā katoda ķēde", ir arī shēmas ar kopējo anodu(tad ir otrādi). Bieži vien dažādos pamatnes galos tiek izgatavoti nevis viens, bet divi kopīgi spailes - tas vienkāršo elektroinstalāciju, nepalielinot izmērus. Ir arī tā sauktie “universālie”, bet es personīgi ar tādiem neesmu saskāries. Turklāt ir indikatori ar iebūvētu maiņu reģistru, kas ievērojami samazina iesaistīto mikrokontrollera porta tapu skaitu, taču tie ir daudz dārgāki un tiek reti izmantoti praksē. Un tā kā neizmērojamību nevar aptvert, tad šādus rādītājus pagaidām neņemsim vērā (bet ir arī rādītāji ar daudz lielāku segmentu skaitu, matricas).

Daudzciparu LED indikatori bieži darbojas pēc dinamiska principa: visu ciparu viena nosaukuma segmentu izejas ir savienotas kopā. Lai parādītu informāciju par šādu indikatoru, vadības mikroshēmai cikliski jāpiegādā strāva uz visu ciparu kopējiem spailēm, savukārt strāva tiek piegādāta segmenta spailēm atkarībā no tā, vai konkrētais segments ir iedegts noteiktā ciparā.

Viencipara septiņu segmentu indikatora pievienošana mikrokontrollerim

Zemāk redzamā diagramma parāda, kā ir pievienots viencipara septiņu segmentu indikators uz mikrokontrolleru.
Jāņem vērā, ka, ja indikators ar KOPĒJAIS KATODS, tad tā kopējā izeja ir pievienota "zeme", un segmenti tiek aizdedzināti, barojot loģiskā vienība uz porta izvadi.
Ja indikators ir KOPĒJAIS ANODS, tad tas tiek piegādāts tā kopējam vadam "plus" spriegumu, un segmenti tiek aizdedzināti, pārslēdzot porta izeju stāvoklī loģiskā nulle.

Indikāciju viencipara LED indikatorā veic, piemērojot bināro kodu attiecīgā loģiskā līmeņa atbilstošā cipara mikrokontrollera porta tapām (indikatoriem ar OK - loģiskie, indikatoriem ar OA - loģiskās nulles).

Strāvas ierobežošanas rezistori var būt vai var nebūt diagrammā. Tas viss ir atkarīgs no barošanas sprieguma, kas tiek piegādāts indikatoram un tehniskajiem parametriem rādītājiem. Ja, piemēram, segmentiem pievadītais spriegums ir 5 volti un tie ir paredzēti 2 voltu darba spriegumam, tad jāuzstāda strāvu ierobežojoši rezistori (lai ierobežotu strāvu caur tiem palielinātam barošanas spriegumam un nedegtu ne tikai indikators, bet arī mikrokontrollera ports).
Ir ļoti viegli aprēķināt strāvu ierobežojošo rezistoru vērtību, izmantojot vectēva formulu Ohm.
Piemēram, indikatora raksturlielumi ir šādi (ņemti no datu lapas):
— darba spriegums — 2 volti
— darba strāva — 10 mA (=0,01 A)
— barošanas spriegums 5 volti
Aprēķinu formula:
R = U/I (visām vērtībām šajā formulā jābūt omos, voltos un ampēros)
R= (barošanas spriegums - darba spriegums)/darba strāva
R = (5-2)/0,01 = 300 omi

Savienojuma shēma daudzciparu septiņu segmentu LED indikatoram Būtībā tas pats, kas pieslēdzot viencipara indikatoru. Vienīgais, ka indikatoru katodos (anodos) ir pievienoti vadības tranzistori:

Diagrammā tas nav parādīts, bet starp tranzistoru pamatiem un mikrokontrollera porta tapām ir jāiekļauj rezistori, kuru pretestība ir atkarīga no tranzistora veida (rezistoru vērtības tiek aprēķinātas, bet varat arī mēģināt izmantot rezistorus ar nominālo vērtību 5-10 kOhm).

Indikācija pēc izlādes tiek veikta dinamiski:
— PB pieslēgvietas izejās 1. ciparam tiek iestatīts atbilstošā cipara binārais kods, pēc tam pirmā cipara vadības tranzistoram tiek piemērots loģiskais līmenis.
— PB porta izejās 2. ciparam tiek iestatīts atbilstošā cipara binārais kods, pēc tam otrā cipara vadības tranzistoram tiek piemērots loģiskais līmenis.
— PB porta izejās 3. ciparam tiek iestatīts atbilstošā cipara binārais kods, pēc tam trešā cipara vadības tranzistoram tiek piemērots loģiskais līmenis.
- tātad aplī
Šajā gadījumā ir jāņem vērā:
— indikatoriem ar labi tiek izmantota vadības tranzistora struktūra NPN(kontrolē loģiskā vienība)
- indikatoram ar OA- struktūras tranzistors PNP(kontrolē loģiskā nulle)

Kopš radiotehnikas un elektronikas parādīšanās Atsauksmes elektronisko ierīci un personu pavadīja dažādas signālgaismas, pogas, pārslēgšanas slēdži, zvani (mikroviļņu gatavības signāls - ding!). Dažas elektroniskās ierīces sniedz minimālu informāciju, jo vairāk būtu lieki. Piemēram, kvēlojoša gaismas diode uz jūsu ķīniešu tālruņa lādētāja norāda, ka lādētājs ir pievienots un saņem strāvu. Bet ir arī parametri, par kuriem ērtāk būtu sniegt objektīvu informāciju. Piemēram, gaisa temperatūra ārā vai modinātāja laiks. Jā, to visu varētu izdarīt arī ar kvēlojošām spuldzēm vai gaismas diodēm. Viens grāds - viena degoša diode vai spuldze. Cik grādu ir, tik daudz indikatoru ir ieslēgti. Šo ugunspuķu skaitīšana var būt ierasta lieta, bet atkal, cik no šīm lampiņām būs nepieciešams, lai parādītu temperatūru ar grāda desmitdaļas precizitāti? Un vispār, kādu platību šīs gaismas diodes un spuldzes aizņems elektroniskajā ierīcē?

Praktiskām septiņu segmentu displeja ierīcēm jābūt vismaz astoņām ārējām pieslēguma spailēm; septiņi no tiem nodrošina piekļuvi atsevišķiem fotoelementu segmentiem, bet astotais nodrošina kopīgu savienojumu ar visiem segmentiem. Pirmajā gadījumā ierīce ir pazīstama kā septiņu segmentu kopējā anoda displejs; pēdējā gadījumā ierīce ir pazīstama kā septiņu segmentu kopējā katoda displejs.

Lai darbinātu parastu anoda displeju, draiverim ir jābūt aktīvai-zemai izejai, kurā katra segmenta piedziņa parasti ir augsta, bet zema, lai ieslēgtu segmentu. Lai vadītu kopēju katoda displeju, vadītājam ir jābūt aktīvai aktīvai izvadei.

Un divdesmitā gadsimta sākumā, parādoties elektroniskajām lampām, parādījās pirmie gāzizlādes indikatori.

Ar šādu indikatoru palīdzību bija iespējams attēlot digitālo informāciju ar arābu cipariem. Iepriekš tieši šīs lampas tika izmantotas dažādu indikāciju izgatavošanai instrumentiem un citām elektroniskām ierīcēm. Pašlaik gāzizlādes elementi gandrīz nekad netiek izmantoti. Taču retro vienmēr ir modē, tāpēc daudzi radioamatieri kolekcionē brīnišķīgus gāzizlādes pulksteņus sev un saviem mīļajiem.

Pilns skaidrojums par to ir nedaudz sarežģītāks, kā norādīts tālāk. Ja spriegums ir nulle, segments ir faktiski neredzams. Tomēr, ja ieejas spriegums ir ievērojami pozitīvs vai negatīvs, segments kļūst efektīvi redzams, bet, ja piedziņas spriegums tiek uzturēts vairāk nekā dažus simtus milisekundes, segments var kļūt redzams pastāvīgi un tam vairs nav nozīmes.

Šādos apstākļos segments ir atspējots. Tādējādi segments ir iekļauts saskaņā ar šiem nosacījumiem. Šis piedziņas veids ir plaši pazīstams kā sprieguma dubultošanas "tilta piedziņas" sistēma. Shēmas darbību secība ir šāda. Iepriekš aprakstītajai vienkāršajai kaskādes sistēmai ir nopietns defekts, jo displejs faktiskā skaitīšanas periodā kļūst izplūdis, kļūstot stabils un lasāms tikai tad, kad katra skaitīšana ir pabeigta un ievades vārti ir aizvērti. Šāda veida "izplūdušais un lasāmais" displejs ir ļoti kaitinoši skatīties.

Gāzizlādes spuldžu trūkumi - tās ēd daudz. Par izturību var strīdēties. Mūsu augstskolā joprojām izmantojam frekvences mērītājus uz gāzizlādes laboratoriju telpās.

Līdz ar gaismas diožu parādīšanos situācija ir krasi mainījusies. Gaismas diodes paši patērē nelielu strāvas daudzumu. Ja novietojat tos pareizajā pozīcijā, varat parādīt pilnīgi jebkuru informāciju. Lai izceltu visus arābu ciparus, pietika ar kaut ko septiņi (tātad nosaukums septiņu segmentu indikators) kvēlojošas LED sloksnes, kas sakārtotas noteiktā veidā:

13. attēlā parādīta uzlabota frekvences skaitītāja shēma, kas izmanto displeja bloķēšanu, lai novērstu iepriekš minēto defektu. Šī shēma darbojas šādi. Tajā pašā laikā atveras ievades vārti, un skaitītāji sāk summēt ieejas signāla impulsus. Šis skaitītājs turpinās tieši vienu sekundi, un šajā periodā četru bitu fiksatori neļauj skaitītāja izvadei sasniegt displeja draiverus; displejs šajā periodā paliek stabils.

Pēc dažām sekundēm secība tiek atkārtota vēlreiz, skaitītāji pārstartējas un pēc tam vienu sekundi skaita ievades frekvences impulsus, kuru laikā displejs nepārtraukti rāda iepriekšējo skaitīšanu utt.

Gandrīz visi šādi septiņu segmentu indikatori pievieno arī astoto segmentu - punktu, lai būtu iespējams parādīt jebkura parametra veselo skaitli un daļskaitļu vērtību

Tādējādi shēma 13. attēlā rada stabilu displeju, kas tiek atjaunināts reizi sekundē; praksē šī un 12. attēlā redzamās diagrammas faktisko skaitīšanas periodu var iestatīt kā jebkurā desmitgadē ar vairākām vai daļējām sekundēm, ja izvades displejs ir atbilstoši mērogots.

Ņemiet vērā, ka trīsciparu frekvenču skaitītājs var norādīt maksimālās frekvences 999 Hz, ja tiek izmantota vienas sekundes laika bāze, 99 kHz, ja tiek izmantota 100 ms laika bāze, 9 kHz, ja tiek izmantota 10 ms laika bāze, un 999 kHz, izmantojot 1 ms laika bāze.

Teorētiski tas izrādās astoņu segmentu rādītājs, bet vecmodīgi to sauc arī par septiņu segmentu, un tajā nav nekādas kļūdas.

Īsāk sakot, septiņu segmentu indikators ir gaismas diodes, kas atrodas viena pret otru noteiktā secībā un ir ievietotas vienā korpusā.

Šo metodi var saprast, izmantojot 14. un 15. attēlu. Šie slēdži ir savienoti kopā un nodrošina faktisko multipleksora darbību, un tie jāuzskata par ātrdarbīgiem elektroniskiem slēdžiem, kurus atkārtoti pārslēdz 1., 2. pozīcijā un darbību secībā. ķēde ir šāda. Vispirms pieņemsim, ka slēdzis ir pozīcijā.

Dažus mirkļus vēlāk slēdzis pārvietojas uz 3. pozīciju, liekot displejā 3 pēc dažām minūtēm parādīt skaitli, viss cikls sāk atkārtoties un tā tālāk, pievienojot bezgalību. Praksē aptuveni 50 no šiem cikliem notiek katru sekundi, tāpēc acs neredz displejus, kas atsevišķi ieslēdzas un izslēdzas, bet uztver tos kā šķietami vienmērīgu displeju, kas parāda skaitli 327 vai kādu citu datu segmenta diktētu skaitli.

Ja ņemam vērā viena septiņu segmentu indikatora diagrammu, tā izskatās šādi:

Kā redzam, septiņu segmentu indikators var būt vai nu ar kopējais anods (CA), tā ar kopējais katods (OC). Aptuveni runājot, ja mums ir septiņi segmenti ar kopējo anodu (OA), tad ķēdē uz šīs tapas vajadzētu piekārt “plusu”, un, ja ar kopējo katodu (OC), tad “mīnusu” vai zemējumu. . Kurai tapai mēs pieliekam spriegumu, šī gaismas diode iedegsies. Pierādīsim to visu praksē.

Praktiskajos multipleksoros maksimālā displeja strāva ir diezgan augsta, lai nodrošinātu pietiekamu displeja spilgtumu. attēlā. 15. attēlā parādīts uzlabotas multipleksēšanas metodes piemērs, ko izmanto trīsciparu frekvenču skaitītājam. Šai metodei ir divas galvenās priekšrocības.

Ja šie termināļi ir aktīvi, tiem būs šādas īpašības. att. 18. un 19. 18. attēlā parādīts pulsāciju slāpēšanas paņēmiens, kas tiek izmantots, lai nodrošinātu vadošo nulles slāpēšanu četrciparu displejā, kas nolasa daudzumu.

Mūsu noliktavā ir šādi LED indikatori:

Kā redzam, septiņu segmentu ierīces var būt viena un vairāku bitu, tas ir, divu, trīs, četru septiņu segmentu ierīces vienā gadījumā. Lai pārbaudītu modernu septiņu segmentu ierīci, mums ir nepieciešams tikai multimetrs ar diodes pārbaudes funkciju. Mēs meklējam vispārīgu secinājumu - tas var būt gan OA, gan OK - pēc nejaušības principa, un tad mēs skatāmies uz visu rādītāja segmentu darbību. Mēs pārbaudām trīs bitu septiņu segmentu:

Tātad displejs parāda. Būtībā tās ir viegli lietojamas, ieslēdzas un iedegas. Tie var būt kaitinoši, jo tiem ir sava veida polaritāte, kas nozīmē, ka tie darbosies tikai tad, ja tos pareizi pievienosit. Ja atceļat pozitīvo un negatīvo spriegumu, tie vispār neiedegas.

Lai cik tas ir kaitinoši, tas ir arī diezgan noderīgi. Otrs vads ir katods. Katods ir savienots ar zemi. Būtībā tas nonāks pie tā. Parastajam katodam pievadiet strāvu tapām, kuras vēlaties ieslēgt. Multipleksēšana. Šim nolūkam ir pat displeja kontrolleri, ja nevēlaties uztraukties par programmatūras pārslēgšanu.

Hmm, viens segments aizdegās, tāpēc mēs pārbaudām pārējos segmentus tādā pašā veidā.

Dažreiz karikatūras spriegums nav pietiekams, lai pārbaudītu indikatora segmentus. Tāpēc mēs ņemam barošanas avotu, iestatām to uz 5 voltiem, pievienojam 1-2 kiloomu rezistoru vienai barošanas avota spailei un sākam pārbaudīt septiņu segmentu bloku.

7 segmentu displeja vadība

Tātad, ja jums ir 4 ciparu, multipleksēts 7 segments, kopīgs anods. Pirmkārt, mums ir jāzina, kāda veida displejs mums ir, jo ir divas iespējamās formas: kopējais katods un kopējais anods. Lietas, kas jums būs nepieciešamas šai apmācībai. Pa kreisi: 7 segmentu displeja grafisks skats, kas parāda vienu vispārīgu iekšējo vadu un tapu atrašanās vietu izkārtojumu.

Šajā brīdī pievērsiet uzmanību sākotnējai izvadei, jo tā būs nepieciešama vēlāk, ielādējot programmu. Ja displejs būtu parasts katods, mēs to atceltu. Raksta apakšā ir foto shēmas, kas atrodas uz mana prototipa plates. Mēs piedāvājam arī bibliotēku, lai kontrolētu vairāk nekā vienu displeju.

Kāpēc mums ir nepieciešams rezistors? Kad LED tiek pieslēgts spriegums, ieslēdzot, tas sāk strauji patērēt strāvu. Tāpēc šajā brīdī tas var izdegt. Lai ierobežotu strāvu, virknē ar LED ir savienots rezistors. Vairāk varat lasīt šajā rakstā.

Hex skaitīšana vienā 7 segmentu displejā

Negatīvā puse ir tāda, ka tie ir resursietilpīgi. Šim konkrētajam displejam ir četri cipari un divi kolu displeji. Tomēr ierīce arī nodrošina digitālā vadība displeja spilgtumu, izmantojot iekšējo platjoslas modulatoru. Šādos gadījumos izvadi var veikt vairākos 7 segmentu displejos.

Tas saglabā kontaktus uz korpusa un pēc tam uz vadības ierīces. Attiecīgi tiek minēti parastā anoda vai parastā katoda displeji. Izvadi, kas atbilst segmentam vai decimālzīmei, vislabāk var iegūt no datu lapas, lai parādītu. 7 segmentu displejs, kas ir paredzēts parastajiem 10–20 mA, joprojām iedegsies, kaut arī vāji. Bet tas neprasa kontaktpersonu piešķiršanu. Tālāk norādītais šī segmenta sadalījums ir balstīts uz.

Tādā pašā veidā mēs pārbaudām četrciparu septiņu segmentu no Ķīnas radio

Es domāju, ka ar to nevajadzētu būt īpašām grūtībām. Ķēdēs septiņu segmentu ķēdes ir savienotas ar rezistoriem pie katras tapas. Tas ir saistīts arī ar faktu, ka gaismas diodes, pieliekot tām spriegumu, izmisīgi patērē strāvu un izdeg.

Ja tiek izmantots cits mērķis, tas principā ir iespējams, taču tas ir jāņem vērā programmējot. Atsevišķu ciparu pārveidošanu par konkrētu izvades modeli var veikt, izmantojot kaut ko sauc. Visiem pārējiem segmentiem jābūt tumšiem. Ja šī izvēles rūtiņa ir atzīmēta visiem cipariem, tiek parādīta šāda tabula.

IN testa programma cipari no 0 līdz 9 tiek parādīti secīgi 7 segmentu displejā. Izvades numurs tiek saglabāts reģistra skaitītājā un cikla laikā tiek palielināts par 1. Ja reģistrs sasniedz vērtību 10, tas atkal tiek atiestatīts uz 0. Kad tas ir pacelts, notiek gaidīšanas cilpa, kas nodrošina, ka nākamajā laidienā ir pagājis noteikts laiks. Parasti jūs neveiktu tik ilgus gaidīšanas ciklus, taču šeit nav runa par gaidīšanu, bet gan par 7 segmentu displeja kontroli. Taimera izmantošana šim nolūkam ir pārāk liela piepūle.

Mūsu mūsdienu pasaulē septiņu segmentu ierīces jau tiek aizstātas ar LCD indikatoriem, kas spēj attēlot pavisam citu informāciju

bet, lai tos izmantotu, ir nepieciešamas noteiktas prasmes šādu ierīču shēmas projektēšanā. Pagaidām nav nekā vienkāršāka vai lētāka par septiņu segmentu LED indikatoriem.

Tomēr faktiskā problēma un līdz ar to arī šī raksta interesantā daļa rodas tieši pēc etiķetes cilpas. Lūdzu, ņemiet vērā, ka skaitītāja vērtība ir jādubulto. Tas ir tieši saistīts ar faktu, ka zibatmiņa ir vārdu, nevis baitu ziņā. Otrais piemērs šajā lapā to dara savādāk. Tas parāda, kā, izmantojot citu tabulas ierakstu, montētājs var novērst aizpildīšanas baitu ģenerēšanu. Interesanti ir arī tas, ka aprēķinam ir nepieciešams reģistrs, kurā ir vērtība 0.

Tāpēc šī konstante vispirms jāielādē reģistrā un tikai pēc tam var veikt pievienošanu, izmantojot šo reģistru. Interesanti ir tas, ka šis fakts ir atrodams daudzās programmās, un konstantes vairumā gadījumu ir konstante 0. Tāpēc daudzi programmētāji jau no paša sākuma rezervē tam reģistru un sauc to par nulles reģistru.

Šajā rakstā mēs runāsim par digitālo displeju.
Septiņu segmentu LED indikatori ir paredzēti, lai attēlotu arābu ciparus no 0 līdz 9 (1. att.).

Šādi rādītāji ir viencipara, kas parāda tikai vienu skaitli, bet var būt vairāk septiņu segmentu grupas, kas apvienotas vienā korpusā (daudzciparu). Šajā gadījumā skaitļus atdala ar decimālzīmi (2. att.)

Diemžēl ir problēma, jo displejam ir nepieciešami astoņi porti - četrām reklāmām būtu nepieciešami 32 porti. Bet ir vairāki veidi. Maiņu reģistri jau ir aprakstīti citā apmācībā. Tādējādi būtu vieglāk izveidot nepieciešamās 32 izvadlīnijas tikai ar trim tapām. Vadības princips neatšķiras no viena 7 segmentu displeja vadīšanas, atšķiras tikai tas, kā "izejas tapas" tuvojas to vērtībām, un to nosaka maiņu reģistru izmantošana. Ieslēgts Šis brīdis tomēr ir jāparāda cita vadības opcija.



2. att.

Indikatoru sauc par septiņu segmentu, jo attēlotais simbols ir veidots no septiņiem atsevišķiem segmentiem. Šāda indikatora korpusa iekšpusē ir gaismas diodes, no kurām katra apgaismo savu segmentu.
Uz šādiem indikatoriem ir problemātiski attēlot burtus un citus simbolus, tāpēc šiem nolūkiem tiek izmantoti 16 segmentu indikatori.

Tālāk mēs vēlreiz aplūkosim multipleksēšanu. Multipleksēšana nozīmē, ka ne visi četri displeji tiek ieslēgti vienlaikus, bet tikai viens vienlaikus īsu laiku. Ja displeju maiņa notiek ātrāk, nekā mēs, cilvēki, varam uztvert, šķiet, ka visas četras gaismas darbojas vienlaikus, lai gan tikai viens iedegas vienu īsu laiku. Tādā veidā četri displeji var koplietot atsevišķus segmentu segmentus, un ir nepieciešamas tikai 4 papildu vadības līnijas 4 displejiem, ar kuriem displejs ir iespējots.

Viens no šāda veida vadības aspektiem ir multipleksēšanas biežums, tas ir, pilns pārejas cikls no viena displeja uz citu. Tam jābūt pietiekami augstam, lai displejs nemirgotu. Cilvēka acs ir gausa, kinoteātrī 24 kadri sekundē, ar televizoru, lai būtu drošībā, ka arī nekustīgi attēli ir mierīgi, katrs segments jāvada vismaz 100 Hz, tāpēc tas savienojas vismaz ik pēc 10 ms. Tomēr izņēmuma gadījumos pat 100 Hz joprojām var mirgot, piemēram, kad displejs ātri pārvietojas vai rodas traucējumi mākslīgo gaismas avotu darbībā, kas darbojas ar maiņstrāvu.

LED indikatori ir divu veidu.
Pirmajā no tiem visi katodi, t.i. visu gaismas diožu negatīvās spailes ir apvienotas kopā un tām tiek piešķirta atbilstoša spaile uz korpusa.
Atlikušie indikatora spailes ir savienotas ar katras gaismas diodes anodu (3. att., a). Šo ķēdi sauc par "kopējo katoda ķēdi".
Ir arī indikatori, kuros katra segmenta gaismas diodes ir savienotas saskaņā ar ķēdi ar kopēju anodu (3. att., b).



3. att.

Katrs segments ir apzīmēts ar atbilstošu burtu. 4. attēlā parādīta to atrašanās vieta.

4. att.

Piemēram, apsveriet divu ciparu septiņu segmentu indikatoru GND-5622As-21 sarkanā krāsā. Starp citu, atkarībā no modeļa ir arī citas krāsas.
Izmantojot trīs voltu akumulatoru, varat ieslēgt segmentus, un, apvienojot tapu grupu ķekarā un pievienojot tām strāvu, varat pat parādīt skaitļus. Bet šī metode ir neērta, tāpēc septiņu segmentu indikatoru kontrolei tiek izmantoti maiņu reģistri un dekoderi. Arī bieži indikatora tapas tiek savienotas tieši ar mikrokontrollera izejām, bet tikai tad, ja tiek izmantoti indikatori ar zemu strāvas patēriņu. 5. attēlā parādīts ķēdes fragments, izmantojot PIC16F876A.



5. att.

Lai kontrolētu septiņu segmentu indikatoru, bieži tiek izmantots dekodētājs K176ID2.
Šī mikroshēma spēj pārvērst bināro kodu, kas sastāv no nullēm un vieniniekiem, decimālskaitļos no 0 līdz 9.

Lai saprastu, kā tas viss darbojas, ir jāsamontē vienkārša shēma (6. att.). K176ID2 dekodētājs ir ievietots DIP16 iepakojumā. Tam ir 7 izvades tapas (9.–15. tapas), katra paredzēta noteiktam segmentam. Punktu kontrole šeit nav paredzēta. Mikroshēmai ir arī 4 ieejas (kontakti 2 - 5) binārā koda padevei. 16. un 8. tapas tiek piegādātas attiecīgi ar plus un mīnus jaudu. Pārējie trīs secinājumi ir palīgdarbības, par tiem es runāšu nedaudz vēlāk.



6. att.

DD1 — K176ID2
R1–R4 (10–100 kOhm)
HG1 — GND-5622As-21

Ķēdē ir 4 pārslēgšanas slēdži (iespējamas jebkuras pogas), tos nospiežot, no barošanas avota plus uz dekodera ieejām tiek piegādāts loģisks. Starp citu, pati mikroshēma tiek darbināta ar spriegumu no 3 līdz 15 voltiem. Šajā piemērā visa ķēde tiek darbināta ar 9 voltu barošanas avotu.

Ķēdē ir arī 4 rezistori. Tie ir tā sauktie uzvilkšanas rezistori. Tie ir nepieciešami, lai nodrošinātu, ka loģiskā ieeja ir zema, ja nav signāla. Bez tiem indikatora rādījumi var netikt parādīti pareizi. Ieteicams lietot to pašupretestība no 10 kOhm līdz 100 kOhm.

Diagrammā indikatora HG1 2. un 7. tapas nav savienotas. Ja pievienosit DP tapu mīnus barošanas avotam, iedegsies decimālzīme. Un, ja pieliksiet mīnusu Dig.2 izvadei, tad iedegsies arī otrā segmentu grupa (rādīs to pašu simbolu).

Dekodera ieejas ir veidotas tā, ka, lai uz indikatora parādītu ciparus 1, 2, 4 un 8, ir jānospiež tikai viena poga (izkārtojumā ir pārslēgšanas slēdži, kas atbilst ieejām D0, D1, D2 un D3). Ja signāla nav, tiek parādīts skaitlis nulle. Kad signāls tiek ievadīts ieejā D0, tiek parādīts skaitlis 1. Un tā tālāk. Lai parādītu citus skaitļus, jānospiež pārslēgšanas slēdžu kombinācija. 1. tabulā būs norādīts, kuri no tiem mums ir jānospiež.


1. tabula.

Lai parādītu skaitli "3", ievadei D0 un D1 jāpielieto loģiskais skaitlis. Ja ievadāt signālu uz D0 un D2, tiks parādīts skaitlis “5”.(6. att.).



6. att.

Šeit ir paplašināta tabula, kurā mēs redzam ne tikai paredzamo skaitli, bet arī tos segmentus (a - g), kas veidos šo skaitli.



2. tabula.

Mikroshēmas 1., 6. un 7. kontakts ir palīgs (attiecīgi S, M, K).

Diagrammā (6. att.) 6. kontaktdakša “M” ir iezemēta (līdz barošanas avotam mīnus) un mikroshēmas izejā ir pozitīvs spriegums darbam ar indikatoru ar kopējo katodu. Ja tiek izmantots indikators ar kopēju anodu, tad tas jāpieliek pie 6. tapas.

Ja uz 7. tapas “K” tiek uzlikts loģiskais, indikatora zīme nodziest, nulle ļauj rādīt. Shēmā šo secinājumu iezemēts (līdz barošanas avotam mīnus).

Dekodera pirmajai izejai tiek piegādāta loģiskā vienība (plus jauda), kas ļauj rādītājā parādīt pārveidoto kodu. Bet, ja šai tapai (S) pievienojat loģisku nulli, ieejas pārtrauks saņemt signālu un indikatorā sastings pašreizējā parādītā zīme.

Viena interesanta lieta, kas jāatzīmē, ir tas, ka mēs zinām, ka pārslēgšanas slēdzis D0 ieslēdz skaitli "1", un pārslēgšanas slēdzis D1 ieslēdz skaitli "2". Nospiežot abus pārslēgšanas slēdžus, tiks parādīts cipars 3 (1+2=3). Un citos gadījumos indikators parāda skaitļu summu, kas veido šo kombināciju. Nonākam pie secinājuma, ka dekodera ieejas ir sakārtotas pārdomāti un tām ir ļoti loģiskas kombinācijas.

Varat arī noskatīties šī raksta videoklipu.

Savienosim septiņu segmentu LED indikatoru Arduino platei un uzzināsim, kā to vadīt, izmantojot Led4Digits.h bibliotēku.

Iepriekšējā nodarbībā sīki aprakstīti mikrokontrolleri. Savienosim šādu indikatoru pie Arduino plates.

Diagramma indikatora savienošanai ar Arduino plati izskatās šādi.

Es to saliku uz shēmas plates.

Lai pārvaldītu rādītājus, es uzrakstīju Led4Digits.h bibliotēku:

Un maksā.

Bibliotēka ļauj pārvaldīt septiņu segmentu indikatorus:

  • līdz četriem cipariem;
  • ar jebkuriem vadības impulsu polaritātes variantiem (visi);
  • darbojas paralēlā procesā;
  • ļauj parādīt indikatorā:
    • katras kategorijas segmenti;
    • katra cipara cipars;
    • vesels skaitlis 0 ... 9999;
  • lai izvadītu veselu skaitli, var norādīt ciparu skaitu;
  • Ir režīms nenozīmīgu ciparu nomākšanai.

Led4Digits.h bibliotēku varat lejupielādēt no šīs saites:

Un maksā. Tikai 40 rubļi. mēnesī, lai piekļūtu visiem vietnes resursiem!

Kā instalēt ir rakstīts .

Avota tekstus nesniegšu. Varat tos meklēt bibliotēkas failos. Kā vienmēr, šeit ir daudz komentāru. Es detalizēti, ar piemēriem aprakstīšu, kā izmantot bibliotēku.

LED vadības bibliotēka Arduino Led4Digits.

Šeit ir klases apraksts. Es sniedzu tikai publiskās metodes un īpašības.

klase Led4Digits (
publiski:
baita cipars; // bitu segmentu kontroles kodi
void regen(); // reģenerācija, metode ir regulāri jāizsauc
void tetradToSegCod(baitu dig, baitu tetrāde); // tetra pārvēršana segmentu kodos
Būla druka (neparakstīta int vērtība, baita ciparskaitlis, tukšs baits); // vesela skaitļa izvade



} ;

Konstruktors.

Led4Digits (baita tipsLed, baits digitPin0, baits digitPin1, baits digitPin2, baits digitPin3,
baits segPinA, baits segPinB, baits segPinC, baits segPinD,
baits segPinE, baits segPinF, baits segPinG, baits segPinH);

typeLed Iestata vadības impulsu polaritāti bitu un segmentu atlases signāliem. Atbalsta visas savienojuma shēmas ().

typeLed Kategorijas izvēle Segmentu atlase Ķēdes veids
0 -_- -_- Kopējais anods ar izlādes izvēles taustiņiem
1 _-_ -_- Kopējais anods
2 -_- _-_ Kopējais katods
3 _-_ _-_ Kopējais katods ar izlādes izvēles taustiņiem

digitPin0...digitPin3– izejas ciparu izvēlei. Ja digitPin = 255, cipars ir atspējots. Tas ļauj savienot indikatorus ar mazāk cipariem. digitPin0 – zemais (labais) cipars.

segPinA...segPinH– segmentu vadības izejas.

Piemēram,

nozīmē: indikatora veids 1; izlādes izejas 5,4,3,2; segmentu izejas 6,7,8,9,10,11,12,13.

void regen() metode

Metode regulāri jāizsauc paralēlā procesā. Tas atjauno attēlu uz indikatoriem. Reģenerācijas cikla laiks ir vienāds ar metodes izsaukuma periodu, kas reizināts ar bitu skaitu.

Piemēram,

// pārtraukumu apstrādātājs 2 ms
Void timerInterrupt() (
disp.regen(); // indikatora reģenerācija
}

Baitu ciparu masīvs

Ietver segmentu stāvokli. cipars ir vismazāk nozīmīgais bits, vismazāk nozīmīgais cipara bits ir vismazāk nozīmīgā bita “A” segments. Bitu statuss 1 nozīmē, ka segments ir izgaismots.

Piemēram,

cipars = B0000101;

nozīmē, ka otrajā ciparā ir izgaismoti segmenti “A” un “C”.

Programmas piemērs, kas secīgi izgaismo visus katra cipara segmentus.

// skriešanas segmenti
#iekļauts
#iekļauts

//
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

anulēt iestatīšanu() (
taimera pārtraukums 2 ms
MsTimer2::start(); // pārtraukuma iespējošana
}

void loop() (
for (int i = 0; i< 32; i++) {
ja (i == 0) disp.digit= 1;
else if (i == 8) disp.digit= 1;
else if (i == 16) disp.digit= 1;
else if (i == 24) disp.digit= 1;
cits(
disp.digit = disp.cipara<< 1;
disp.digit = disp.cipara<< 1;
disp.digit = disp.cipara<< 1;
disp.digit = disp.cipara<< 1;
}
kavēšanās(250);
}
}

//pārtraukumu apstrādātājs 2 ms
Void timerInterrupt() (
disp.regen(); // indikatora reģenerācija
}

Ciparu masīvā 1 tiek pārvietots, un indikatori to parāda.

Metode nevar tetradToSegCod (baitu izrakšana, baitu tetrāde)

Metode ļauj attēlot heksadecimālā koda ciparus un burtus atsevišķos ciparos. Ir argumenti:

  • dig – cipara skaitlis 0 ... 3;
  • tetrāde – decimālzīmju kods. Kods 0 parādīs skaitli "0", kods 1 - skaitlis "1", kods 14 - burts "E".

Piemēram,

tetrāde(2, 7);

trešajā ciparā parādīs skaitli “7”.

Programmas piemērs, kas pēc kārtas maina rakstzīmes katrā ciparā.

// cipari pa vienam
#iekļauts
#iekļauts

// indikatora veids 1; izlādes izejas 5,4,3,2; segmentu izejas 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

anulēt iestatīšanu() (
MsTimer2::set(2, timerInterrupt); // taimera pārtraukums 2 ms
MsTimer2::start(); // pārtraukuma iespējošana
}

void loop() (
for (int i = 0; i< 64; i++) {
disp.tetradToSegCod(i>>4, i);
kavēšanās(250);
}
}

// pārtraukumu apstrādātājs 2 ms
Void timerInterrupt() (
disp.regen(); // indikatora reģenerācija
}

Būla drukas metode (bez paraksta int vērtība, baita ciparskaitlis, tukšs baits)

Metode uz indikatoriem parāda veselu skaitli. Tas pārvērš bināro skaitli BCD katram ciparam. Ir argumenti:

  • vērtība – skaitlis, kas tiek rādīts uz indikatora.
  • digitNum – numura ciparu skaits. To nevajadzētu sajaukt ar indikatora ciparu skaitu. Iespējams, vēlēsities parādīt ciparu ar 2 cipariem un rakstzīmes uz pārējiem diviem cipariem.
  • tukšs – nenozīmīgu ciparu slāpēšanas zīme. tukšs=0 nozīmē, ka skaitlis ir jāparāda ar visām nullēm. Skaitlis "7" izskatīsies kā "0007". Ja tukšā vērtība atšķiras no 0, nenozīmīgas nulles tiks dzēstas.

Ja skaitļa vērtība pārsniedz atļauto skaitu atlasītajam ciparu skaitam (digitNum), tad funkcija uz indikatora parādīs “---” un atgriezīs false.

Ciparu izvades programmas piemērs.

// izvades numurs
#iekļauts
#iekļauts

// indikatora veids 1; izlādes izejas 5,4,3,2; segmentu izejas 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

anulēt iestatīšanu() (
MsTimer2::set(2, timerInterrupt); // taimera pārtraukums 2 ms
MsTimer2::start(); // pārtraukuma iespējošana
}

void loop() (
for (int i = 0; i< 12000; i++) {
disp.print(i, 4, 1);
kavēšanās(50);
}
}

// pārtraukumu apstrādātājs 2 ms
Void timerInterrupt() (
disp.regen(); // indikatora reģenerācija
}

Pēdējās divas metodes nemaina segmenta “H” stāvokli - decimālzīmi. Lai mainītu punkta stāvokli, varat izmantot komandas:

cipars |= 0x80; // iededziet decimālzīmi
cipars &= 0x7f; // dzēst decimālzīmi

Izvade negatīvo skaitļu indikatoriem (int).

Negatīvos skaitļus var izvadīt šādi:

  • Pārbaudiet skaitļa zīmi.
  • Ja skaitlis ir negatīvs, izdrukājiet mīnusa zīmi pie visnozīmīgākā cipara un funkcijā print() mainiet skaitļa zīmi uz pozitīvu.
  • Ja skaitlis ir pozitīvs, izslēdziet zīmes bitu un izdrukājiet skaitli, izmantojot funkciju print().

Šeit ir programma, kas demonstrē šo metodi. Tas izvada skaitļus no -999 līdz 999.

// izvada negatīvus skaitļus
#iekļauts
#iekļauts

// indikatora veids 1; izlādes izejas 5,4,3,2; segmentu izejas 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

anulēt iestatīšanu() (
MsTimer2::set(2, timerInterrupt); // taimera pārtraukums 2 ms
MsTimer2::start(); // pārtraukuma iespējošana
}

void loop() (

for (int i = -999; i< 1000; i++) {

ja (t.i< 0) {
// skaitlis ir negatīvs
disp.digit= B01000000; // zīme -
disp.print(i * -1, 3, 1);
}
cits(
disp.digit= B00000000; // notīrīt zīmi
disp.print(i, 3, 1);
}

kavēšanās(50);
}
}

// pārtraukumu apstrādātājs 2 ms
Void timerInterrupt() (
disp.regen(); // indikatora reģenerācija
}

Izvade uz daļskaitļu indikatoriem, peldošā formātā.

Ir daudz veidu, kā parādīt peldošā komata skaitļus (peldošos), izmantojot standarta C valodas funkcijas. Tā, pirmkārt, ir funkcija sprint(). Tas darbojas ļoti lēni, prasa papildu rakstzīmju kodu konvertēšanu uz binārajiem decimālkodiem, jums ir jāizņem punkts no virknes. Tādas pašas problēmas ar citām funkcijām.

Es izmantoju citu metodi peldošo mainīgo vērtību parādīšanai indikatoros. Metode ir vienkārša, uzticama, ātra. Samazina līdz šādām darbībām:

  • Peldošā komata skaitli reizina ar 10 līdz pakāpei, kas atbilst vajadzīgajam zīmju skaitam aiz komata. Ja rādītājos jāparāda 1 zīme aiz komata, reiziniet ar 10, ja 2, tad reiziniet ar 100, 3 zīmes aiz komata ar 1000.
  • Pēc tam peldošā komata skaitlis tiek nepārprotami pārveidots par veselu skaitli (int) un parādīts indikatoros, izmantojot funkciju print().
  • Nepieciešamajā ciparā tiek ievietots punkts.

Piemēram, turpmākajās rindās septiņu segmentu gaismas diodēm tiks izvadīts peldošais mainīgais ar divām zīmēm aiz komata.

pludiņš x = 2,12345;

disp.digit |= 0x80; //

Mēs reizinām skaitli ar 100 un, ievietojot punktu trešajā ciparā, mēs dalām rezultātu ar 100.

Šeit ir programma, kas uz indikatoriem parāda peldošā komata skaitļus no 0,00 līdz 99,99.

// peldošā komata izvade
#iekļauts
#iekļauts

// indikatora veids 1; izlādes izejas 5,4,3,2; segmentu izejas 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

anulēt iestatīšanu() (
MsTimer2::set(2, timerInterrupt); // taimera pārtraukums 2 ms
MsTimer2::start(); // pārtraukuma iespējošana
}

void loop() (
peldēt x = 0;

for (int i = 0; i< 10000; i++) {
x += 0,01;

disp.print((int)(x * 100.), 4, 1);
disp.digit |= 0x80; // izgaismojiet trešā līmeņa punktu

kavēšanās(50);
}
}

//pārtraukumu apstrādātājs 2 ms
Void timerInterrupt() (
disp.regen(); // indikatora reģenerācija
}

Kā redzat, Led4Digits.h bibliotēka ievērojami vienkāršo darbu ar septiņu segmentu gaismas diožu (LED) indikatoriem, kas savienoti ar Arduino plati. Es neesmu atradis šādas bibliotēkas analogu.

Ir bibliotēkas darbam ar LED displejiem, izmantojot maiņu reģistru. Kāds man rakstīja, ka atrada bibliotēku, kas darbojas ar LED displeju, kas ir tieši savienots ar Arduino plati. Bet, to lietojot, indikatora cipari spīd nevienmērīgi un mirgo.

Atšķirībā no saviem analogiem, Led4Digits.h bibliotēka:

  • Darbojas kā paralēls process. Galvenajā cilpā programma ielādē datus noteiktos mainīgajos, kas automātiski tiek parādīti displejā. Informācijas izvade un indikatora atjaunošana notiek taimera pārtraukumā, kas nav redzams galvenajai programmai.
  • Displeja skaitļi spīd vienmērīgi, nemirgojot. Šo īpašību nodrošina fakts, ka reģenerācija notiek ciklā, ko stingri nosaka taimera pārtraukums.
  • Bibliotēkai ir kompakts kods, tā tiek ātri izpildīta un minimāli ielādē kontrolleri.

Nākamajā nodarbībā Arduino platei vienlaikus pievienosim LED indikatoru un pogu matricu. Rakstīsim bibliotēku šādam dizainam.

Kategorija: . Varat to atzīmēt ar grāmatzīmi.


Tops