Kapcsolatok

7 szegmenses jelző 4 számjegyű arduino. Arduino és négy számjegyű hétszegmenses jelző. Hétszegmenses mutatók kezelése


Csatlakozási rajz egy számjegyű hétszegmenses jelzőhöz
Több számjegyű hétszegmenses jelző bekötési rajza

Digitális információs kijelző eszköz. Ez az arab számokat megjelenítő indikátor legegyszerűbb megvalósítása. A betűk megjelenítésére bonyolultabb többszegmenses és mátrixjelzőket használnak.

Ahogy a neve is mutatja, hét kijelzőelemből (szegmensből) áll, amelyek külön-külön kapcsolnak be és ki. Különböző kombinációkban való elhelyezésükkel arab számok egyszerűsített képei készíthetők.
A szegmenseket A–G betűk jelölik; nyolcadik szegmens – tizedespont (tizedespont, DP), törtszámok megjelenítésére tervezték.
Alkalmanként betűk jelennek meg a hétszegmenses jelzőn.

Különböző színekben kaphatók, általában fehér, piros, zöld, sárga és kék. Ezenkívül különböző méretűek lehetnek.

Ezenkívül a LED-jelző lehet egyjegyű (mint a fenti ábrán) vagy többjegyű. A gyakorlatban alapvetően egy-, két-, három- és négyjegyű LED-jelzőket használnak:

A tíz számjegyen kívül hétszegmenses mutatók képesek betűk megjelenítésére. De kevés betűnek van intuitív hétszegmenses ábrázolása.
Latinul: nagy A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, kisbetű a, b, c, d, e, g , h, i, n, o, q, r, t, u.
Cirill betűkkel: A, B, V, G, g, E, i, N, O, o, P, p, R, S, s, U, Ch, Y (két számjegy), b, E/Z.
Ezért a hétszegmenses indikátorok csak egyszerű üzenetek megjelenítésére szolgálnak.

A hétszegmenses LED-jelző összesen 128 karaktert tud megjeleníteni:

Egy tipikus LED-jelzőnek kilenc vezetéke van: az egyik az összes szegmens katódjához, a másik nyolc pedig az egyes szegmensek anódjához megy. Ezt a sémát hívják "közös katód áramkör", vannak olyan sémák is közös anóddal(akkor fordítva van). Gyakran nem egy, hanem két közös terminál készül az alap különböző végein - ez leegyszerűsíti a vezetékezést a méretek növelése nélkül. Vannak úgynevezett „univerzálisak” is, de én személy szerint nem találkoztam ilyenekkel. Ezen kívül vannak beépített váltóregiszterrel ellátott indikátorok, amelyek nagymértékben csökkentik a mikrokontroller portjainak számát, de jóval drágábbak, és a gyakorlatban ritkán használják őket. És mivel a mérhetetlenség nem fogható fel, ilyen mutatókkal egyelőre nem foglalkozunk (de vannak sokkal nagyobb szegmensszámú, mátrixos mutatók is).

Több számjegyű LED kijelzők gyakran dinamikus elven működnek: az összes számjegy azonos nevű szegmenseinek kimenetei össze vannak kötve. Az ilyen indikátor információinak megjelenítéséhez a vezérlő mikroáramkörnek ciklikusan árammal kell ellátnia az összes számjegy közös kapcsait, míg a szegmenskapcsok áramellátása attól függően történik, hogy egy adott szegmens egy adott számjegyben világít-e.

Egy számjegyű hétszegmenses jelző csatlakoztatása mikrokontrollerhez

Az alábbi diagram bemutatja, hogyan egy számjegyű hétszegmenses jelző van csatlakoztatva a mikrokontrollerhez.
Figyelembe kell venni, hogy ha a mutató a KÖZÖS KATÓD, akkor a közös kimenete csatlakozik "föld", és a szegmensek táplálással meggyulladnak logikai egység a port kimenetére.
Ha a mutató az KÖZÖS ANÓD, akkor a közös vezetékére van ellátva "plusz" feszültséget, és a szegmenseket a port kimenetének állapotba kapcsolásával gyújtják meg logikai nulla.

Az egyszámjegyű LED-jelző jelzése úgy történik, hogy bináris kódot alkalmaznak a megfelelő logikai szint megfelelő számjegyének mikrokontroller portjának érintkezőire (OK jelzők esetén - logikai, OA jelzők esetén - logikai nullák).

