- 7 szegmenses és 4 számjegyű 7 szegmenses kijelzőmodul:
- Négyjegyű 7 szegmenses modul csatlakoztatása Raspberry Pi-hez:
- A Raspberry Pi programozása:
- Megjelenítési idő 4-jegyű, 7 szegmensben a Raspberry Pi használatával:
Mindannyian ismerjük azt a Raspberry Pi-t egy csodálatos fejlesztési platform, amely az ARM mikroprocesszoron alapul. Nagy számítási erejével csodákat képes kidolgozni az elektronikai hobbisták vagy a hallgatók kezében. Mindez csak akkor lehetséges, ha tudjuk, hogyan lehet a való világgal kölcsönhatásba hozni, és valamilyen kimeneti eszközön keresztül elemezzük az adatokat. Számos érzékelő képes érzékelni bizonyos paramétereket a valós idejű világból, és átvinni azokat egy digitális világba, és elemezzük őket, akár LCD-képernyőn, akár más kijelzőn tekinthetjük meg őket. De mindig nem lenne gazdaságos, ha a PI-vel ellátott LCD képernyőt kis mennyiségű adat megjelenítésére használnánk. Itt inkább a 16x2-es alfanumerikus LCD-kijelzőt vagy a 7-szegmenses kijelzőt használjuk. Már megtanultuk az alfanumerikus LCD és az egy szegmenses, 7 szegmenses kijelző használatát a Raspberry pi-vel. Ma fogunkInterfész 4 számjegyű, hét szegmenses kijelző modul Raspberry Pi-vel és az Idő megjelenítése rajta.
Bár a 16x2-es alfanumerikus LCD sokkal kényelmesebb, mint a 7 szegmenses kijelző, kevés olyan eset van, amikor egy 7-szegmenses kijelző hasznosabb lenne, mint egy LCD-kijelző. Az LCD-nek az a hátránya, hogy alacsony a karaktermérete, és túlterheli a projektet, ha csak numerikus értékek megjelenítését tervezi. A 7 szegmens előnye a rossz megvilágítással szemben is, és lager szögből nézhető, mint egy normál LCD képernyő. Tehát kezdjük el tudni.
7 szegmenses és 4 számjegyű 7 szegmenses kijelzőmodul:
7 Szegmenskijelző hét szegmenssel rendelkezik, és mindegyik szegmensben egy LED található, amely a megfelelő szegmensek megvilágításával jeleníti meg a számokat. Például, ha azt szeretné, hogy a 7 szegmens az "5" számot jelenítse meg, akkor az a, f, g, c és d szegmenseket kell világítania azáltal, hogy a megfelelő csapokat magasra teszi. A 7 szegmenses kijelzőknek kétféle típusa van: Közös katód és Közös anód, itt hét közös szegmens kijelzőt használunk. Tudjon meg többet a 7 szegmenses kijelzőről itt.
Most már tudjuk, hogyan jelenítsük meg a kívánt numerikus karakterünket egyetlen 7 szegmenses kijelzőn. De elég nyilvánvaló, hogy több mint egy 7-szegmenses kijelzőre lenne szükségünk, ha bármilyen információt át akarunk adni, amely egynél több számjegyű. Tehát ebben az oktatóanyagban egy négyjegyű, 7 szegmenses kijelző modult fogunk használni, az alábbiak szerint.
Mint láthatjuk, négy hét szegmens kijelző van összekapcsolva. Tudjuk, hogy minden 7 szegmenses modulnak 10 érintkezõje lesz, és négy hét szegmenses kijelzõnél összesen 40 érintkezõ lenne, és hektikus lenne, ha bárki forrasztaná õket egy táblán, ezért nagyon ajánlom mindenkinek, hogy vásároljon modult vagy készítsen saját NYÁK-t egy négyjegyű 7 szegmenses kijelző használatához. Az alábbiakban a csatlakozási vázlatot mutatjuk be:
Ahhoz, hogy megértsük, hogyan működik a négyjegyű hét szegmens modul, meg kell vizsgálnunk a fenti sémákat, amint az látható, mind a négy kijelző A-csapjai össze vannak kötve, hogy egy A-ként gyűljenek össze, és ugyanazok B, C…. -ig DP-ig. Szóval, alapvetően, ha az A bekapcsol, akkor mind a négy A-nak magasra kell mennie?
De ez nem történik meg. További négy csapunk van D0-tól D3-ig (D0, D1, D2 és D3), amelyek segítségével szabályozható, hogy a négy közül melyik kijelző legyen magas. Például: Ha azt akarom, hogy a kimenetem csak a második kijelzőn legyen, akkor csak a D1-et kell magasra tenni, miközben a többi csapot (D0, D2 és D3) alacsonyan tartom. Egyszerűen kiválaszthatjuk, hogy melyik kijelző legyen aktív, a D0-tól D3-ig terjedő csapok segítségével, és milyen karaktert jelenítsen meg az A-tól DP-ig.
Négyjegyű 7 szegmenses modul csatlakoztatása Raspberry Pi-hez:
Lássuk, hogyan, hogyan tudjuk összekapcsolni ezt a 4 jegyű, 7 szegmenses modult a Raspberry Pi-vel. A 7 szegmenses modul 16 érintkezővel rendelkezik, az alábbiak szerint. Lehet, hogy a modulban kevesebb van, de ne aggódjon, ennek ellenére is biztosan benne lesz a következő
- 7 vagy 8 szegmenses csapok (itt csapok 1-től 8-ig kezdődnek)
- Földelt csap (itt 11. tű)
- 4 jegyű csapok (itt 13–16)
Az alábbiakban a málna pi digitális óra sematikus ábrája látható, a 4-jegyű, hét szegmenses kijelzőmodul és a Raspberry Pi összekapcsolásával:
Az alábbi táblázat segítséget nyújt a kapcsolatok létrehozásában és annak ellenőrzésében is, hogy megfelelnek-e a fent bemutatott vázlatoknak.
S.No |
Rsp Pi GPIO szám |
Rsp Pi PIN-kód |
7-szegmenses név |
7 szegmensű pin száma (itt, ebben a modulban) |
1 |
GPIO 26 |
PIN 37 |
Szegmens a |
1 |
2 |
GPIO 19 |
PIN 35 |
Szegmens b |
2 |
3 |
GPIO 13 |
33. PIN |
C szegmens |
3 |
4 |
GPIO 6 |
PIN 31 |
D szegmens |
4 |
5. |
GPIO 5 |
29. PIN |
E. Szegmens |
5. |
6. |
GPIO 11 |
23. PIN |
F szegmens |
6. |
7 |
GPIO 9 |
21. PIN |
Szegmens g |
7 |
8. |
GPIO 10 |
19. PIN |
Szegmens DP |
8. |
9. |
GPIO 7 |
PIN 26 |
1. számjegy |
13. |
10. |
GPIO 8 |
24. PIN |
2. számjegy |
14 |
11. |
GPIO 25 |
22. PIN |
3. számjegy |
15 |
12. |
GPIO 24 |
PIN 18 |
4. számjegy |
16. |
13. |
Talaj |
Talaj |
Talaj |
11. |
Azonosítsa a modul csapjait, és mindannyian jól tudják folytatni a kapcsolatokat. A GPIO csapok kiszúrása a Raspberry pi-ben kissé kihívást jelenthet, ezért ezt a képet a GPIO Pins számára készítettem.
A Raspberry Pi programozása:
Itt Python programozási nyelvet használunk az RPi programozásához. A Raspberry Pi programozásának számos módja van. Ebben az oktatóanyagban a Python 3 IDE-t használjuk, mivel ez a leggyakrabban használt. A teljes Python program az oktatóanyag végén található. Tudjon meg többet a Raspberry Pi programozásáról és futtatásáról.
Néhány parancsról fogunk beszélni, amelyeket a PYHTON programban fogunk használni ehhez a projekthez, Először GPIO fájlt fogunk importálni a könyvtárból, az alábbi funkció lehetővé teszi számunkra a PI GPIO csapok programozását. A „GPIO” -ot „IO” -ra is átnevezzük, így a programban, amikor csak GPIO-csapokra akarunk utalni, az „IO” szót fogjuk használni. Importáltunk időt és dátumot is, hogy leolvassuk az idő értékét az Rsp Pi-ről.
importálja az RPi.GPIO-t GPIO importálási időként, dátumidőként
Előfordulhat, hogy amikor a GPIO csapok, amelyeket megpróbálunk használni, más funkciókat is elláthatnak. Ebben az esetben figyelmeztetéseket kapunk a program futtatása közben. Az alábbi parancs arra utasítja a PI-t, hogy figyelmen kívül hagyja a figyelmeztetéseket, és folytassa a programot.
IO.setwarnings (hamis)
Hivatkozhatunk a PI GPIO csapjaira, akár a fedélzeten található PIN-kód, akár a funkciójuk száma alapján. A táblán lévő „PIN 29” -hez hasonlóan a „GPIO5”. Tehát itt elmondjuk, hogy vagy itt fogjuk ábrázolni a „29” vagy „5” betűket. A GPIO.BCM azt jelenti, hogy az 5-öt fogjuk képviselni a GPIO5 29. tűnél.
IO.setmode (GPIO.BCM)
Mint mindig, a csapok inicializálásával kell kezdenünk, itt mind a szegmens csapok, mind a számjegyű csapok kimeneti csapok. Programozás céljából tömböket alakítunk ki a szegmens csapok számára, és inicializáljuk őket 0-ra, miután GPIO-ként nyilvánítottuk őket.
szegmens8 = (26,19,13,6,5,11,9,10) a 8. szegmens szegmenséhez: GPIO.setup (szegmens, GPIO.OUT) GPIO.output (szegmens, 0)
Hasonlóképpen, a számjegyű csapok esetében ezeket kimeneti csapokként deklaráljuk, és alapértelmezés szerint „0” -nak adjuk
#Digit 1 GPIO.setup (7, GPIO.OUT) GPIO.output (7, 0) # Original from #Digit 2 GPIO.setup (8, GPIO.OUT) GPIO.output (8, 0) # Originally #Digit 3 GPIO.beállítás (25, GPIO.OUT) GPIO.output (25, 0) # kezdetben #Digit 4 GPIO.setup (24, GPIO.OUT) GPIO.output (24, 0) # off kezdetben
Tömböket kell kialakítanunk, hogy minden számot megjelenítsünk egy hét szegmenses kijelzőn. Egy szám megjelenítéséhez ellenőriznünk kell mind a 7 szegmens csapot (a pöttyöt nem számítva), vagyis ki kell kapcsolni vagy be kell kapcsolni őket. Például az 5-ös szám megjelenítéséhez tegyük a következő elrendezést
S.No |
Rsp Pi GPIO szám |
7-szegmenses név |
Állapot az '5' megjelenítéséhez. (0-> KI, 1-> BE) |
1 |
GPIO 26 |
Szegmens a |
1 |
2 |
GPIO 19 |
Szegmens b |
1 |
3 |
GPIO 13 |
C szegmens |
0 |
4 |
GPIO 6 |
D szegmens |
1 |
5. |
GPIO 5 |
E. Szegmens |
1 |
6. |
GPIO 11 |
F szegmens |
0 |
7 |
GPIO 9 |
Szegmens g |
1 |
Hasonlóképpen megvan az összes szám és ábécé sorszáma. Írhat egyedül, vagy használhatja az alábbi táblázatot.
Ezekkel az adatokkal kialakíthatjuk a tömböket a python programunk minden egyes számához, az alábbiak szerint.
null = nulla = egy = kettő = három = négy = öt = hat = hét = nyolc = kilenc =
Ha betartja a programot, akkor lesz egy funkció az egyes karakterek megjelenítésére a 7 szegmenses kijelzőnkben, de ezt egyelőre kihagyhatja, és beléphet a míg végtelen ciklusba. Hol olvassuk el a jelen időt a Raspberry Pi-ből, és osszuk el az idő értékét négy változó között. Például, ha az idő 10,45, akkor a h1 változó értéke 1, h2 értéke 0, m1 értéke 4vand m2 lesz 5.
now = datetime.datetime.now () hour = now.hour minute = now.minute h1 = óra / 10 h2 = óra% 10 m1 = perc / 10 m2 = perc% 10 nyomtatás (h1, h2, m1, m2)
Ezt a négy változó értéket meg kell jelenítenünk négy számjegyünkön. A változó értékének egy számjegyre történő írásához a következő sorokat használhatjuk. Itt az 1. számjegyen jelenítjük meg azáltal, hogy magasra megy, majd a print_segment (változó) függvény meghívásra kerül, hogy az értéket a változóban megjelenítse a szegmens kijelzőjén. Kíváncsi lehet, hogy miért van késésünk ezután, és miért kapcsoljuk ki ezt a számjegyet ezek után.
GPIO.output (7, 1) # Kapcsolja be az 1. számjegyet print_segment (h1) # H1 nyomtatása a time.sleep (delay_time) szakaszig. GPIO.output (7, 0) #Kapcsolja ki az 1. számjegyet
Ennek oka az, hogy mivel tudjuk, hogy egyszerre csak egy számjegyet tudunk megjeleníteni, de négy számjegyünk van, amelyet meg kell jeleníteni, és csak akkor, ha mind a négy számjegy megjelenik, a teljes négyjegyű szám látható lesz a felhasználó számára.
Tehát, hogyan jelenítse meg mind a 4 számjegyet egyszerre ?
Számunkra szerencsés, hogy MPU-junk sokkal gyorsabb, mint egy emberi szem, tehát amit valójában csinálunk: egy számjegyet jelenítünk meg egyszerre, de nagyon gyorsan, ahogy fentebb látható.
Kiválasztunk egy számjegyű kijelzőt, amely 2ms-ig vár (késleltetési idő változó), hogy az MPU és a 7 szegmens feldolgozhassa, majd kikapcsolja ezt a számjegyet, és továbblépjen a következő számjegyre, és ugyanezt tegye, amíg el nem érjük az utolsó számjegyet. Ezt a 2ms késést emberi szem nem tudja megfigyelni, és úgy tűnik, hogy mind a négy számjegy BE van kapcsolva.
Az utolsó dolog, amit meg kell tanulni, hogy megtudja, hogyan működik a print_segment (változó) függvény. Ebben a függvényben az eddig deklarált tömböket használjuk. Tehát bármilyen változónak, amelyet erre a függvényre küldünk, annak értéke (0-9) között kell lennie, a változó karakter megkapja ezt az értéket, és összehasonlítja a valós értékkel. Itt a változót összehasonlítjuk az '1' értékkel. Hasonlóképpen összehasonlítjuk az összes 0 és 9 közötti számmal. Ha ez egyezés, akkor a tömböket használjuk, és mindegyik értéket hozzárendeljük a megfelelő szegmens csapokhoz, az alábbiak szerint.
def print_segment (charector): ha charector == 1: i-re a (7) tartományban: GPIO.output (8. szegmens, egy)
Megjelenítési idő 4-jegyű, 7 szegmensben a Raspberry Pi használatával:
Használja az itt megadott vázlatot és kódot a kapcsolatok létrehozásához, és ennek megfelelően programozza a málna pi-t. Miután minden elkészült, indítsa el a programot, és a hét szegmens kijelzőjén meg kell találnia az aktuális időt. De néhány dolgot meg kell vizsgálnia előtte
- Győződjön meg róla, hogy a Raspberry Pi-t mindenkor beállította aktuális idővel, ha offline időn fut.
- Táplálja a Raspberry pi készüléket adapterrel, és ne a laptopjával / számítógépével, mert a 7 szegmenses kijelző által felvett áram mennyisége magas, és az USB-port nem tudja azt beszerezni.
Ha minden a várakozásoknak megfelelően működik, akkor az alábbiakban találhat ilyesmit.
A málna pióra teljes működését az alábbi videón is ellenőrizhetjük. Remélem, tetszett a projekt, és élvezett egy ilyen építését. Mondja el, mit gondol, vagy ha segítségre van szüksége.