Dynaaminen ilmaisin. Lyhyt teoreettinen tieto

Tänään yritämme yhdistää mikro-ohjaimeen ei yhtä yksinumeroista ilmaisinta, vaan kaksi. Eli yhdistetään toinen tällainen indikaattori. Vain jos yhdistämme sen täsmälleen samalla tavalla kuin ensimmäinen, käytämme melkein kaikkia ohjainporttien nastaja, mikä tekee projektistamme elinkelpoisen.

Siksi toinen menetelmä tulee avuksemme tässä tapauksessa - tämä dynaaminen näyttö.

Dynaamisessa näytössä näytämme kullakin hetkellä numeron vain yhdessä ilmaisimessa. Toisin sanoen näytämme molemmille indikaattoreille tarkoitetut numerot vuorotellen. Mutta näytämme niitä yksitellen sellaisella taajuudella, että silmämme eivät huomaa sitä. Ja meistä näyttää siltä, ​​​​että indikaattorit toimivat jatkuvasti, eivätkä vuorollaan. Tämän avulla voimme yhdistää molempien indikaattoreiden segmentit ja myöhemmin useampia indikaattoreita samoihin portin nastoihin, toisin sanoen rinnakkain. Tällä menetelmällä molemmat indikaattorit toimitetaan välittömästi vuorollaan, ensin ensimmäiselle indikaattorille tarkoitetulla numerolla ja sitten toiselle osoittimelle tarkoitetulla numerolla. Ja jotta emme näe kahta numeroa jokaisessa indikaattorissa samanaikaisesti, näytämme tietylle indikaattorille tarkoitettua numeroa, asetamme sen anodiin positiivisen jännitteen, mutta emme toiseen anodiin, vaan yhdistämme sen yhteinen lanka. Siksi yksikään sen segmenteistä ei hehku katodien tilasta riippumatta. Jos segmentillä on nolla, potentiaalieroa ei ole ollenkaan, ja jos on, niin potentiaaliero on, mutta virta ohjataan toiseen suuntaan ja LED ei syty tähän suuntaan.

Luomme uuden projektin tavalliseen tapaan kopioimalla koodin main.c:hen edellisen projektin samannimisestä tiedostosta. Kutsutaan projekti Testi08.

Kootaan ensin Proteuksen piiri, kopioidaan tavalliseen tapaan edellisen oppitunnin projektitiedosto ja yhdistetään polku uuteen projektiin ohjaimen ominaisuuksissa. Ensin yhdistämme painikkeen uudelleen toiseen portin jalkaan. Miksi tämä on tarpeen, näemme myöhemmin

Irrotetaan yhteinen anodi virtalähteestä toistaiseksi ja lisätään toinen samanlainen indikaattori kuin meillä on jo projektissa.

Voit tehdä tämän valitsemalla sen vasemmasta paneelista, sinun ei tarvitse lisätä sitä uudelleen kirjastosta. Sitten yhdistämme tämän indikaattorin katodit samoihin ensimmäisen katodiin

Yhdistämme vapautuneet anodit toisen portin jalkoihin. Mutta emme yhdistä suoraan, vaan avaintransistoreiden kautta, koska kun useat ilmaisimen segmentit palavat samanaikaisesti, liian paljon virtaa virtaa ilmaisimen anodiin kytketyn portin jalan läpi. Portti voi epäonnistua. Tämä ei ole meille ollenkaan mielenkiintoista. Siksi yhdistämme anodimme jalkoihin B0 ja B1 transistoreiden kautta. Siksi siirsimme napin toiseen jalkaan. Lisäksi siirsimme sen varauksella, koska yhdistämme myöhemmin neljä indikaattoria.

Lisätään transistori kirjastosta. Kytkemme sen päälle käänteisessä tilassa, joten valitsemme p-n-p-rakenteen

Yhdistetään nämä kaksi transistoria piiriin ja lisätään vielä kaksi 2 kiloohmin vastusta kantavirran rajoittamiseksi. Kytkemme emitterit virtalähteeseen ja kollektorit indikaattoreiden anodeihin (klikkaa kuvaa suurentaaksesi kuvaa)

Näytän myös täydellisen kaavion kokoonpanostamme (klikkaa kuvaa suurentaaksesi kuvan)

Tällä oppitunnilla opimme kaavioista seitsemänsegmenttisten LED-merkkivalojen kytkemiseksi mikrokontrollereihin ja kuinka ohjata ilmaisimia.

Seitsemän segmentin LED-ilmaisimet ovat edelleen yksi suosituimmista elementeistä digitaalisen tiedon näyttämisessä.

Niiden seuraavat ominaisuudet edistävät tätä.

  • Alhainen hinta. Näytön suhteen mikään ei ole halvempaa kuin digitaaliset LED-ilmaisimet.
  • Erilaisia ​​kokoja. Pienin ja suurin merkkivalot ovat LED-valoja. Tiedän LED-ilmaisimia, joiden numeroiden korkeus on 2,5 mm - 32 cm.
  • Hohtaa pimeässä. Joissakin sovelluksissa tämä ominaisuus on lähes ratkaiseva.
  • Niissä on erilaisia ​​hehkuvärejä. On jopa kaksivärisiä.
  • Melko alhaiset ohjausvirrat. Modernit LED-ilmaisimet voidaan liittää mikro-ohjainten nastoihin ilman lisänäppäimiä.
  • Soveltuu vaativiin käyttöolosuhteisiin (lämpötila-alue, korkea kosteus, tärinä, aggressiiviset ympäristöt jne.). Tälle laadulle LED-indikaattoreilla ei ole vertaa muun tyyppisten näyttöelementtien joukossa.
  • Rajoittamaton käyttöikä.

LED-merkkivalojen tyypit.

Seitsensegmenttinen LED-ilmaisin näyttää merkin käyttämällä seitsemää LEDiä - numerosegmenttejä. Kahdeksas LED valaisee desimaalipilkun. Joten seitsemän segmentin indikaattorissa on 8 segmenttiä.

Segmentit on merkitty latinalaisilla kirjaimilla A:sta H:hen.

Kunkin LEDin anodit tai katodit yhdistetään indikaattoriin ja muodostavat yhteisen johdon. Siksi on olemassa indikaattoreita, joissa on yhteinen anodi ja yhteinen katodi.

LED-ilmaisin yhteisellä anodilla.

LED-ilmaisin yhteisellä katodilla.

Staattinen LED-ohjaus.

LED-ilmaisimet on kytkettävä mikro-ohjaimeen virtaa rajoittavien vastusten kautta.

Vastusten laskenta on sama kuin yksittäisillä LEDeillä.

R = (U-syöttö - U-segmentti) / I-segmentti

Tälle piirille: I-segmentti = (5 – 1,5) / 1000 = 3,5 mA

Nykyaikaiset LED-ilmaisimet hehkuvat melko kirkkaasti jopa 1 mA:n virralla. Piirissä, jossa on yhteinen anodi, syttyvät segmentit, joiden ohjausnastoissa mikro-ohjain tuottaa matalan tason.

Yhteisellä katodilla varustetun ilmaisimen kytkentäkaaviossa teholähteen ja ohjaussignaalien napaisuus muuttuu.

Segmentti syttyy, jonka ohjausnastassa syntyy korkea taso (5 V).

Multipleksoitu tila LED-merkkivalojen ohjaamiseen.

Jokaisen seitsemän segmentin ilmaisimen liittämiseen mikro-ohjaimeen tarvitaan kahdeksan nastaa. Jos indikaattoreita (numeroita) on 3–4, tehtävästä tulee käytännössä mahdotonta. Mikrokontrollerin nastat eivät vain riitä. Tässä tapauksessa indikaattorit voidaan kytkeä multipleksoidussa tilassa, dynaamisessa ilmaisutilassa.

Kunkin indikaattorin samannimisen segmentin havainnot yhdistetään. Tämä johtaa LED-matriisiin, jotka on kytketty segmentin nastojen ja yhteisten ilmaisinnastojen väliin. Tässä on piiri kolminumeroisen ilmaisimen multipleksoituun ohjaukseen yhteisellä anodilla.

Kolmen ilmaisimen liittämiseen vaadittiin 11 nastaa, ei 24, kuten staattisessa ohjaustilassa.

Dynaamisessa näytössä vain yksi numero palaa kerrallaan. Korkean tason signaali (5 V) syötetään yhden bitin yhteiseen nastaan ​​ja matalan tason signaalit lähetetään segmentin nastoihin niille segmenteille, joiden pitäisi syttyä tässä bitissä. Tietyn ajan kuluttua seuraava purkaus syttyy. Korkea taso kohdistetaan sen yhteiseen nastaan, ja tämän bitin tilasignaalit lähetetään segmentin nastoihin. Ja niin edelleen kaikille numeroille loputtomassa silmukassa. Jakson aikaa kutsutaan indikaattorin regeneraatioajaksi. Jos regeneraatioaika on riittävän lyhyt, ihmissilmä ei huomaa purkausten vaihtoa. Näyttää siltä, ​​​​että kaikki päästöt hehkuvat jatkuvasti. Ilmaisimien välkkymisen välttämiseksi uskotaan, että regenerointijakson taajuuden tulee olla vähintään 70 Hz. Yritän käyttää vähintään 100 Hz.

Yhteisellä katodilla varustettujen LEDien dynaaminen ilmaisinpiiri näyttää tältä.

Kaikkien signaalien napaisuus muuttuu. Nyt alhainen taso asetetaan aktiivisen purkauksen yhteiseen johtoon ja korkea taso kohdistetaan segmentteihin, joiden pitäisi syttyä.

LED (light-emitting diode) -ilmaisimien dynaamisten näyttöelementtien laskenta.

Laskenta on hieman monimutkaisempi kuin staattisen tilan kohdalla. Laskennan aikana on tarpeen määrittää:

  • segmenttien keskimääräinen virta;
  • segmenttien pulssivirta;
  • segmentin vastus vastus;
  • purkausten yhteisten napojen pulssivirta.

Koska Merkkivalot syttyvät vuorotellen, hehkun kirkkaus määrittää keskimääräisen virran. Meidän on valittava se indikaattoriparametrien ja vaaditun kirkkauden perusteella. Keskimääräinen virta määrittää ilmaisimen kirkkauden tasolla, joka vastaa staattista ohjausta samalla vakiovirralla.

Valitaan segmentin keskimääräinen virta 1 mA.

Lasketaan nyt segmentin pulssivirta. Vaaditun keskivirran saamiseksi pulssivirran on oltava N kertaa suurempi. Missä N on indikaattorin numeroiden lukumäärä.

segmentoin imp. = I segmentti keskim. *N

Kaavaamme I segmentti. imp. = 1 * 3 = 3 mA.

Laskemme virtaa rajoittavien vastusten resistanssit.

R = (U-syöttö - U-segmentti) / I-segmentti. imp.

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

Määritämme purkausten yhteisten napojen pulssivirrat. 8 segmenttiä voi syttyä samanaikaisesti, mikä tarkoittaa, että sinun on kerrottava yhden segmentin pulssivirta 8:lla.

I luokka imp. = I segmentti imp. * 8

Piirillemme I luokan imp. = 3 * 8 = 24 mA.

  • Vastuksen resistanssiksi valitaan 1,1 kOhm;
  • segmenttiohjausmikro-ohjaimen nastojen on annettava vähintään 3 mA virta;
  • ilmaisinnumeron valintaa varten mikro-ohjaimen nastojen tulee tuottaa vähintään 24 mA virta.

Tällaisilla virta-arvoilla ilmaisin voidaan liittää suoraan Arduino-levyn nastoihin ilman lisänäppäimiä. Kirkkaille indikaattoreille tällaiset virrat ovat melko riittäviä.

Järjestelmät lisänäppäimillä.

Jos ilmaisimet vaativat enemmän virtaa, on käytettävä lisänäppäimiä, erityisesti numeroiden valintasignaaleja varten. Kokonaispurkausvirta on 8 kertaa yhden segmentin virta.

Kytkentäkaavio LED-ilmaisimelle, jossa on yhteinen anodi multipleksoidussa tilassa transistorikytkimillä purkausten valintaa varten.

Bitin valitsemiseksi tässä piirissä on generoitava matalan tason signaali. Vastaava avain avautuu ja syöttää virtaa ilmaisimen purkaukseen.

Kytkentäkaavio LED-ilmaisimelle, jossa on yhteinen katodi multipleksoidussa tilassa transistorikytkimillä purkausten valintaa varten.

Bitin valitsemiseksi tässä piirissä on generoitava korkean tason signaali. Vastaava avain avaa ja sulkee yhteisen purkausliittimen maahan.

Voi olla piirejä, joissa on tarpeen käyttää transistorikytkimiä sekä segmenteille että yhteisille bittipinnoille. Tällaiset kaaviot syntetisoidaan helposti kahdesta edellisestä. Kaikkia esitettyjä piirejä käytetään, kun ilmaisin saa virtaa jännitteellä, joka on yhtä suuri kuin mikro-ohjaimen virtalähde.

Näppäimet indikaattoreille, joissa on korotettu syöttöjännite.

On olemassa suuria indikaattoreita, joissa jokainen segmentti koostuu useista sarjaan kytketyistä LED-valoista. Tällaisten indikaattoreiden syöttämiseen tarvitaan lähde, jonka jännite on suurempi kuin 5 V. Kytkimien on tarjottava mikrokontrollerin tasosignaaleilla ohjattu korotettu jännite (yleensä 5 V).

Näppäinpiiri, joka yhdistää merkkisignaalit maahan, pysyy muuttumattomana. Ja virtakytkimet tulisi rakentaa eri kaavion mukaan, esimerkiksi näin.

Tässä piirissä aktiivinen bitti valitaan ohjaussignaalin korkean tason perusteella.

Vaihtoilmaisimen numeroiden välillä kaikki segmentit tulee sammuttaa lyhyeksi ajaksi (1-5 μs). Tämä aika on tarpeen avainten vaihtamisen ohimenevien prosessien suorittamiseksi.

Rakenteellisesti purkausnastat voidaan yhdistää yhteen moninumeroisen ilmaisimen koteloon tai moninumeroinen ilmaisin voidaan koota erillisistä yksinumeroisista osoittimista. Lisäksi voit koota indikaattorin yksittäisistä LEDeistä, jotka on yhdistetty segmenteiksi. Tämä tehdään yleensä, kun on tarpeen koota erittäin suuri indikaattori. Kaikki yllä olevat järjestelmät ovat voimassa tällaisille vaihtoehdoille.

Seuraavalla oppitunnilla yhdistämme seitsemän segmentin LED-ilmaisimen Arduino-korttiin ja kirjoitamme kirjaston sen ohjaamiseksi.

Kategoria: . Voit lisätä sen kirjanmerkkeihin.

Yhdessä edellisessä oppitunnissa opimme valaisemaan LED-segmenttejä. Vaikka tämä voidaan tehdä vain Arduinolla, käytimme opetusohjelmassamme lisäkomponenttia - . Tämä hyödyllinen IC säästi meille arvokkaita mikro-ohjaimen nastoja. Mutta yksi seitsemän segmentin indikaattori on melkein hyödytön. Se näyttää vain yhden numeron. Entä jos haluamme tulostaa suuren luvun, esimerkiksi 0 - 500? Tarvitsemme jopa kolme numeroa ja siten kolme indikaattoria. Kuinka yhdistämme ne ohjaimeen? Voimme suoraan, mutta sitten otamme 7*3 = 21 lähtöä! Se on erittäin turhaa. Lisäksi tarvitset toisen levyn, koska Arduino Unossa ei yksinkertaisesti ole tarpeeksi digitaalisia nastoja. Kokeillaanko vaihtorekisterin käyttöä? Jo paremmin. Nyt tarvitsemme kolme ketjuun kytkettyä rekisteriä sekä kolme Arduino-nastaa ohjaamaan niitä. Yleensä voisimme lopettaa suunnitelmamme optimoinnin tähän, mutta menemme pidemmälle. Tulemme toimeen yhdellä vuororekisterillä!

Dynaaminen näyttö

Kuten tiedätte, visiollamme on inertia eli pysyvyys. Tämä on silmän kykyä yhdistää nopeasti muuttuvia kuvia yhdeksi. Siten, jotta henkilö näkee kolminumeroisen numeron osoittimessa, ei ole ollenkaan tarpeen sytyttää kaikkia numeroita kerralla. Riittää, kun sytyttää vain yksi erillinen merkkivalo kerrallaan. Vaihto vierekkäisten indikaattoreiden välillä on tapahduttava suurella taajuudella, jotta saavutetaan pysyvyysvaikutus. Tätä tiedonantotapaa kutsutaan dynaamiseksi näytöksi. Itse asiassa monet merkki- ja matriisi-LED- ja HID-ilmaisimet toimivat juuri tällä periaatteella. Yritetään koota dynaaminen näyttöpiiri kolmen seitsemän segmentin indikaattorin ohjaamiseksi.

Yhteyden muodostaminen Arduinoon