Áramkorlátozó ellenállások jelen lehet a diagramon, vagy nem. Minden az indikátor tápfeszültségétől és az indikátorok műszaki jellemzőitől függ. Ha például a szegmensek feszültsége 5 volt, és 2 voltos üzemi feszültségre vannak tervezve, akkor áramkorlátozó ellenállásokat kell beépíteni (hogy korlátozzák a rajtuk áthaladó áramot a megnövelt tápfeszültség érdekében, és ne égjenek el nemcsak az indikátor, hanem a mikrokontroller portja is).
Nagyon könnyű kiszámítani az áramkorlátozó ellenállások értékét a nagypapa képletével Ohm.
Például a mutató jellemzői a következők (az adatlapról átvéve):
— üzemi feszültség — 2 volt
— üzemi áram — 10 mA (=0,01 A)
- tápfeszültség 5 volt
Számítási képlet:
R = U/I (ebben a képletben az összes értéket ohmban, voltban és amperben kell megadni)
R= (tápfeszültség - üzemi feszültség)/üzemi áram
R = (5-2)/0,01 = 300 Ohm

Több számjegyű hétszegmenses LED-jelző bekötési rajza Alapvetően ugyanaz, mint egy számjegyű jelző csatlakoztatásakor. Az egyetlen dolog, hogy vezérlőtranzisztorokat adnak az indikátorok katódjaihoz (anódjaihoz):

Az ábrán nem látható, de a tranzisztorok alapjai és a mikrokontroller portjának tűi közé olyan ellenállásokat kell beépíteni, amelyek ellenállása a tranzisztor típusától függ (az ellenállásértékek kiszámítva, de próbálkozhat 5-10 kOhm névleges értékű ellenállásokkal is).

A kisülések jelzése dinamikusan történik:
— a megfelelő számjegy bináris kódja be van állítva a PB port kimenetein az 1. számjegyhez, majd a logikai szint az első számjegy vezérlőtranzisztorára kerül
— a megfelelő számjegy bináris kódját a PB port kimenetein állítjuk be a 2. számjegyhez, majd a logikai szintet a második számjegy vezérlőtranzisztorára alkalmazzuk
— a megfelelő számjegy bináris kódját a PB port kimenetein állítjuk be a 3. számjegyhez, majd a logikai szintet alkalmazzuk a harmadik számjegy vezérlőtranzisztorára
- tehát körben
Ebben az esetben figyelembe kell venni:
— mutatókkal együtt rendben vezérlő tranzisztor szerkezetet használnak NPN(logikai egység vezérli)
- jelzővel együtt OA- szerkezeti tranzisztor PNP(logikai nulla vezérli)

Ez a cikk a PIC mikrokontrollerek és LED indikátorok dinamikus jelzésének megszervezéséről szóló publikációim sorozatát folytatja. Itt vannak linkek a korábbi bejegyzésekhez:

A javasolt algoritmus működési táblázata (közös katóddal rendelkező indikátort használunk, az első oszlop a regiszterkimeneteket mutatja az indikátor számjegyeivel kombinálva) az alábbi kapcsolási rajz szerint.

A 2 ms-os intervallumú megszakítások mindegyikében (jelen esetben a TMR0 időzítőtől) a dinamikus jelzés (DI) egy szakasza készül el egy öt regiszter- és indikátorvezérlési fázisból álló algoritmus szerint.

2. fázis: A regiszter (ST_CP) 12-es érintkezőjénél lévő pozitív él a regiszter nulla állapotát írja a kimeneti reteszbe. Itt és tovább, a jelzés kezdete előtt a jelzőt a szegmenseken a nulla potenciál kialszik.

3. fázis: a 14-es (DS - adat) és a 11-es (SH_CP - órajel) regisztertűk vezérlésével a szegmensek vezérlésére szolgáló kódot írjuk bele.

4. fázis: a regiszter 12-es érintkezőjének pozitív esése esetén a regiszter adatai a kimeneti reteszbe íródnak, és a bitek pozitív szintjei miatt a jelzőfény kikapcsolva marad.

5. fázis: itt a jelző számjegyeinek kimenetére a szükséges kód kerül, majd a tényleges jelzés következik.

