Fiókom
TERMÉK KATEGÓRIÁK
08/17/2022 Útmutató: 7 szegmenses kijelző bekötése + kód

Útmutató: 7 szegmenses kijelző bekötése + kód

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:

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:

  1. A kontaktrácsba helyezzük a 7 szegmenses kijelzőt
  2. Csatlakoztatjuk a GND (–) lábat az Arduino GND pontjához
  3. 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.

  4. 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.

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük