LED septiņu segmentu indikatori. Septiņu segmentu indikators Septiņu segmentu LED indikatori ar kopēju katodu

Gaismas diode (vai gaismas diode) ir optiskā diode, kas izstaro gaismas enerģiju "fotonu" veidā, kad tā ir novirzīta uz priekšu. Elektronikā mēs šo procesu saucam par elektroluminiscenci. Gaismas diožu izstarotās redzamās gaismas krāsa svārstās no zilas līdz sarkanai, un to nosaka izstarotās gaismas spektrālais spektrs, kas savukārt ir atkarīgs no dažādiem piemaisījumiem, kas tiek pievienoti pusvadītāju materiāliem to ražošanas procesā.

Gaismas diodēm ir daudz priekšrocību salīdzinājumā ar tradicionālajām lampām un gaismekļiem, un, iespējams, vissvarīgākās no tām ir to mazais izmērs, izturība, dažādas krāsas, zemas izmaksas un viegla pieejamība, kā arī iespēja viegli saskarties ar dažādiem citiem elektroniskiem komponentiem digitālajās shēmās.

Bet galvenā LED priekšrocība ir tā, ka to mazā izmēra dēļ dažas no tām var koncentrēties vienā kompaktā korpusā, veidojot tā saukto septiņu segmentu indikatoru.

Septiņu segmentu indikators sastāv no septiņām gaismas diodēm (tātad tā nosaukums), kas ir sakārtotas taisnstūrī, kā parādīts attēlā. Katra no septiņām gaismas diodēm tiek saukta par segmentu, jo, kad tas ir izgaismots, segments veido daļu no cipara (decimāldaļas vai 12 ciparu). Dažkārt tajā pašā komplektā tiek izmantota 8. papildu LED. Tas kalpo, lai parādītu decimālzīmi. (DP), tādējādi ļaujot parādīt displeju, ja divi vai vairāki 7 segmentu indikatori ir savienoti kopā, lai attēlotu skaitļus, kas lielāki par desmit.

Katrs no septiņiem LED displeja segmentiem ir savienots ar atbilstošu kontaktu rindas paliktni, kas atrodas tieši uz taisnstūrveida plastmasas indikatora korpusa. Gaismas diožu tapas ir marķētas no līdz g, kas apzīmē katru atsevišķu segmentu. Citi LED segmentu kontakti ir savstarpēji savienoti un veido kopīgu izeju.

Tātad, uz priekšu novirzot attiecīgos LED segmentu tapus noteiktā secībā, daži segmenti izgaismosies, bet pārējie paliks tumši, ļaujot displejā izgaismot vēlamā skaitļu raksta simbolu. Tas ļauj mums attēlot katru no desmit decimālskaitļiem no 0 līdz 9 7 segmentu displejā.

Kopējo tapu parasti izmanto, lai noteiktu 7 segmentu displeja veidu. Katram displeja LED ir divi savienojošie termināli, no kuriem viens tiek saukts par "anodu", bet otrs attiecīgi tiek saukts par "katodu". Tāpēc septiņu segmentu LED indikatoram var būt divu veidu ķēdes konstrukcija - ar kopējo katodu (OC) un ar kopējo anodu (OA).

Šo divu veidu displeju atšķirība ir tāda, ka OK konstrukcijā visu 7 segmentu katodi ir tieši savienoti viens ar otru, savukārt kopējā anoda (CA) konstrukcijā visu 7 segmentu anodi ir savienoti viens ar otru. Abas shēmas darbojas šādi.

  • Kopējais katods (OC) - visu LED segmentu savstarpēji savienotajiem katodiem ir loģiskais līmenis “0” vai tie ir savienoti ar kopēju vadu. Atsevišķi segmenti tiek izgaismoti, izmantojot ierobežojošo rezistoru uz to anoda kontakta loģikas augstu vai loģikas 1 signālu, lai novirzītu atsevišķas gaismas diodes.
  • Kopējais anods (CA) - visu LED segmentu anodi ir apvienoti, un to loģiskais līmenis ir “1”. Indikatora atsevišķi segmenti, kad katrs konkrētais katods ir savienots ar zemi, loģisko "0" vai zema potenciāla signālu caur atbilstošo ierobežojošo rezistoru.

Kopumā septiņu segmentu kopējā anoda indikatori ir populārāki, jo daudzām loģiskajām shēmām var būt nepieciešama lielāka strāva nekā barošanas avots. Ņemiet vērā arī to, ka kopīgs katoda displejs nav tiešs ķēdes aizstājējs kopējam anoda displejam. Un otrādi - tas ir līdzvērtīgs gaismas diožu ieslēgšanai pretējā virzienā, un tāpēc gaisma netiks izstarota.