Ha az áramkör egy 4 számjegyű jelzőt használ, akkor a megfelelő működéshez azt OK-ra kell állítani. Ha 8 bitet kell vezérelnie, akkor az MK 8 portját használjuk, míg a maradék 4 port egyszerűen a biteket vezérli (a 4. fázisban magas szintűnek kell lennie). Érdemes megjegyezni, hogy ebben az esetben mind az OK, mind az OA indikátorok használhatók, amelyek szegmenseket vagy számjegyeket kapcsolnak a regiszterhez (az alábbiakban ismertetett okok miatt az első esetben célszerű a DI szegmensenkénti rendszerezése). szegmensben, a másodikban pedig bitről bitre).

Ezzel a módszerrel két négybites jelzőt csatlakoztathat a PIC16F676 MCU-hoz egy műszakregiszter használatával, miközben akár négy szabad portot is használhat. Például egy ilyen kapcsolathoz az emberek a DI és az analóg bemeneti funkciók kombinációját használták néhány MK portban (szerintem rendkívül kétes döntés), ami az áramkör jelentős bonyolításához és bizonyos korlátozásokhoz vezetett, amit a szerzők. figyelmeztetni. A bekötési rajzomat használva minden egyszerűen és szépen megoldódna - külön bemenetek, külön jelzések, plusz még két port (beleértve az MCLR-t is) a gombokhoz.

Ennek a vezérlési módszernek a teszteléséhez a következő egyszerű áramkört javasoljuk a PIC12F629 MCU-n és az FYQ3641A jelzőn, amely felváltva jeleníti meg a „teszt” szót és az 1234-es számot a jelzőn.

Itt a szegmensenkénti DI alkalmazása mellett döntöttek (minden pillanatban egy szegmens kapcsol be, és a bittűkön van egy kód, ahol minden bitben: 0 - ha ez a szegmens egy adott bitben világít és 1 - egyébként), amelyben a csúcsáramok átkerülnek a regiszterbe. Miért? Ennek két oka van: először is, a 74HC595 kimenetek maximális terhelhetősége 35 mA, szemben a PIC vezérlők 25 mA-ével; a második és legfontosabb dolog az, hogy az MK kimeneti portján keresztül a határértékhez közeli áram elméletileg a regiszterbemenetek kapcsolási szintjére emelheti a kimeneti potenciálját, ami működési hibákhoz vezet. Így az MK portokba 6-7 mA áramok áramlanak, és a kimenetek potenciáljai biztosan nem haladják meg a TTL szintet.

Mint fentebb említettük, a megszakítási intervallum 2 ms, ami megfelel az indikátor 64 Hz-es frissítési gyakoriságának, és a fénye meglehetősen kényelmes a szem számára.

Ez a DI módszer többek között lehetővé tette az áramkorlátozó ellenállások (R2-R5) számának felére csökkentését.

A készüléket úgynevezett „forrasztás nélküli” kenyérlapra szerelik össze.

A jelző bármely 3641A sorozatra cserélhető.

Az áramkört egy stabilizált 5 V-os áramforrás táplálja. A fent említett kenyérlappal való használatra tervezett speciális stabilizátor kártyát használtam.

Az MK vezérlőprogram C nyelven íródott, és a környezetben le van fordítva.

Kód MikroC-ben, projektben, HEX fájlban az alkalmazásban.

Ha ezt a csatlakozási módot kereskedelmi fejlesztésekben szeretné használni, forduljon hozzám.

Radioelemek listája

Kijelölés típus Megnevezés Mennyiség jegyzetÜzletA jegyzettömböm
DD1 MK PIC 8 bites

PIC12F629

1 Jegyzettömbhöz
DD2 Regisztráció74HC5951 Jegyzettömbhöz
H.L. IndikátorFYQ36411 Jegyzettömbhöz
R1 Ellenállás

30 kOhm

1 Jegyzettömbhöz
R2 Ellenállás

430 Ohm

1 Jegyzettömbhöz
R3 Ellenállás

430 Ohm

1

Biztosan láttad már a „nyolc” mutatót. Ez egy hétszegmenses LED-jelző, amely a 0-tól 9-ig terjedő számok, valamint a tizedesvessző ( D.P.- Tizedespont) vagy vessző.

Szerkezetileg ez a termék LED-ek összeállítása. A szerelvényben minden LED a saját jelszegmensét világítja meg.

Modelltől függően a szerelvény 1-4 hétszegmenses csoportból állhat. Például az ALS333B1 jelző egy hétszegmenses csoportból áll, amely csak egy számjegyet képes megjeleníteni 0 és 9 között.

De a KEM-5162AS LED-jelzőnek már két hétszegmenses csoportja van. Két számjegyű. A következő képen különböző hétszegmenses LED-jelzők láthatók.

Vannak mutatók is 4 hétszegmenses csoporttal - négy számjegyű (a képen - FYQ-5641BSR-11). Házi készítésű elektronikus órákban használhatók.

Hogyan jelennek meg a hétszegmenses mutatók a diagramokon?

Mivel a hétszegmenses jelző egy kombinált elektronikus eszköz, a diagramokon látható képe alig tér el a megjelenésétől.

Csak arra kell figyelni, hogy minden érintkező egy adott jelszegmensnek felel meg, amelyhez kapcsolódik. Az eszköz típusától függően egy vagy több közös katód vagy anód kivezetése is van.

A hétszegmenses mutatók jellemzői.

Ennek a résznek a látszólagos egyszerűsége ellenére is megvannak a maga sajátosságai.

Először is, a hétszegmenses LED-jelzők közös anóddal és közös katóddal rendelkeznek. Ezt a funkciót figyelembe kell venni, amikor házilag készített dizájnhoz vagy készülékhez vásárol.

Itt van például a már nálunk is ismert 4 számjegyű jelző pinoutja FYQ-5641BSR-11.

Amint láthatja, az egyes számjegyek LED-jeinek anódjait egyesítik, és külön tűre adják ki. Az előjelszegmenshez tartozó LED-ek katódjai (pl. G), össze vannak kapcsolva. Sok múlik azon, hogy milyen kapcsolási rajza van az indikátornak (közös anóddal vagy katóddal). Ha megnézi a hétszegmenses indikátorokat használó eszközök kapcsolási rajzait, világossá válik, miért olyan fontos ez.

A kis mutatók mellett vannak nagyok, sőt nagyon nagyok is. Nyilvános helyeken láthatók, általában faliórák, hőmérők és informátorok formájában.

A kijelzőn megjelenő számok méretének növelése és az egyes szegmensek megfelelő fényerejének megőrzése érdekében több sorba kapcsolt LED-et használnak. Íme egy példa egy ilyen indikátorra - elfér a tenyerében. Ez FYS-23011-BUB-21.

Egy szegmense 4 sorba kapcsolt LED-ből áll.

Az egyik szegmens (A, B, C, D, E, F vagy G) megvilágításához 11,2 V feszültséget kell rá adni (2,8 V minden LED-re). Csinálhatsz kevesebbet pl 10V, de a fényerő is csökken. Ez alól kivétel a tizedesvessző (DP), melynek szegmense két LED-ből áll. Csak 5-5,6 V kell hozzá.

Kétszínű indikátorok is megtalálhatók a természetben. Például piros és zöld LED-eket építenek beléjük. Kiderült, hogy két jelző van beépítve a házba, de különböző színű LED-ekkel. Ha mindkét LED-áramkört feszültség alá helyezi, sárga fényt kaphat a szegmensekből. Íme egy kapcsolási rajz a kétszínű jelzőfények egyikéhez (SBA-15-11EGWA).

Ha csatlakoztatja az 1. érintkezőt ( PIROS) és 5 ( ZÖLD) a kulcstranzisztorokon keresztül „+” tápegységre, a megjelenített számok színét pirosról zöldre változtathatja. És ha egyszerre csatlakoztatja az 1-es és 5-ös érintkezőket, akkor a ragyogás színe narancssárga lesz. Így lehet kijátszani az indikátorokkal.

Hétszegmenses mutatók kezelése.

A digitális eszközök hétszegmenses jelzőinek vezérléséhez műszakregisztereket és dekódereket használnak. Például az ALS333 és ALS324 sorozat indikátorainak vezérlésére széles körben használt dekóder egy mikroáramkör. K514ID2 vagy K176ID2. Íme egy példa.

A modern importált mutatók ellenőrzésére pedig általában műszakregisztereket használnak 74HC595. Elméletileg a kijelző szegmensei közvetlenül vezérelhetők a mikrokontroller kimeneteiről. De egy ilyen áramkört ritkán használnak, mivel ehhez magának a mikrokontrollernek jó néhány tűjét kell használni. Ezért erre a célra shift regisztereket használnak. Ezenkívül a jelszegmens LED-ei által fogyasztott áram nagyobb lehet, mint az az áram, amelyet a mikrokontroller szokásos kimenete képes biztosítani.

A nagy, hétszegmenses kijelzők, például a FYS-23011-BUB-21 vezérléséhez speciális meghajtókat használnak, például mikroáramkört. MBI5026.

Mi van a hétszegmenses jelzőn belül?

Nos, egy kis finomság. Egyetlen elektronikai mérnök sem lenne az, ha nem érdekelné a rádióalkatrészek „belseje”. Ez az, ami az ALS324B1 jelzőn belül található.

Az alapon lévő fekete négyzetek LED kristályok. Itt láthatóak az arany jumperek is, amelyek a kristályt az egyik tűhöz kötik. Sajnos ez a jelző már nem fog működni, mivel ugyanazok a jumperek leszakadtak. De láthatjuk, mi rejtőzik az eredményjelző dísztáblája mögött.

A 7 szegmenses kijelző Arduinohoz való csatlakoztatása nagyszerű belépő szintű projekt, amellyel jobban megismerheti Arduino tábláját. De elég könnyű megtenni. Ezért némileg bonyolítjuk a feladatot, és egy négyjegyű hétszegmenses mutatót csatlakoztatunk.



Ebben az esetben egy négyjegyű, közös katóddal rendelkező LED-jelző modult használunk.


Az indikátormodul minden szegmense multiplexelt, ami azt jelenti, hogy egy anód csatlakozási ponton osztozik a kisülésének többi szegmensével. A modulban található négy bit mindegyikének megvan a maga csatlakozási pontja közös katóddal. Ez lehetővé teszi az egyes számjegyek önálló be- és kikapcsolását. Ezenkívül ez a multiplexelési módszer lehetővé teszi a mikrokontroller számára, hogy harminckét helyett csak tizenegy vagy tizenkét érintkezőt használjon.



A jelző LED szegmensei áramkorlátozó ellenállást igényelnek, ha 5 V-ról táplálják a logikai érintkezőn. Az ellenállás értékét általában 330 és 470 ohm között veszik. További áram biztosítására tranzisztorok használata is javasolt, mivel a mikrokontroller minden érintkezője maximum 40 mA-t tud szolgáltatni. Ha bekapcsolja az összes kisülési szegmenst (8-as számú), az áramfelvétel meghaladja ezt a határértéket. Az alábbi ábra egy négyjegyű, hétszegmenses, áramkorlátozó tranzisztorokat használó indikátor bekötési rajzát mutatja.



Az alábbi ábrák az indikátor Arduino érintkezőihez való csatlakoztatására szolgálnak. Itt BC547 bipoláris NPN tranzisztorokat használnak. Az A0 kártya bemenetére csatlakoztatott 10 KOhm-os potenciométer lehetővé teszi a kijelzőn megjelenő érték megváltoztatását 0-ról 1023-ra.




Az Arduino kártyán ebben az esetben a D2-D8 digitális kimenetek az „a” – „g” szegmensek vezérlésére szolgálnak, a D9–D12 digitális kimenetek pedig a D0–D3 bitek vezérlésére. Megjegyzendő, hogy ebben a példában a pontot nem használjuk, de az alábbi vázlaton lehetséges használni. Az Arduino kártya D13 tűje a pontszegmens vezérlésére van fenntartva.



Az alábbiakban látható a kód, amely lehetővé teszi egy négyjegyű szegmensjelző vezérlését egy Arduino kártya segítségével. Ebben a számtömb bináris formában adja meg a 0 és 9 közötti számok kódjait. Ez a vázlat támogatja mind a közös katóddal rendelkező indikátorokat (alapértelmezés szerint), mind a közös anóddal rendelkező indikátorokat (ehhez a vázlat végén egy sor megjegyzést kell törölnie).


