Mi az a 7 szegmenses kijelző?
A hét szegmenses kijelző hét darab LED-ből (szegmensből) áll, amelyek attól függően világítanak, hová vezetjük a feszültséget. A nyolcadik szegmens a pont, amely több kijelző összekapcsolásakor tizedesvesszőként használható. Az ilyen, ponttal ellátott kijelzőt néha 8 szegmenses kijelzőnek is nevezik.
Minden LED-nek két csatlakozási pontja van – katód és anód. A hét szegmenses kijelzőknek két típusa létezik:
1. közös katód (CC – common cathode)
2. közös anód (CA – common anode)
A közös katód elnevezés azt jelenti, hogy az összes szegmens katódja össze van kötve egy közös katóddá. Hasonlóképpen, a közös anód azt jelenti, hogy az összes anód össze van kapcsolva. Közös anódos kijelző esetén az egyes LED-eket logikai 0 (0 V vagy GND) jel bevezetésével lehet felkapcsolni az A–G terminálokra, míg közös katódos kijelzőnél logikai 1 (5 V az Arduino UNO esetében) jellel világítanak fel.
A LED dióda kapcsolási jele tulajdonképpen egy nyíl, amely megmutatja, melyik irányban kell biztosítani az elektromos áram folyását ahhoz, hogy a dióda világítson. A konvenció szerint az áram a „+” pólustól a „–” pólus felé folyik. Ha a LED diódát fordított polaritással csatlakoztatnánk a feszültségforráshoz, valószínűleg semmi sem sérülne meg, csak éppen a LED nem világítana. Fordított irányban ugyanis a LED dióda (és minden más dióda, például az egyenirányító, zener vagy Schottky dióda is) nem vezető.
Kapcsolás
Ebben az útmutatóban egy egyszerű programot írunk, amellyel a kijelzőn megjelenítjük az 1, 2 és 3 számjegyeket, ahol mindegyik számjegy egy másodpercig világít. Szükségünk lesz:
-
Piros 7 szegmenses közös katód 1/2/3/4 bit125Ft – 270Ft -
Különféle értékű ellenállások 1 / 4W 20 db105Ft -
Kábelek 65 db különböző mérecsap MM665Ft (ÁFA nélkül 524Ft ) -
Nem forrasztási mező 830 pont665Ft (ÁFA nélkül 524Ft ) -
Arduino Uno R3 precíziós klón4 360Ft (ÁFA nélkül 3 433Ft )
Ebben az útmutatóban a 5011AS kijelzővel fogunk dolgozni, amelyről a termék specifikációjából megtudtuk, hogy közös katódú. A szegmenskijelző kapcsolási rajza az adattáblázatból (datasheet) a következő:
A kapcsolás a következőképpen néz ki:
- A kontaktrácsba helyezzük a 7 szegmenses kijelzőt
- Csatlakoztatjuk a GND (–) lábat az Arduino GND pontjához
- A datasheet szerint a LED dióda optimális működési feszültsége kb. 2 V. Az Arduino digitális lábai azonban akár 5 V-ot is adhatnak, ami károsíthatja a LED-eket. Ezért a kapcsolásban egy 220 Ω-os ellenállást használunk, amely korlátozza az LED-eken átfolyó áramot. Mivel minden LED közös katódos, elegendő, ha az ellenállást a COM lábra kötjük, nem kell külön 7 ellenállást minden szegmens elé kapcsolni.
Az ellenállás értékének kiszámítása viszonylag egyszerű. Részletesebb magyarázatot olvashatsz erről egy LED-ekkel foglalkozó blogbejegyzésben. - A többi vezetéket a következőképpen kötjük:
szegmens A – pin 1
szegmens B – pin 2
szegmens C – pin 3
szegmens D – pin 4
szegmens E – pin 5
szegmens F – pin 6
szegmens G – pin 7
szegmens DP (pont) – pin 8 (csak illusztráció, a programunkban a tizedes pontot nem használjuk)
Program
//jednotlivé segmenty majú označenie a,b,c,d,e,f,g
//pre zjednodušenie sme si definovali ktorý pin rozosvieti ktorý segment, čo využijeme v kóde nižšie
#define segA 1
#define segB 2
#define segC 3
#define segD 4
#define segE 5
#define segF 6
#define segG 7
#define bodka 8
//všetky piny nastavíme ako OUTPUT
//aby sme nemuseli veľa písať, nastavíme všetky piny v cykle
void setup() {
for(int i = 0 ; i < 13; i++) {
pinMode(i, OUTPUT);
}
}
//na začiatku chceme všetky segmenty zhasnuté, následne sa rozosvieti jednotka,
//po sekunde dvojka, potom trojka až znovu všetky segmenty zhasneme
void loop() {
zhasni_segmentovku();
vypis_jednotku();
delay(1000);
zhasni_segmentovku();
vypis_dvojku();
delay(1000);
zhasni_segmentovku();
vypis_trojku();
delay(1000);
zhasni_segmentovku();
}
//segmenty, ktoré chceme rozsvietiť nastavíme na hodnotu HIGH
//aby sme nemuseli veľa písať, nastavíme všetky piny v cykle
void zhasni_segmentovku() {
for (int i = 0; i < 13; i++) {
digitalWrite(i, LOW);
}
}
void vypis_jednotku() {
digitalWrite(segB, HIGH);
digitalWrite(segC, HIGH);
}
void vypis_dvojku() {
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segG, HIGH);
digitalWrite(segE, HIGH);
digitalWrite(segD, HIGH);
}
void vypis_trojku() {
digitalWrite(segA, HIGH);
digitalWrite(segB, HIGH);
digitalWrite(segG, HIGH);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
}Minden használt alkatrész, valamint sok más is megtalálható az Arduino UNO Ultimate készlet – ben.
Felhasznált források és további olvasnivaló
https://instrumentationtools.com/
A kapcsolási rajz elkészítéséhez a Fritzing programot használtuk.