Lai gan 7 segmentu skaitītāju var uzskatīt par vienu displeju, tas joprojām sastāv no septiņām atsevišķām gaismas diodēm vienā iepakojumā, un tādēļ šīm gaismas diodēm ir nepieciešama pārslodzes aizsardzība. Gaismas diodes izstaro gaismu tikai tad, ja tās ir novirzītas uz priekšu, un to izstarotās gaismas daudzums ir proporcionāls priekšējai strāvai. Tas nozīmē tikai to, ka LED intensitāte palielinās aptuveni lineāri, palielinoties strāvai. Tātad, lai nesabojātu LED, šī tiešā strāva ir jāuzrauga un jāierobežo līdz drošai vērtībai ar ārēju ierobežojošo rezistoru.

Šādus septiņu segmentu rādītājus sauc par statiskiem. To būtisks trūkums ir lielais tapu skaits iepakojumā. Lai novērstu šo trūkumu, tiek izmantotas septiņu segmentu indikatoru dinamiskās vadības shēmas.

Septiņu segmentu indikators ir guvis lielu popularitāti radioamatieru vidū, jo tas ir ērti lietojams un viegli uztverams.

Šajā nodarbībā mēs uzzināsim par diagrammām septiņu segmentu LED indikatoru savienošanai ar mikrokontrolleriem un to, kā vadīt indikatorus.

LED septiņu segmentu indikatori joprojām ir viens no populārākajiem elementiem digitālās informācijas attēlošanai.

To veicina šādas viņu īpašības.

  • Zemu cenu. Displeja ziņā nekas nav lētāks par LED digitālajiem indikatoriem.
  • Izmēru dažādība. Mazākais un lielākais indikators ir LED. Es zinu LED indikatorus ar ciparu augstumu no 2,5 mm līdz 32 cm.
  • Spīd tumsā. Dažās lietojumprogrammās šis īpašums ir gandrīz izšķirošs.
  • Viņiem ir dažādas spīduma krāsas. Ir pat divkrāsu.
  • Diezgan zemas vadības strāvas. Mūsdienu LED indikatorus var pieslēgt pie mikrokontrolleru tapām bez papildu taustiņiem.
  • Piemērots skarbiem ekspluatācijas apstākļiem (temperatūras diapazons, augsts mitrums, vibrācija, agresīva vide utt.). Šai kvalitātei LED indikatoriem nav līdzvērtīgu citu displeja elementu veidu vidū.
  • Neierobežots kalpošanas laiks.

LED indikatoru veidi.

Septiņu segmentu LED indikators parāda rakstzīmi, izmantojot septiņas gaismas diodes - ciparu segmentus. Astotā gaismas diode izgaismo decimālzīmi. Tātad septiņu segmentu indikatorā ir 8 segmenti.

Segmenti ir apzīmēti ar latīņu burtiem no “A” līdz “H”.

Katras gaismas diodes anodi vai katodi ir apvienoti indikatorā un veido kopīgu vadu. Tāpēc ir indikatori ar kopēju anodu un kopīgu katodu.

LED indikators ar kopējo anodu.

LED indikators ar kopējo katodu.

Statiskā LED vadība.

LED indikatoriem jābūt savienotiem ar mikrokontrolleru caur strāvu ierobežojošiem rezistoriem.

Rezistoru aprēķins ir tāds pats kā atsevišķām gaismas diodēm.

R = (U piegāde - U segments) / I segments

Šai shēmai: I segments = (5–1,5) / 1000 = 3,5 mA

Mūsdienu LED indikatori spīd diezgan spilgti pat pie 1 mA strāvas. Ķēdei ar kopēju anodu iedegsies segmenti, pie kuru vadības tapām mikrokontrolleris ģenerēs zemu līmeni.

Indikatora ar kopējo katodu savienojuma shēmā mainās barošanas avota un vadības signālu polaritāte.

Iedegsies segments, pie kura vadības tapas tiks ģenerēts augsts līmenis (5 V).

Multipleksais režīms LED indikatoru vadīšanai.

Lai savienotu katru septiņu segmentu indikatoru ar mikrokontrolleru, ir nepieciešami astoņi tapas. Ja ir 3–4 rādītāji (cipari), tad uzdevums kļūst praktiski neiespējams. Vienkārši nav pietiekami daudz mikrokontrollera tapu. Šajā gadījumā indikatorus var pieslēgt multipleksētā režīmā, dinamiskās indikācijas režīmā.

Katra rādītāja vienāda nosaukuma segmentu secinājumi ir apvienoti. Tā rezultātā starp segmenta tapām un kopējām indikatora tapām ir savienota gaismas diožu matrica. Šeit ir shēma trīsciparu indikatora multipleksai vadībai ar kopēju anodu.

Lai savienotu trīs indikatorus, bija nepieciešami 11 tapas, nevis 24, kā statiskā vadības režīmā.

Izmantojot dinamisko displeju, jebkurā laikā deg tikai viens cipars. Augsta līmeņa signāls (5 V) tiek piegādāts uz viena bita kopējo tapu, un zema līmeņa signāli tiek nosūtīti uz segmentu tapām tiem segmentiem, kuriem vajadzētu iedegties šajā bitā. Pēc noteikta laika tiek iedegta nākamā izlāde. Tā kopējai tapai tiek piemērots augsts līmenis, un šī bita statusa signāli tiek nosūtīti uz segmenta tapām. Un tā tālāk visiem cipariem bezgalīgā cilpā. Cikla laiku sauc par indikatora reģenerācijas laiku. Ja reģenerācijas laiks ir pietiekami īss, cilvēka acs nepamanīs izlādes pārslēgšanos. Šķiet, ka visi izdalījumi pastāvīgi spīd. Lai izvairītos no indikatoru mirgošanas, tiek uzskatīts, ka reģenerācijas cikla frekvencei jābūt vismaz 70 Hz. Es cenšos izmantot vismaz 100 Hz.

Dinamiskās indikācijas shēma gaismas diodēm ar kopīgu katodu izskatās šādi.

Visu signālu polaritāte mainās. Tagad aktīvās izlādes kopējam vadam tiek piemērots zems līmenis, un segmentiem, kuriem vajadzētu iedegties, tiek piemērots augsts līmenis.

Gaismas diožu (LED) indikatoru dinamisko displeja elementu aprēķins.

Aprēķins ir nedaudz sarežģītāks nekā statiskajam režīmam. Aprēķina laikā ir nepieciešams noteikt:

  • segmentu vidējā strāva;
  • segmentu impulsu strāva;
  • segmenta rezistoru pretestība;
  • izlāžu kopējo spaiļu impulsa strāva.

Jo Indikatora cipari iedegas pēc kārtas, mirdzuma spilgtums nosaka vidējo strāvu. Mums tas jāizvēlas, pamatojoties uz indikatora parametriem un nepieciešamo spilgtumu. Vidējā strāva noteiks indikatora spilgtumu tādā līmenī, kas atbilst statiskajai vadībai ar tādu pašu pastāvīgu strāvu.

Izvēlēsimies vidējo segmenta strāvu 1 mA.

Tagad aprēķināsim segmenta impulsa strāvu. Lai nodrošinātu nepieciešamo vidējo strāvu, impulsa strāvai jābūt N reizes lielākai. Kur N ir indikatora ciparu skaits.

Es segmentēju imp. = I segments vid. *N

Mūsu shēmai I segments. imp. = 1 * 3 = 3 mA.

Mēs aprēķinām to rezistoru pretestību, kas ierobežo strāvu.

R = (U piegāde - U segments) / I segments. imp.

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

Nosakām izlāžu kopējo spaiļu impulsu strāvas. Vienlaicīgi var iedegties 8 segmenti, kas nozīmē, ka jums ir jāreizina viena segmenta impulsa strāva ar 8.

I kategorijas imp. = I segments imp. * 8

Mūsu ķēdei I kategorijas imp. = 3 * 8 = 24 mA.

  • Mēs izvēlamies rezistoru pretestību 1,1 kOhm;
  • segmentu vadības mikrokontrollera tapām jānodrošina vismaz 3 mA strāva;
  • mikrokontrollera tapām indikatora cipara izvēlei jānodrošina strāva vismaz 24 mA.

Ar šādām strāvas vērtībām indikatoru var savienot tieši ar Arduino plates tapām, neizmantojot papildu taustiņus. Spilgtiem indikatoriem šādas strāvas ir diezgan pietiekamas.

Shēmas ar papildu taustiņiem.

Ja indikatoriem ir nepieciešama lielāka strāva, tad ir nepieciešams izmantot papildu taustiņus, īpaši ciparu izvēles signāliem. Kopējā izlādes strāva ir 8 reizes lielāka par viena segmenta strāvu.

