- 7-segmentni i 4-znamenkasti 7-segmentni modul zaslona:
- Povezivanje četveroznamenkastog 7-segmentnog modula s Raspberry Pi:
- Programiranje vašeg Raspberry Pi:
- Prikaz vremena na 4-znamenkastom 7-segmentu pomoću Raspberry Pi:
Svi znamo taj Raspberry Pi je prekrasna razvojna platforma koja se temelji na ARM mikroprocesoru. Sa svojom velikom računskom snagom može stvoriti čuda u rukama hobista elektronike ili učenika. Sve to može biti moguće samo ako znamo kako ga natjerati da stupi u interakciju sa stvarnim svijetom i analizira podatke putem nekog izlaznog uređaja. Postoji mnogo senzora koji mogu otkriti određene parametre iz svijeta stvarnog vremena i prenijeti ih u digitalni svijet, a mi ih analiziramo gledajući ih na LCD zaslonu ili nekom drugom zaslonu. Ali, uvijek ne bi bilo ekonomično koristiti LCD zaslon s PI za prikaz male količine podataka. Ovdje radije koristimo alfanumerički LCD zaslon 16x2 ili 7-segmentni zaslon. Već smo naučili kako koristiti alfanumerički LCD i jednosegmentni 7-segmentni zaslon s Raspberry pi. Danas ćemoSučelje 4-znamenkasti sedmosegmentni modul zaslona s Raspberry Pi i prikaz vremena preko njega.
Iako je alfanumerički LCD 16x2 puno ugodniji od 7-segmentnog zaslona, malo je scenarija kada bi 7-segmentni zaslon bio korisniji od LCD zaslona. LCD pati od nedostatka male veličine znakova i bit će pretjeran za vaš projekt ako samo planirate prikazati neke numeričke vrijednosti. 7-segmenti također imaju prednost u odnosu na loše stanje osvjetljenja i mogu se gledati iz većih kutova od uobičajenog LCD zaslona. Pa, počnimo to znati.
7-segmentni i 4-znamenkasti 7-segmentni modul zaslona:
Prikaz 7 segmenata ima sedam segmenata, a svaki segment ima jednu LED diodu za prikaz brojeva osvjetljavanjem odgovarajućih segmenata. Kao ako želite da 7-segment prikazuje broj "5", tada trebate žariti segmente a, f, g, c i d tako da odgovarajuće pinove postavite visoko. Postoje dvije vrste 7-segmentnih zaslona: Common Cathode i Common Anode, ovdje koristimo sedemsegmentni prikaz Common Cathode. Ovdje saznajte više o 7-segmentnom prikazu.

Sada znamo prikazati željeni numerički znak na jednom 7-segmentnom zaslonu. No, prilično je očito da bi nam bilo potrebno više od jednog 7-segmentnog zaslona da bismo prenijeli bilo koju informaciju koja ima više od jedne znamenke. Dakle, u ovom uputstvu koristit ćemo četveroznamenkasti 7-segmentni modul prikaza kao što je prikazano u nastavku.

Kao što vidimo, postoje četiri prikaza segmenta prikazana zajedno. Znamo da će svaki 7-segmentarni modul imati 10 pinova, a za 4 sedmosegmentna zaslona bilo bi ukupno 40 pinova i bilo bi užurbano da ih bilo tko lemi na točkaste ploče, pa toplo preporučujem svima da kupe modul ili izradite vlastiti PCB za upotrebu četveroznamenkastog 7-segmentnog zaslona. Shema veze za isti prikazana je u nastavku:

Da bismo razumjeli kako funkcionira četveroznamenkasti sedmosegmentni modul, moramo pogledati gornje sheme, kao što je prikazano, A pinovi sva četiri zaslona povezani su kako bi se okupili kao jedan A i isti za B, C…. do DP. Dakle, u osnovi ako aktivira A, onda bi sva četiri A trebala ići visoko, zar ne?
Ali, to se ne događa. Imamo dodatna četiri pina od D0 do D3 (D0, D1, D2 i D3) koji se mogu koristiti za kontrolu koji prikaz od četiri mora biti visok. Na primjer: Ako trebam da moj izlaz bude prisutan samo na drugom zaslonu, tada bi samo D1 trebao biti visok, a ostale pinove (D0, D2 i D3) držati niskim. Jednostavno možemo odabrati koji će zaslon biti aktivan pomoću igla od D0 do D3 i koji će se znak prikazivati pomoću igara od A do DP.
Povezivanje četveroznamenkastog 7-segmentnog modula s Raspberry Pi:
Pogledajmo kako, kako možemo povezati ovaj četveroznamenkasti 7-segmentni modul s našim Raspberry Pi. Modul od 7 segmenata ima 16 pinova kao što je prikazano u nastavku. Vaš modul možda ima manje, ali ne brinite da će sigurno imati sljedeće
- 7 ili 8 segmentnih pinova (ovdje pinovi koji počinju od 1 do 8)
- Pribadača (ovdje pin 11)
- Četveroznamenkaste iglice (ovdje iglice od 13 do 16)
Dolje je data shema za digitalni sat Raspberry Pi spajanjem četveroznamenkastog sedmosegmentnog modula zaslona s Raspberry Pi:

Sljedeća tablica također će vam pomoći u uspostavljanju veza i provjeri da li je ona u skladu sa shemama prikazanim gore.
|
S.Br |
Rsp Pi GPIO broj |
Rsp Pi PIN broj |
Naziv 7-segmenta |
7-seg pin broj (ovdje u ovom modulu) |
|
1 |
GPIO 26 |
PIN 37 |
Segment a |
1 |
|
2 |
GPIO 19 |
PIN 35 |
Segment b |
2 |
|
3 |
GPIO 13 |
PIN 33 |
Segment c |
3 |
|
4 |
GPIO 6 |
PIN 31 |
Segment d |
4 |
|
5 |
GPIO 5 |
PIN 29 |
Segment e |
5 |
|
6 |
GPIO 11 |
PIN 23 |
Segment f |
6 |
|
7 |
GPIO 9 |
PIN 21 |
Segment g |
7 |
|
8 |
GPIO 10 |
PIN 19 |
Segment DP |
8 |
|
9 |
GPIO 7 |
PIN 26 |
Znamenka 1 |
13 |
|
10 |
GPIO 8 |
PIN 24 |
Znamenka 2 |
14 |
|
11 |
GPIO 25 |
PIN 22 |
Znamenka 3 |
15 |
|
12 |
GPIO 24 |
PIN 18 |
Znamenka 4 |
16 |
|
13 |
Prizemlje |
Prizemlje |
Prizemlje |
11 |

Prepoznajte pribadače na vašem modulu i svi ćete nastaviti s povezivanjem. Uočavanje GPIO pinova u Raspberry pi možda će biti malo izazovan zadatak pa sam vam pružio ovu sliku za GPIO pinove.
Programiranje vašeg Raspberry Pi:
Ovdje koristimo programski jezik Python za programiranje RPi-a. Postoji mnogo načina za programiranje vašeg Raspberry Pi. U ovom uputstvu koristimo Python 3 IDE, jer je on najkorišteniji. Kompletan Python programa daje na kraju ovog vodiča. Ovdje saznajte više o programu i pokretanju koda u Raspberry Pi.
Razgovarat ćemo o nekoliko naredbi koje ćemo koristiti u programu PYHTON za ovaj projekt, Prvo ćemo uvesti GPIO datoteku iz knjižnice, donja funkcija omogućuje nam programiranje GPIO pinova PI. Također smo preimenovali "GPIO" u "IO", pa ćemo u programu kad god se želimo pozvati na GPIO pinove upotrijebiti riječ "IO". Također smo uvezli vrijeme i datum kako bismo očitali vrijednost vremena iz Rsp Pi.
import RPi.GPIO kao GPIO vrijeme uvoza, datum i vrijeme
Ponekad, kada GPIO pinovi, koje pokušavamo koristiti, možda rade neke druge funkcije. U tom ćemo slučaju primiti upozorenja tijekom izvršavanja programa. Ispod naredba govori PI-u da zanemari upozorenja i nastavi s programom.
IO.setwarnings (False)
GPIO pinove PI možemo uputiti bilo brojem pina na ploči ili brojem njihove funkcije. Poput 'PIN 29' na ploči je 'GPIO5'. Dakle, ovdje kažemo ili ćemo ovdje predstavljati pin s '29' ili '5'. GPIO.BCM znači da ćemo predstaviti upotrebu 5 za GPIO5 pin 29.
IO.setmode (GPIO.BCM)
Kao i uvijek trebali bismo započeti inicijalizacijom pinova, ovdje su i pinovi segmenta i pinovi sa znamenkama izlazne pinovi. U svrhu programiranja oblikujemo nizove za igle segmenta i inicijaliziramo ih na '0' nakon što smo ih deklarirali kao GPIO.OUT
segment8 = (26,19,13,6,5,11,9,10) za segment u segmentu8: GPIO.setup (segment, GPIO.OUT) GPIO.output (segment, 0)
Slično za igle za znamenke, deklariramo ih kao izlazne igle i prema zadanim postavkama stavljamo ih u '0'
#Digit 1 GPIO.setup (7, GPIO.OUT) GPIO.output (7, 0) # Isključeno inicijalno #Digit 2 GPIO.setup (8, GPIO.OUT) GPIO.output (8, 0) # Off off početku #Digit 3 GPIO.setup (25, GPIO.OUT) GPIO.output (25, 0) # Isključeno inicijalno #Digit. 4 GPIO.setup (24, GPIO.OUT) GPIO.output (24, 0) # Off in početku
Moramo oblikovati nizove za prikaz svakog broja na sedmosegmentnom zaslonu. Da bismo prikazali jedan broj, moramo kontrolirati svih 7 segmentnih pinova (točkasta igla isključena), odnosno oni moraju biti isključeni ili uključeni. Na primjer, da bismo prikazali broj 5, napravimo sljedeći raspored
|
S.Br |
Rsp Pi GPIO broj |
Naziv 7-segmenta |
Status za prikaz '5'. (0-> ISKLJUČENO, 1-> UKLJUČENO) |
|
1 |
GPIO 26 |
Segment a |
1 |
|
2 |
GPIO 19 |
Segment b |
1 |
|
3 |
GPIO 13 |
Segment c |
0 |
|
4 |
GPIO 6 |
Segment d |
1 |
|
5 |
GPIO 5 |
Segment e |
1 |
|
6 |
GPIO 11 |
Segment f |
0 |
|
7 |
GPIO 9 |
Segment g |
1 |
Slično imamo i redni broj za sve brojeve i abecede. Možete sami pisati ili koristiti tablicu u nastavku.