Tässä opetusohjelmassa käytämme kolmea seitsemänsegmentistä indikaattoria yhteisellä katodilla. Tarvitsemme myös yhden vuororekisterin, joka on kytketty kaikkiin indikaattoreihin samanaikaisesti. Vain yhden indikaattorin sytyttämiseksi kerrallaan käytämme kolmea kenttätransistoria, jotka yhdistävät katodin maahan oikealla hetkellä. Muuten, kolmen erillisen indikaattorin sijasta on parempi käyttää yhtä kolminumeroista indikaattoria. Tämä ei muuta piirin olemusta, mutta johtoja on vähemmän! Kaaviokuva
Asettelun ulkonäkö
Suosittelemme käyttämään TO92-paketissa olevia transistoreita, esimerkiksi 2N7000, elektronisina avaimina. Jokaisen transistorin kytkemiseen tarvitaan kaksi vastusta: 100-150 ohmia ja 2,2-10 kOhmia. Ensimmäinen vastus on suunniteltu suojaamaan ohjaimen lähtöä virtapiikeiltä, ​​joita esiintyy portissa kentän luomisen aikana. Toinen vastus auttaa sammuttamaan kytkimen nopeasti, kun asetamme alhaisen tason ohjaimen vastaavaan lähtöön (sen kautta portin jäännösvaraus valuu maahan). Jokaisella rivillä rekisteristä ilmaisimeen tarvitaan 200-300 ohmin virransäätövastus, jotta ilmaisimen LEDit eivät pala. Keskustelimme tästä vivahteesta LEDien ollessa päällä. Kokoamme kaavion huolellisesti ja siirrymme ohjelmaan. Ohjelma dynaamiseen näyttöön const tavu digit_pins = (5,6,7); const tavu data_pin = 2; const-tavu sh_pin = 4; const tavu st_pin = 3; unsigned long tm, next_flick; const unsigned int to_flick = 1; tavun numero = 0; etumerkitön int laskuri = 125; const-tavun numerot = ( B11101110, B10000010, B11011100, B11010110, B10110010, B01110110, B01111110, B11000010, B11111110, B11111110); void fill(byte d)( for(char i=0; i<8; i++){ digitalWrite(sh_pin, LOW); digitalWrite(data_pin, digits[d] & (1<next_flick)(seuraava_leipaus = tm + to_flick; numero++; if(numero == 3) numero = 0; setDigit(numero, laskuri); ) ) Osa tätä ohjelmaa, mukaan lukien muuttujat data_pin, sh_pin, st_pin ja toimivuus täyttää olemme jo tunteneet. Array numeroita tallentaa kymmenen segmenttien yhdistelmää numeroille 0 - 9. Muistin säästämiseksi tallennamme jokaisen yhdistelmän yhteen tavuun ja paremman ymmärtämisen vuoksi olemme kirjoittaneet ne binäärimuodossa. Käytämme indikaattoreiden vaihtamiseen . Joka millisekunti täytämme rekisterin tarvittavalla yhdistelmällä ja kytkemme vastaavan ilmaisimen päälle. Tätä varten käytämme funktiota setDigit. Perustelu numero on tällä hetkellä päällä olevan ilmaisimen indeksi, ja laskuri- kolminumeroinen luku, jonka haluamme korostaa. Parametri to_flick vastaa indikaattorin vaihtojaksosta. Se on yhtä suuri kuin 1, mikä tarkoittaa, että näytön numerot muuttuvat millisekunnin välein. Mitä jos lisäämme tätä parametria? Oletetaan jopa 100 ms tai jopa 500 ms. Visuaalisen inertian vaikutus häviää ja alamme havaita muutosta numeroissa. Laskuriohjelma dynaamisella näytöllä Edellisessä esimerkissä muuttuja laskuri tallensi oletuksena numeron 125. Yritetään nyt lisätä sekuntilaskuri ohjelmaan niin, että laskuri kasvaa yhdellä joka sekunti, numeroon 999 asti. const tavu digit_pins = (5,6,7); const tavu data_pin = 2; const-tavu sh_pin = 4; const tavu st_pin = 3; unsigned long tm, next_sec, next_flick; const unsigned int to_sec = 1000; const unsigned int to_flick = 1; etumerkitön int laskuri = 0; tavun numero = 0; const-tavun numerot = ( B11101110, B10000010, B11011100, B11010110, B10110010, B01110110, B01111110, B11000010, B11111110, B11111110); void fill(byte d)( for(char i=0; i<8; i++){ digitalWrite(sh_pin, LOW); digitalWrite(data_pin, digits[d] & (1<seuraava_sek)(seuraava_sek = tm + to_s; laskuri++; if(laskuri == 1000) laskuri = 0; ) tm = millis(); if(tm > next_flick)( next_flick = tm + to_flick; numero++; if(digit == 3) numero = 0; setDigit(digit, counter); ) ) Lataa ohjelma Arduinoon ja seuraa laskurin toimintaa!

Tehtävät

  1. Digitaalinen sekuntikello. Kokoa piiri kolminumeroisella osoittimella. Lisää kaavioon. Kun painat painiketta, sekuntikellon pitäisi alkaa laskea. Kun painat uudelleen, lopeta. Lisäksi voit lisätä sekuntikelloon murto-osan, joka näkyy kolmannessa osoittimessa pisteen kautta.
  2. Digitaalinen volttimittari jännitteille 0 - 10 volttia. Kokoa piiri kolminumeroisella osoittimella. Lisää piiriin kahden 10 kOhmin vastuksen jännitteenjakaja, joka on kytketty Arduinon analogiseen tuloon. Kirjoita ohjelma, joka lukee analogisen tulon arvon 100 ms:n välein, muuntaa sen voltteiksi ja näyttää sen ilmaisimessa. Murto-osan näyttämiseksi oikein sinun on yhdistettävä kahdeksas segmentti - piste.

Johtopäätös

Itse asiassa dynaaminen näyttö ei ole niin monimutkainen. Vanhaan rekisterilliseen piiriimme lisättiin vain kolme transistoria, joita ohjataan ymmärrettävällä logiikalla. Seuraavilla tunneilla yritämme käyttää dynaamista ilmaisua LED-matriisin ohjaamiseen ja opimme myös työskentelemään erikoistuneen mikropiirin kanssa, joka yksinkertaistaa merkittävästi ohjelmaamme.


Yksinumeroisen seitsemän segmentin ilmaisimen kytkentäkaavio
Moninumeroisen seitsemän segmentin ilmaisimen kytkentäkaavio

Digitaalinen tietojen näyttölaite. Tämä on yksinkertaisin toteutus ilmaisimesta, joka voi näyttää arabialaisia ​​numeroita. Monimutkaisempia monisegmenttisiä ja matriisi-indikaattoreita käytetään kirjaimien näyttämiseen.

Kuten nimensä sanoo, se koostuu seitsemästä näyttöelementistä (segmentistä), jotka kytkeytyvät päälle ja pois päältä erikseen. Yhdistämällä niitä erilaisiin yhdistelmiin niistä voidaan luoda yksinkertaistettuja kuvia arabialaisista numeroista.
Segmentit on merkitty kirjaimilla A - G; kahdeksas segmentti - desimaalipilkku (desimaalipiste, DP), suunniteltu näyttämään murtolukuja.
Toisinaan kirjaimia näytetään seitsemän segmentin osoittimessa.

Niitä on useita värejä, yleensä valkoinen, punainen, vihreä, keltainen ja sininen. Lisäksi ne voivat olla erikokoisia.

LED-merkkivalo voi myös olla yksinumeroinen (kuten yllä olevassa kuvassa) tai moninumeroinen. Käytännössä käytetään periaatteessa yksi-, kaksi-, kolmi- ja nelinumeroisia LED-ilmaisimia:

Kymmenen numeron lisäksi seitsemän segmentin osoittimet pystyvät näyttämään kirjaimia. Mutta harvoilla kirjaimilla on intuitiivinen seitsemän segmentin esitys.
Latinaksi: isot kirjaimet A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, pienet a, b, c, d, e, g , h, i, n, o, q, r, t, u.
Kyrillisillä kirjaimilla: A, B, V, G, g, E, i, N, O, o, P, p, R, S, s, U, Ch, Y (kaksi numeroa), b, E/Z.
Siksi seitsemän segmentin ilmaisimia käytetään vain yksinkertaisten viestien näyttämiseen.

Seitsemän segmentin LED-ilmaisin voi näyttää yhteensä 128 merkkiä:

Tyypillisessä LED-ilmaisimessa on yhdeksän johtoa: yksi menee kaikkien segmenttien katodille ja loput kahdeksan kunkin segmentin anodille. Tätä kaavaa kutsutaan "yhteinen katodipiiri", on myös suunnitelmia yhteisellä anodilla(silloin se on toisin päin). Usein ei yksi, vaan kaksi yhteistä liitintä tehdään alustan eri päihin - tämä yksinkertaistaa johdotusta lisäämättä mittoja. On olemassa myös niin sanottuja "universaaleja", mutta en ole henkilökohtaisesti törmännyt sellaisiin. Lisäksi on olemassa indikaattoreita, joissa on sisäänrakennettu vaihtorekisteri, mikä vähentää huomattavasti mukana olevien mikro-ohjainporttien nastojen määrää, mutta ne ovat paljon kalliimpia ja niitä käytetään harvoin käytännössä. Ja koska äärimmäisyyttä ei voida käsittää, emme käsittele tällaisia ​​indikaattoreita toistaiseksi (mutta on myös indikaattoreita, joissa on paljon suurempi määrä segmenttejä, matriisi).

Moninumeroiset LED-ilmaisimet toimivat usein dynaamisella periaatteella: kaikkien numeroiden samannimien segmenttien lähdöt on kytketty yhteen. Tietojen näyttämiseksi tällaisesta ilmaisusta ohjausmikropiirin on syötettävä syklisesti virtaa kaikkien numeroiden yhteisiin liittimiin, kun taas segmenttiliittimiin syötetään virtaa riippuen siitä, palaako tietty segmentti tietyllä numerolla.

Yksinumeroisen seitsemän segmentin ilmaisimen liittäminen mikro-ohjaimeen

Alla oleva kaavio näyttää kuinka yksinumeroinen seitsemän segmentin ilmaisin on kytketty mikrokontrolleriin.
On otettava huomioon, että jos indikaattori on YHTEINEN KATODI, sitten sen yhteinen lähtö on kytketty "maa", ja segmentit syttyvät syöttämällä looginen yksikkö portin lähtöön.
Jos ilmaisin on YHTEINEN ANODI, sitten se syötetään sen yhteiseen johtoon "plus" jännite, ja segmentit sytytetään kytkemällä portin lähtö tilaan looginen nolla.

Yksinumeroisen LED-ilmaisimen osoitus suoritetaan käyttämällä binäärikoodia vastaavan loogisen tason vastaavan numeron mikro-ohjainportin nastoihin (ilmaisimille, joissa on OK - loogiset, indikaattoreille, joissa on OA - loogiset nollat).

Virtaa rajoittavat vastukset voi olla tai ei ole kaaviossa. Kaikki riippuu indikaattoriin syötetystä syöttöjännitteestä ja ilmaisimien teknisistä ominaisuuksista. Jos esimerkiksi segmenteille syötettävä jännite on 5 volttia ja ne on suunniteltu 2 voltin käyttöjännitteelle, on asennettava virtaa rajoittavat vastukset (rajojen läpi kulkevan virran rajoittamiseksi syöttöjännitteen lisäämiseksi eikä palamiseksi ei vain ilmaisimen vaan myös mikro-ohjaimen portti).
Virtaa rajoittavien vastusten arvo on erittäin helppo laskea isoisän kaavalla Ohm.
Esimerkiksi indikaattorin ominaisuudet ovat seuraavat (otettu tietolomakkeesta):
— käyttöjännite — 2 volttia
— käyttövirta — 10 mA (=0,01 A)
- syöttöjännite 5 volttia
Laskentakaava:
R = U/I (kaikki tämän kaavan arvojen on oltava ohmeina, voltteina ja ampeerina)
R= (syöttöjännite - käyttöjännite)/käyttövirta
R = (5-2)/0,01 = 300 ohmia

Moninumeroisen seitsemän segmentin LED-merkkivalon kytkentäkaavio Pohjimmiltaan sama kuin kun kytketään yksinumeroinen ilmaisin. Ainoa asia on, että ohjaustransistorit lisätään indikaattoreiden katodeihin (anodeihin):

Sitä ei näy kaaviossa, mutta transistorien kannan ja mikro-ohjainportin nastojen väliin on sisällytettävä vastukset, joiden resistanssi riippuu transistorin tyypistä (vastuksen arvot lasketaan, mutta voit myös kokeilla käyttää vastuksia, joiden nimellisarvo on 5-10 kOhm).

Purkausten osoittaminen tapahtuu dynaamisesti:
— vastaavan numeron binäärikoodi asetetaan PB-portin lähtöihin 1. numeroa varten, sitten loogista tasoa sovelletaan ensimmäisen numeron ohjaustransistoriin
— vastaavan numeron binäärikoodi asetetaan PB-portin lähtöihin 2. numeroa varten, sitten loogista tasoa sovelletaan toisen numeron ohjaustransistoriin
— vastaavan numeron binäärikoodi asetetaan PB-portin lähtöihin 3. numeroa varten, sitten loogista tasoa sovelletaan kolmannen numeron ohjaustransistoriin
- siis ympyrässä
Tässä tapauksessa on tarpeen ottaa huomioon:
— osoittimille OK ohjaustransistorirakennetta käytetään NPN(loogisen yksikön ohjaama)
- indikaattorille OA- rakennetransistori PNP(loogisen nollan ohjaama)

Käytännön työ nro 2

Aihe: Dynaamisen näyttöpiirin kehittäminen.

Kohde: Hanki käytännön taitoja digitaalisten laitteiden näyttöelementtien suunnittelussa.

Harjoittele: Kehitä mikrokontrolleriin perustuvan digitaalisen seitsemän segmentin LED-näytön sähkökytkentäkaavio teknisten eritelmien mukaisesti.

Lyhyt teoreettinen tieto

Digitaalisen ja symbolisen tiedon näyttämiseen sulautetuissa järjestelmissä käytetään seitsemän segmentin ja matriisi-indikaattoreita. Seitsemän segmentin indikaattoreita on nestekide- ja LED-tyyppejä.

Seitsensegmenttinen LED-merkkivalo koostuu kahdeksasta LEDistä, joihin on kytketty katodit tai anodit. Segmentit on merkitty kirjaimilla A,B,C,D,E,F,G,H kuvan 1 mukaisesti.

Kuva 1

Segmentti hehkuu, kun positiivinen jännite syötetään yhteiseen napaan ja nollajännite syötetään katodiin.

On kaksi tapaa järjestää käyttöliittymä näytön kanssa: staattinen ja dynaaminen. Ensimmäisen haittapuolena on tarve suurelle määrälle ohjauslinjoja (mikrokontrolleriporttien numeroiden lukumäärä) - 8 jokaiselle indikaattorille.

Dynaaminen näyttömenetelmä vaatii numeroiden määrän, joka on yhtä suuri kuin segmenttien lukumäärän ja numeroiden lukumäärän summa.

Dynaaminen menetelmä on pulssimainen ja perustuu siihen tosiasiaan, että jos "välkkyntä" tuotetaan taajuudella, joka on 50 Hz tai enemmän, hehku näyttää ihmiselle jatkuvalta. Tämä menetelmä vaatii minimaaliset laitteistokustannukset, mukaan lukien koodin muuntaminen.

Dynaamisessa näytössä kaikkien indikaattoreiden samannimiset segmentit on kytketty rinnakkain muodostaen segmenttiväylän ja indikaattorien yhteiset anodit muodostavat indikaattorin valintaväylän. Siten tarvitaan huomattavasti vähemmän rivejä kuin staattisella menetelmällä.

Näytön käsittely koostuu seitsensegmenttisten sijaintikoodien segmenttien peräkkäisestä antamisesta väylälle ja merkkivalojen synkronisesta käynnistämisestä (valinnasta).

Nelinumeroisen dynaamisen indikaattorin kaavio on esitetty kuvassa 3. Segmenttiväylä on kytketty mikro-ohjaimen porttiin C, ja portin D neljä vähiten merkitsevää bittiä ovat indikaattoribittien valintabittejä.

Ilmeisesti ohjelman on käsiteltävä indikaattori. Ohjelma tulostaa porttiin C seitsemänsegmenttisen merkkikoodin indikaattorin oikealle (matalakertaiselle) bitille ja asettaa PC0-bitin nollaan. Ilmaisimen alemman asteen numero syttyy (nollataso avaa transistorin VT3).

Siten signaali yhdellä valintarivillä on pulssisekvenssi, jonka toimintajakso on yhtä suuri kuin indikaattoreiden lukumäärä.

50 Hz:n välkyntätaajuudella pulssijakso on 20 ms.

Kuva 2

Kuva 3 – Dynaamisen ilmaisun sähköpiiri

Kuva 2 esittää valintasignaalin ajoituskaavioita nelinumeroiselle näytölle. Yhden ilmaisimen hehkuaika on 5 ms.

Koska ihmissilmä "keskiarvoistaa" pulssiluonteisen valon intensiteetin, normaalin kirkkauden saavuttamiseksi segmenttien läpi kulkevan virran amplitudin on oltava suurempi kuin staattisella ilmaisulla. Valon voimakkuuden riippuvuuden ominaisuus virran suuruudesta on epälineaarinen.

Virtapulssin amplitudin indikaattorin valintapiirissä on oltava 8 kertaa (segmenttien lukumäärän mukaan) suurempi kuin segmentin virran amplitudi.

Kuvassa Kuvassa 2 on kaavio dynaamisesta nelinumeroisesta näytöstä, joka on tehty seitsemän segmentin digitaalisilla indikaattoreilla.

SA-SH-segmenttiväylän muodostavat mikro-ohjaimen portin P2 nastat ja portin P1 neljä vähiten merkitsevää numeroa muodostavat indikaattorin valintaväylän (SELI-SEL4). Ohjelmistomoduuli käsittelee näytön seuraavasti. Oikean osoitinsymbolin (HG4) seitsemän segmentin koodi ladataan porttiin P2. Vahvistettuna elementillä DD2, tämä virta syötetään segmenttien a, b, c väylään... Sitten koodi HG4-ilmaisimen valitsemiseksi (päälle kytkemiseksi) ladataan portin P1 matalaan tetradiin: SEL1=0, SEL2 - SEL4=1 (heksadesimaaliarvo E). Looginen nollavirta, jota vahvistaa elementti DD2, virtaa johdon 11 läpi vastuksen R7 läpi ja avaa transistorin VT4. Loput transistorit on kytketty pois päältä. +5V syöttöjännite syötetään avoimen transistorin kautta HG4-ilmaisimen yhteiselle anodille, jolloin symboli tulee näkyviin. Tämä tila säilyy 5 ms. Tämän ajanjakson lopussa MK lähettää korkean tason SEL1-portin purkaukseen, transistori VT4 sulkeutuu ja VT3-kytkin ja symboli tässä purkauksessa näytetään ja purkaus lakkaa hehkumasta. Sitten HG3-indikaattorisymbolin seitsemän segmentin koodi annetaan portille P2 ja bitti P1.1 asetetaan matalan tason tilaan. Tämä käynnistää näytön jne.

Merkkivalon aikaa vastaavalla aikavälillä voidaan toteuttaa kohdeohjaustoiminto.

Lähtötietojen binäärikoodin muuntaminen seitsemän segmentin indikaattorikoodiksi suoritetaan ohjelmallisesti käyttämällä seitsemän segmentin koodien joukkoa. Taulukon elementit ovat seitsemän segmentin merkkikoodeja. Kaavion mukaan segmentti on päällä, jos siihen kytketään matala jännitetaso. Taulukon 2 sisältö perustuu tähän näkökohtaan.

Taulukko 2 - Seitsemän segmentin koodit

Datatavu A B C D E F G H HEX - merkkikoodi
9F dollaria
$25
$D
$99
$49
$41
$1F

Harjoittele

1. Kehitä sähköinen piirikaavio dynaamisesta digitaalisesta seitsemän segmentin näytöstä.

2. Piirrä sähkökytkentäkaavio GOST ESKD:n mukaisesti.

3. Perustele piiriratkaisujen valinta.

4. Suunnittelun lähtötiedot on esitetty taulukossa 2. Mikrokontrollerin rinnakkaisten I/O-porttien kapasiteetin laajentamiseksi käytä siirtorekisterisiruja. Ilmaisimen valintarivien ohjaamiseksi käytä binaarista desimaaliilmaisinta. Käytä transistorikytkimiä vahvistaaksesi osoitusnumeron valintasignaaleja.

Taulukko 2 - Alkutiedot

Vaihtoehto nro Mikrokontrollerin tyyppi Ilmaisimen tyyppi Segmenttien lukumäärä
ATmega8 BL-S56A-11
ATmega16 BC56-11SRWA
ATtiny13 BL-D56A-21
ATtiny2313 BL-S56B-11
ATmega8 BA56-11GWA
ATmega16 BL-D56B-21
ATtiny13 BL-D56A-21
ATtiny2313 BL-D56A-21
ATmega16 BL-S56B-11
ATtiny13 BL-D56B-21