Savienojuma shēma LED indikatoram ar kopējo anodu multipleksā režīmā ar tranzistora slēdžiem izlādes izvēlei.

Lai izvēlētos bitu šajā shēmā, ir jāģenerē zema līmeņa signāls. Atvērsies atbilstošā atslēga un piegādās strāvas padevi indikatora izlādei.

Savienojuma shēma LED indikatoram ar kopējo katodu multipleksā režīmā ar tranzistora slēdžiem izlādes izvēlei.

Lai izvēlētos bitu šajā shēmā, ir jāģenerē augsta līmeņa signāls. Atbilstošā atslēga atvērs un aizvērs kopējo izlādes spaili ar zemi.

Var būt shēmas, kurās nepieciešams izmantot tranzistoru slēdžus gan segmentiem, gan kopīgām bitu tapām. Šādas shēmas ir viegli sintezētas no iepriekšējām divām. Visas parādītās shēmas tiek izmantotas, ja indikators tiek darbināts ar spriegumu, kas vienāds ar mikrokontrollera barošanas avotu.

Taustiņi indikatoriem ar paaugstinātu barošanas spriegumu.

Ir lieli indikatori, kuros katrs segments sastāv no vairākām virknē savienotām gaismas diodēm. Šādu indikatoru barošanai ir nepieciešams avots ar spriegumu, kas lielāks par 5 V. Slēdžiem jānodrošina paaugstināta sprieguma pārslēgšana, ko kontrolē mikrokontrollera līmeņa signāli (parasti 5 V).

Taustiņu ķēde, kas savieno indikatora signālus ar zemi, paliek nemainīga. Un strāvas slēdži jābūvē pēc citas shēmas, piemēram, kā šī.

Šajā shēmā aktīvo bitu izvēlas augstais vadības signāla līmenis.

Starp pārslēgšanas indikatora cipariem visiem segmentiem jābūt izslēgtiem uz īsu laiku (1-5 μs). Šis laiks ir nepieciešams, lai pabeigtu atslēgu pārslēgšanas pārejošos procesus.

Strukturāli izlādes tapas var apvienot vienā daudzciparu indikatora korpusā, vai arī daudzciparu indikatoru var salikt no atsevišķiem viencipara indikatoriem. Turklāt jūs varat salikt indikatoru no atsevišķām gaismas diodēm, kas apvienotas segmentos. Parasti tas tiek darīts, ja nepieciešams salikt ļoti lielu indikatoru. Šādām opcijām būs derīgas visas iepriekš minētās shēmas.

Nākamajā nodarbībā Arduino platei pievienosim septiņu segmentu LED indikatoru un uzrakstīsim bibliotēku, lai to vadītu.

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

Vai termometri ar lieliem skaitļiem, ir grūti atrast piemērotus indikatorus (piemēram, ALS), un dažreiz jums ir nepieciešams izmērs, kas nav komerciāli pieejams. Lai to izdarītu, katrs skaitļu elements (segments) bieži tiek montēts no vairākām parastām apaļām gaismas diodēm. Mēs piedāvājam modernāku un ērtāku šī risinājuma versiju, izmantojot 74HC595 mikroshēmu. Projekta rezultātā tika izveidotas gandrīz 10 centimetrus augstas zīmes, kuras var redzēt lielos attālumos. Ja nepieciešams, lielu skaitu ciparu var secīgi savienot viens ar otru, izmantojot specializētu savienotāju.

Shematiska diagramma

Šī shēma ir viencipara 7 segmentu displeja kontrolleris, kas izmanto lielu 5 LED komplektu katrā segmentā un maiņu reģistru vienkāršai mikrokontrollera ievades vadībai. Katra no šajā projektā izmantotajām gaismas diodēm ir 5 mm diametrā.

ULN2003 mikroshēma palīdz pastiprināt strāvu, kas plūst caur gaismas diodēm. Rezistori R1 - R8 ir strāvu ierobežojoši gaismas diodēm, kuras ķēdē ir savienotas virknē.

Laba diena! Pēc mana ilgā un piespiedu pārtraukuma mēs turpināsim apgūt Arduino programmēšanas kursu. Vienā no mūsu iepriekšējām nodarbībām mēs jau strādājām ar gaismas diožu secību, tagad ir pienācis laiks pāriet uz nākamo apmācības posmu. Šodienas raksta tēma būs 7 segmentu rādītājs.

Iepazīšanās ar 7 segmentu indikatoru sastāvēs no divām daļām. Pirmajā daļā mēs īsumā apskatīsim teorētisko komponentu, strādāsim ar aparatūru un rakstīsim vienkāršas programmas.

Iepriekšējo reizi strādājām ar 8 gaismas diožu secību, šodien arī būs 8 (7 LED sloksnes un 1 punkts). Atšķirībā no iepriekšējās secības, šīs kopas elementi nav sakārtoti rindā (viens pēc otra), bet ir sakārtoti noteiktā secībā. Pateicoties tam, izmantojot tikai vienu komponentu, jūs varat parādīt 10 ciparus (no 0 līdz 9).

Vēl viena būtiska atšķirība, kas šo indikatoru atšķir no vienkāršām gaismas diodēm. Tam ir kopīgs katods (vai drīzāk divas līdzvērtīgas kājas 3 un 8, uz kurām ir pievienots katods). Pietiek tikai savienot vienu no katodiem ar zemi ( GND). Visiem indikatora elementiem ir atsevišķi anodi.

Neliela atkāpe. Viss iepriekš minētais attiecas uz 7 segmentu indikatoriem ar kopīgu katodu. Tomēr ir indikatori ar kopīgu anodu. Šādu indikatoru savienošanai ir būtiskas atšķirības, tāpēc, lūdzu, nejauciet “grēcīgo ar taisno”. Jums skaidri jāsaprot, kāda veida septiņu segmentu ierīce ir jūsu rokās!

Papildus atšķirībām starp vienkāršiem gaismas diodēm un 7 segmentu indikatoriem ir arī kopīgas iezīmes. Piemēram: indikatorus, piemēram, gaismas diodes, var uzstādīt rindā (secībā), lai parādītu divu, trīs, četru ciparu skaitļus (ciparus). Tomēr es neiesaku pārāk daudz uztraukties par segmentu komplektu salikšanu pašiem. Pārdošanā “blakus” viencipara indikatoriem tiek pārdoti arī daudzciparu indikatori.

Es ceru, ka neesat aizmirsis par nepieciešamību izmantot strāvu ierobežojošus rezistorus, pievienojot gaismas diodes. Tas pats attiecas uz indikatoriem: katram indikatora elementam jābūt pievienotam savam rezistoram. 8 elementi (7 + 1) – 8 rezistori.

Man pa rokai bija septiņu segmentu vienība ar marķējumu 5161AS (kopējais katods). Pinout:



Shematiska diagramma

Kā jau teicu iepriekš, lai ieslēgtu segmentu “A”, mēs pievienojam zemējumu jebkurai kopējai tapai (3 vai 8) un piegādājam 5 V strāvu 7. kontaktam. Ja indikatoram ir kopīgs anods, tad pievelkam 5V uz anodu un zemējumu segmenta izejai!

Saliksim testa stendu. Mēs savienojam vadus secībā, sākot ar pirmo kāju, kas iet uz Arduino plates 2. tapu. Mēs savienojam zemējumu ar indikatora 8. tapu.

Pēc statīva salikšanas varat sākt rakstīt programmaparatūru.

Lai pārbaudītu indikatoru, palaidīsim rakstīto programmu. Atlasīsim elementu “A” un mirgosim to.


Tagad mirgosim ar skaitli 2. Lai to izdarītu, ieslēgsim vēl dažus elementus.

Lai izvadītu vienu ciparu, jums jāieraksta n-skaits koda rindiņas. Tas ir grūti, vai ne?

Ir arī cits veids. Lai uz indikatora parādītu jebkuru skaitli, tas vispirms ir jāattēlo kā noteikta bitu secība.

Atbilstības tabula.

Ja displejā ir kopīgs anods, tad 1 jāaizstāj ar 0, bet 0 ar 1!

Hex kolonna ir skaitļa attēlojums baitu formā (par to sīkāk runāsim otrajā daļā).

Skaitlis binārajā skaitļu sistēmā tiek rakstīts šādi: 0b00000000. 0b- binārā sistēma. Nulles nozīmē, ka visas gaismas diodes ir izslēgtas.

Savienojot mēs izmantojām kontaktus no 2 līdz 9. Lai ieslēgtu 2. tapu, ierakstiet tam vienu = 0b00000001. Ceturtais bits no labās puses ir atbildīgs par punktu. Pēdējais bits atbilst līnijai indikatora vidū.

Uzrakstīsim skaitļa 0 izvadīšanas piemēru.

Lai samazinātu ierakstīto rindu skaitu, mēs izmantosim cilpu, kas ļauj “atkārtot” visus 8 bitus. Mainīgs Iespējot_segmentu tiek piešķirta nolasāmā bita vērtība. Pēc tam strāvas izeja tiek iestatīta atbilstošā režīmā ( signāla esamība vai neesamība).

Piezīme. Funkcija bitRead() nolasa norādītā bita stāvokli un atgriež stāvokļa vērtību (0 vai 1).bitRead(x, n)kur x ir skaitlis, kura biti ir jānolasa; n ir bita numurs, kura stāvoklis ir jānolasa. Numerācija sākas ar vismazāk nozīmīgo (labāko) bitu, kas numurēts ar 0.

Un pirmās daļas beigās mēs uzrakstīsim nelielu skaitītāju.

Šodienas rakstā mēs runāsim par 7 segmentu rādītājiem un to, kā “sadraudzēties” ar Arduino. Ir vairākas iespējas. Vienkāršākais, protams, ir doties uz un iegādājieties gatavu indikatoru ar integrētu vairogu (tā sauc atbilstošo karti), bet mēs nemeklējam vienkāršus ceļus, tāpēc mēs iesim nedaudz grūtāku ceļu. Iesācēji - neuztraucieties, šis raksts, tāpat kā mani iepriekšējie raksti ( Un ) tikai tev. Lai guru raksta tiem pašiem pieredzējušiem guru, un es esmu iesācējs - es rakstu iesācējiem.

Kāpēc 7 segmentu indikators? Galu galā ir tik daudz dažādu ekrānu, ar lielu skaitu rakstzīmju, līniju, dažādu diagonāļu un izšķirtspēju, melnbaltu un krāsainu, no kuriem lētākais maksā pāris dolārus... Un šeit: “vecais” viens, nežēlīgi vienkāršs, bet prasa milzīgu piespraudes skaitu 7-segmenta indikators, bet tomēr šim "vecajam" ir arī priekšrocība. Fakts ir tāds, ka, izmantojot šeit sniegtās skices, jūs varat atdzīvināt ne tikai indikatoru ar ciparu augstumu 14 mm, bet arī nopietnākus (kaut arī paštaisītus) projektus, un skaitītāja cipari šajā gadījumā ir tālu no robežas. Tas var nebūt tik interesanti galvaspilsētu iedzīvotājiem, taču Novokatsapetovkas vai Nizhnyaya Kedrovkas iedzīvotāji būs ļoti priecīgi, ja klubā vai ciema padomē parādīsies pulkstenis, kas var arī parādīt datumu un temperatūru, un viņi runās par radītāju. no šī pulksteņa ļoti ilgu laiku. Bet šādi pulksteņi ir atsevišķa raksta tēma: apmeklētāji vēlēsies - Es uzrakstīšu. Visu iepriekš rakstīto var uzskatīt par ievadu. Tāpat kā mans pēdējais raksts, arī šis raksts sastāvēs no daļām, šoreiz divās. Pirmajā daļā mēs vienkārši “pārvaldīsim” indikatoru, bet otrajā mēģināsim to pielāgot kaut kam vismaz nedaudz noderīgam. Tātad, turpināsim:

Pirmā daļa. Eksperimentāli – izglītojoši

Šī projekta pamatā ir ARDUINO UNO, kas mums jau ir labi pazīstams no iepriekšējiem rakstiem. Atgādināšu, ka visvieglāk to iegādāties ir šeit: vai šeit: , turklāt jums būs nepieciešams 4 ciparu, 7 segmentu indikators. Man jo īpaši ir GNQ-5641BG-11. Kāpēc šis? Jā, vienkārši tāpēc, ka pirms 5 gadiem es to nejauši nopirku, man bija slinkums, lai mainītu, tāpēc tas visu šo laiku nogulēja un gaidīja spārnos. Es domāju, ka to darīs ikviens, kam ir kopīgs anods (un ar kopīgu katodu tas ir iespējams, bet jums būs jāapgriež masīva dati un citas portu vērtības - tas ir, jāmaina uz pretējām), ja vien tas nav pārāk spēcīgs, lai nesadedzinātu Arduino. Turklāt no platākā var “noraut” 4 strāvu ierobežojošos rezistorus, katrs aptuveni 100 omi, un kabeļa gabalu (man pietika ar 10 cm) uz 12 tapām (dzīslām), ko es arī izdarīju. Vai pat varat tos pielodēt ar atsevišķiem vadiem, nebūs problēmu. Būs nepieciešamas arī piespraudes dēlim (11 gab.), lai gan, ja esi uzmanīgs, bez tām var iztikt. Indikatora skice ir redzama 1. attēlā un tā diagramma 2. attēlā. Tāpat atzīmēšu, ka labāk katram šī indikatora segmentam (ierobežots ar 100 omu rezistori) piegādāt ne vairāk kā 2,1 V, un šajā gadījumā tas patērēs ne vairāk kā 20 mA. Ja iedegas cipars “8”, patēriņš nepārsniegs 7x20=140 mA, kas Arduino izejām ir diezgan pieņemami. Ziņkārīgs lasītājs uzdos jautājumu: "Bet 4 izlādes pa 140 mA katra jau ir 4x140 = 560 mA, un tas jau ir par daudz!" Atbildēšu - paliks 140. Kā? Turpini lasīt! Indikatora tapu atrašanās vieta ir redzama 3. attēlā Un mēs veicam savienojumu saskaņā ar 1. tabulu.