Pomoću tih podataka možemo oblikovati nizove za svaki broj u našem python programu, kao što je prikazano dolje.
null = nula = jedan = dva = tri = četiri = pet = šest = sedam = osam = devet =
Ako slijedite program, postojat će funkcija za prikaz svakog znaka na našem 7-segmentnom zaslonu, ali, zasad to preskočite i uđite u dok beskonačnu petlju. Gdje pročitajte sadašnje vrijeme s Raspberry Pi i podijelite vrijednost vremena između četiri varijable. Na primjer, ako je vrijeme 10,45, tada će varijabla h1 imati 1, h2 imat će 0, m1 će imati 4 i m2 će imati 5.
sada = datetime.datetime.now () sat = sada.sat minuta = sada.minuta h1 = sat / 10 h2 = sat% 10 m1 = minuta / 10 m2 = minuta% 10 ispis (h1, h2, m1, m2)
Moramo prikazati ove četiri vrijednosti varijabli na naše četiri znamenke. Za pisanje vrijednosti varijable u znamenku možemo koristiti sljedeće retke. Ovdje smo prikazani na znamenci 1 čineći je visokom, a zatim će se pozvati funkcija print_segment (varijabla) za prikaz vrijednosti u varijabli na prikaz segmenta. Možda se pitate zašto imamo kašnjenje nakon toga i zašto isključujemo ovu znamenku nakon toga.
GPIO.output (7, 1) # Uključi Digit One print_segment (h1) # Ispiši h1 na segmentu time.sleep (delay_time) GPIO.output (7, 0) # Isključi Digit One
Razlog je taj što, kao što znamo, možemo istodobno prikazati samo jednu znamenku, ali imamo četiri znamenke koje će se prikazati i samo ako su prikazane sve četiri znamenke, cijeli će četveroznamenkasti broj biti vidljiv korisniku.
Pa, kako prikazati sve 4 znamenke u isto vrijeme ?
Srećom po nas što je naš MPU mnogo brži od ljudskog oka, pa ono što zapravo radimo: prikazujemo jednu po jednu znamenku, ali to radimo vrlo brzo kao što je gore prikazano.
Odaberemo jednoznamenkasti prikaz koji čeka 2 ms (varijabilno kašnjenje_vrijeme), tako da ga MPU i 7-segment mogu obraditi, a zatim isključuju tu znamenku i prelaze na sljedeću znamenku i čine isto dok ne dosegnemo zadnju znamenku. Ljudsko oko ne može primijetiti ovo kašnjenje od 2 ms, a čini se da su sve četiri znamenke istodobno UKLJUČENE.
Posljednja stvar koju treba naučiti je znati kako funkcionira funkcija print_segment (varijabla) . Unutar ove funkcije koristimo nizove koje smo do sada deklarirali. Dakle, koja god varijabla koju pošaljemo ovoj funkciji treba imati vrijednost između (0-9), znak varijable primit će ovu vrijednost i usporediti je sa stvarnom vrijednošću. Ovdje se varijabla uspoređuje s '1'. Slično tome uspoređujemo sa svim brojevima od 0 do 9. Ako se radi o podudaranju, koristimo nizove i svaku vrijednost dodijeljujemo odgovarajućim segmentnim pinovima kao što je prikazano dolje.
def print_segment (charector): ako charector == 1: za i u rasponu (7): GPIO.output (segment8, one)
Prikaz vremena na 4-znamenkastom 7-segmentu pomoću Raspberry Pi:
Upotrijebite ovdje shemu i kod da biste uspostavili veze i u skladu s tim programirali vaš malina pi. Nakon što je sve gotovo, samo pokrenite program i trebali biste pronaći trenutno vrijeme koje se prikazuje na sedmosegmentnom zaslonu. Ali, malo je stvari koje morate provjeriti prije ovoga
- Obavezno postavite Raspberry Pi s trenutnim vremenom za svaki slučaj ako radi izvanmrežno.
- Napajajte svoj Raspberry pi adapterom, a ne prijenosnim računalom / računalom, jer je količina struje koju privlači 7-segmentni zaslon velika i vaš USB priključak ne može je izvoriti.
Ako sve funkcionira prema očekivanjima, trebali biste pronaći nešto poput ovoga u nastavku.

Kompletan rad ovog malina pi sata također se može provjeriti na videu datom u nastavku. Nadam se da vam se svidio projekt i uživali ste u njegovoj izradi. Javite mi što mislite ili ako trebate pomoć.