// A-tól G-ig terjedő szegmenseket (és pontokat) képviselő bitek, a 0-9 számokhoz állandó int szám = ( //ABCDEFG /dp B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, //0101, // 01 4 B10110110, 5 B00111110, 6 B11100000, 7 B11111110, 8 B11100110, 9 ); // tűk a ponthoz és az egyes szegmensekhez // DP,G,F,E,D,C,B,A const int segmentPins = ( 13,8,7,6,5,4,3,2 ); const int nbrDigits= 4; // a LED-jelző számjegyeinek száma // számjegyek 0 1 2 3 const int digitPins = ( 9,10,11,12 ); void setup() ( for(int i=0; i< 8; i++) { pinMode(segmentPins[i], OUTPUT); // устанавливаем выводы для сегментов и точки на выход } for(int i=0; i < nbrDigits; i++) { pinMode(digitPins[i], OUTPUT); } } void loop() { int value = analogRead(0); showNumber(value); } void showNumber(int number) { if(number == 0) { showDigit(0, nbrDigits-1) ; // отображаем 0 в правом разряде } else { // отображаем значение, соответствующее каждой цифре // крайняя левая цифра 0, правая на единицу меньше, чем число позиций for(int digit = nbrDigits-1; digit >= 0; digit--) ( if(szám > 0) ( showDigit(szám % 10, digit) ; number = szám / 10; ) ) ) ) // A megadott szám megjelenítése a 7 szegmenses jelző ezen a számjegyén void showDigit(int szám, int számjegy) ( digitalWrite(digitPins, HIGH); for(int szegmens = 1; szegmens< 8; segment++) { boolean isBitSet = bitRead(numeral, segment); // isBitSet будет истинным, если данный бит будет 1 // isBitSet = ! isBitSet; // опционально // раскомментируйте опциональную строчку выше для индикатора с общим анодом digitalWrite(segmentPins, isBitSet); } delay(5); digitalWrite(digitPins, LOW); }

Új cikkek

● 7. projekt: 7 szegmenses mutatók 4 számjegyű mátrixa. Dinamikus megjelenítés készítése

Ebben a kísérletben megvizsgáljuk az Arduino működését egy 4 bites hétszegmenses mátrixszal. Vegyünk egy ötletet a dinamikus megjelenítésről, amely lehetővé teszi, hogy ugyanazokat az Arduino tűket használjuk, amikor több hétszegmenses indikátoron jelenítünk meg információkat.

Szükséges alkatrészek:

A hétszegmenses mutatók 4 számjegyű mátrixa négy hétszegmenses mutatóból áll, és úgy van kialakítva, hogy egyidejűleg 4 számjegyet jelenítsen meg a mátrixon, és lehetőség van egy tizedesvessző megjelenítésére is. A 4 bites mátrix áramköre 7 szegmenses indikátorokon az ábrán látható. 7.1.

Rizs. 7.1. 4 bites mátrix séma 7 szegmenses indikátorokon

Szám kiadásához ki kell gyújtania a szükséges LED-eket az A-G és a DP érintkezőkön, és ki kell választania a kívánt mátrixot úgy, hogy LOW-t alkalmaz a 6., 8., 9. vagy 12. érintkezőre.
Csatlakoztassuk a mátrix érintkezőit az Arduino kártyához és a számokat a mátrix különböző bitjeihez. A csatlakoztatáshoz 12 Arduino tűre van szükségünk. A 4 bites mátrix Arduino kártyához való csatlakoztatásának kapcsolási rajza az ábrán látható. 7.2. Az érintkezők csatlakoztatásakor 510 Ohm-os korlátozó ellenállásokat használnak.

Rizs. 7.2. Csatlakozási diagram a 4 bites mátrixhoz az Arduinohoz

Írjunk egy vázlatot a számok (0-9) szekvenciális kimenetéről a mátrix tetszőleges regiszterébe. Egy véletlenszerű érték kiválasztásához a tartományból a random() függvényt használjuk. A számtömb a 0-9 számjegyek megjelenítéséhez szükséges adatoknak megfelelő értékeket tárol (a bájt legjelentősebb bitje az indikátor A szegmensének címkéjének, az alacsony rendű a G szegmensnek felel meg), a pins tömb az A-G és DP szegmensek érintkezőértékeit tartalmazza, a pindigits tömb a mátrix számjegy kiválasztásához szükséges érintkező értékeket tartalmazza. A vázlat tartalma a 7.1-es listában látható.

// változó az aktuális számjegy értékének tárolására int szám=0 ; // hétszegmenses mutató int számjegy=0 ; void setup()( for (int i=0 ;i<8 ;i++) pinMode(pins[i],OUTPUT); for (int i=0 ;i<4 ;i++) {pinMode(pindigits[i],OUTPUT); digitalWrite(pindigits[i],HIGH); } } void loop()( szám=(szám+1 )%10 ; showNumber(szám); // DS for (int i=0 ;i<4 ;i++) digitalWrite(pindigits[i],HIGH); digit=random(0 ,4 ); digitalWrite(pindigits,LOW); delay(3000 ); } void showNumber( int szám)( for (int i=0 ;i<7 ;i++) { if (bitRead(numbers,7 -i)==HIGH) // világítsa meg a szegmenst // kioltja a szegmenst digitalWrite(pins[i],LOW); ) )
Csatlakozási sorrend:

1. Csatlakoztasson egy hétszegmenses jelzőt az ábra szerinti diagramnak megfelelően. 7.3.
2. Töltse be a vázlatot a 7.2-es listából az Arduino táblára.

// Arduino tűk listája az a-g bitekhez való csatlakozáshoz // hétszegmenses mutató int pins=(9 ,13 ,4 ,6 ,7 ,10 ,3 ,5 ); // értékek a 0-9 számok megjelenítéséhez bájtszámok = ( B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B111111110, B1); // változó az aktuális érték tárolására és feldolgozására int szám=0 ; int szám1=0 ; int szám2=0 ; // hétszegmenses mutató int pindigits=(2 ,8 ,11 ,12 ); // változó az aktuális számjegy tárolására int számjegy=0 ; // 100 ms mérésére előjel nélküli hosszú millis1=0 ; // 1. mód - a stopper fut mód=0 ; const int BUTTON=14 ; // 14. tű (A0) a gomb csatlakoztatásához int tekButton = LOW; // Változó a gomb aktuális állapotának mentéséhez int prevButton = LOW; // Változó az előző állapot mentéséhez// a gombokhoz boolean ledOn = false ; // A LED jelenlegi állapota (be/ki) void setup(){ // Konfigurálja a gombtűt bemenetként pinMode(BUTTON, INPUT); // A lábak konfigurálása kimenetként for (int i=0 ;i<8 ;i++) pinMode(pins[i],OUTPUT); for (int i=0 ;i<4 ;i++) {pinMode(pindigits[i],OUTPUT); digitalWrite(pindigits[i],HIGH); } } void loop()( tekButton = debounce(prevButton); if (prevButton == LOW && tekButton == HIGH) // ha lenyomva... ( mode=1 -mode; // módot váltani if (mód==1 ) szám=0 ; ) if (millis()-millis1>=100 && mode==1 ) (millis1=millis1+100 ; szám=szám+1 ; if (szám==10000 ) szám=0 ; ) szám1=szám; for (int i=0 ;i<4 ;i++) { number2=number1%10 ; number1=number1/10 ; showNumber(number2,i); for (int j=0 ;j<4 ;j++) digitalWrite(pindigits[j],HIGH); digitalWrite(pindigits[i],LOW); delay(1 ); } } // függvény a számok hétszegmenses indikátoron történő megjelenítéséhez void showNumber( int szám, int dig)( for (int i=0 ;i<8 ;i++) { if (bitRead(numbers,7 -i)==HIGH) // világítsa meg a szegmenst digitalWrite(pins[i],HIGH); más // kioltja a szegmenst digitalWrite(pins[i],LOW); ) if (dig==1 ) // tizedespont a második számjegyhez digitalWrite(tűk,HIGH); ) // Visszapattanási simító funkció. Elfogadja mint // argumentum a gomb előző állapotával, és visszaadja a tényleges állapotot. logikai visszapattanás ( logikai utolsó)( logikai áram = digitalRead(BUTTON); // Olvassa el a gomb állapotát, if (utolsó != aktuális) // ha változott...(d Elay ( 5 ) ; // dem 5 m s áram = digitalRead(BUTTON); // olvassa el a gomb állapotát visszatérő áram; // visszaállítja a gomb állapotát } }

3. A gomb megnyomásával elindítjuk vagy leállítjuk a stoppert.



Tetszett a cikk? Oszd meg