Rīsi. 1 - indikatora skice


Rīsi. 2 - indikatora ķēde


Rīsi. 3 — tapas atrašanās vieta

1. tabula

Piespraust Arduino Uno

Indikatora tapa

Piezīme

G segments

F segments

E segments

D segments

C segments

B segments

A segments

Segmenta Nr. 1 kopējais anods, savienots caur 100 omu rezistoru.

Segmenta Nr. 2 kopējais anods, savienot caur 100 omu rezistoru.

Segmenta Nr. 3 kopējais anods, savienot caur 100 omu rezistoru.

Segmenta Nr. 6 kopējais anods, pievienojiet caur 100 omu rezistoru.



Mēs aizpildām vienkāršu skici, kas ir vienkārša “skaitīšanas tabula” no 0 līdz 9:


Tagad daži precizējumi. DDRD ir porta D reģistrs (DDRB - attiecīgi, ports B) aiz "biedējošā" vārda "reģistrs" ir tikai funkcija "slēpta", kas norāda, vai ports kaut ko nolasīs ar savu tapu (saņems informāciju), vai vice. otrādi tur varēs kaut ko darīt tad rakstīt (dot informāciju). Šajā gadījumā rinda DDRD=B11111111; norāda, ka visas D porta tapas tiek izvadītas, t.i. no tiem iznāks informācija. Burts “B” nozīmē, ka reģistrā ir ierakstīts binārs skaitlis. Nepacietīgs lasītājs uzreiz jautās: "Vai ir iespējams decimāldaļskaitlis!?!" Es steidzos jūs pārliecināt, ka tas ir iespējams, bet par to nedaudz vēlāk. Ja mēs vēlamies izmantot pusi no porta ievadei un pusi izvadei, mēs to varētu norādīt šādi: DDRD=B11110000; vieni rāda tās piespraudes, kas sniegs informāciju, un nulles norāda tās, kuras saņems šo informāciju. Galvenā reģistra ērtība slēpjas arī tajā, ka nav jāreģistrē visas tapas 8 reizes, t.i. programmā saglabājam 7 rindiņas. Tagad apskatīsim šādu rindu:

PORTB=B001000; // iestatiet porta B 11. tapu augstu

PORTB ir porta B datu reģistrs, t.i. Ierakstot tajā skaitli, mēs norādām, kuram porta tapam būs viens un kuram nulle. Papildus komentāram teikšu, ka, ja paņem Arduino Uno tā, ka var redzēt kontrolieri un ciparu tapas ir augšā, ieraksts reģistrā būs skaidrs, t.i. kura “nulle” (vai “viens”) atbilst kuram tapam, t.i. porta B galējā labā nulle ir atbildīga par 8. tapu, bet kreisais - par 13. (kurā ir iebūvēta gaismas diode). Pieslēgvietai D attiecīgi labais ir 0. tapai, kreisais – 7. tapai.
Ceru, ka pēc tik detalizētiem paskaidrojumiem viss ir skaidrs, bet tā kā skaidrs, ierosinu atgriezties pie mums zināmās un kopš bērnības iemīļotās decimālskaitļu sistēmas. Un vēl viena lieta - 25 līniju skice var šķist maza, bet iesācējam tas joprojām ir nedaudz apgrūtinošs. Mēs to samazināsim.

Aizpildīsim vēl vienkāršāku skici, to pašu “skaitīšanas tabulu”:


1. video.
Tikai 11 rindas! Tas ir mūsu ceļš, "iesācēju veids"! Lūdzu, ņemiet vērā, ka bināro skaitļu vietā reģistros tiek ierakstīti decimālskaitļi. Protams, decimālskaitļiem priekšā nav nepieciešami burti. Es domāju, ka nenāktu par ļaunu ievietot visus skaitļus tabulās.

2. tabula. Parādītās rakstzīmes atbilstība porta datiem

Kopējais anods

Kopējais katods

Binārā sistēma

Decimālsistēma

Binārā sistēma

Decimālsistēma

3. tabula. Parādītā cipara atbilstība porta datiem

Kopējais anods

Kopējais katods

Binārā sistēma

Decimālsistēma

Binārā sistēma

Decimālsistēma



Uzmanību! Dati 2. un 3. tabulā ir spēkā tikai tad, ja tie ir savienoti saskaņā ar 1. tabulu.
Tagad augšupielādēsim skici ar “skaitīšanas tabulu” no 0 līdz 9999:




Rīsi. 4 - Skaitīšanas tabula

Jūs varat redzēt skici darbībā vietnē2. video.

Šajā skicē ir vairāk komentāru nekā paša koda. Jautājumiem nevajadzētu būt... Turklāt, kas tas par “mirgošanas ciklu”, kas patiesībā tur mirgo un kāpēc? Un šim ir arī kaut kāds mainīgais...
Un visa būtība ir tāda, ka visu četru kategoriju viena nosaukuma segmenti ir savienoti vienā punktā. A1, A2, A3 un A4 ir kopīgs katods; A1, B1,…..G1 kopējais anods. Tātad, vienlaikus uzliekot 4 ciparu indikatoram “1234”, mēs iegūsim “8888” un būsim ļoti pārsteigti. Lai tas nenotiktu, vispirms savā kategorijā jāiedegas “1”, pēc tam jāizslēdz, savā kategorijā jāiedegas “2” utt. Ja to darīsit ļoti ātri, skaitļu mirgošana saplūdīs kā kadri uz filmas, un acs to praktiski nepamanīs. Un mirgojošā mainīgā maksimālā vērtība šajā gadījumā kontrolē indikatora skaitļu maiņas ātrumu. Starp citu, tieši pateicoties šai “mirgošanai”, maksimālais strāvas patēriņš ir tikai 140 mA, nevis 560. Tagad iesaku pāriet uz ko lietderīgāku.

Otrā daļa. Vismaz nedaudz noderīgs

Šajā daļā mēs izvadīsim rakstzīmes no personālā datora uz 7 segmentu indikatoru, izmantojot ARDUINO MEGA. Kāpēc pēkšņi radās ideja par “pārejas pāreju no zirgiem”? Tam ir divi iemesli: pirmkārt, es nekad agrāk savos rakstos nebiju apsvēris ARDUINO MEGA; otrkārt, ARDUINO UNO es joprojām neesmu izdomājis, kā es varu dinamiski samainīt COM portu un portu D. Bet es esmu iesācējs - man var piedot. Protams, jūs varat iegādāties šo kontrolieri šeit: . Lai īstenotu plānu, vajadzēja paņemt lodāmuru un pārlodēt kabeli no Arduino puses, kā arī uzrakstīt jaunu skici. Kā kabelis ir pielodēts, var redzēt 5. attēlā. Lieta tāda, ka ARDUINO MEGA un ARDUINO UNO ir dažādi pieslēgvietas, un Mega ir daudz vairāk pieslēgvietu. Izmantoto tapu atbilstība redzama 4. tabulā.



Rīsi. 5 - jauns kabeļa vads

4. tabula

Osta Mega


Uzmanību! Šī tabula ir derīga tikai šim projektam!

Jāņem vērā arī tas, ka Arduino Mega ports C “sākas” no 37. tapas un pēc tam dilstošā secībā, un ports A sākas no 22. tapas un pēc tam augošā secībā.



Rīsi. 6 - vispārīgs skats



Nelielas ieviešanas iespējas: mēs izvadīsim 4 rakstzīmes. Rakstzīmēm jābūt cipariem. Ja ievadījāt “1234” un mēs redzēsim “1234”, ja ievadījāt “123456”, mēs joprojām redzēsim “1234”, ja ievadījāt “ytsuk”, “fyva1234”, “otiog485909oapom” - mēs neko neredzēsim. Ja ievadījāt “pp2345mm”, mēs redzēsim “23”, t.i. maza, iebūvēta “neaizsardzība”.

Faktiskā skice:



Jūs varat redzēt, kā šī programma darbojas3. video.



Pārskatu sagatavojis Pāvels Sergejevs