- Mòdul de visualització de 7 segments i 4 dígits de 7 segments:
- Connexió del mòdul de 4 dígits de 7 segments amb Raspberry Pi:
- Programació del vostre Raspberry Pi:
- Temps de visualització en 4 segments de 7 dígits amb Raspberry Pi:
Tots sabem que Raspberry Pi és una meravellosa plataforma de desenvolupament basada en microprocessador ARM. Amb la seva elevada potència computacional pot fer meravelles en mans d’aficionats a l’electrònica o d’estudiants. Tot això només pot ser possible si sabem com interactuar amb el món real i analitzar les dades mitjançant algun dispositiu de sortida. Hi ha molts sensors que poden detectar determinats paràmetres del món en temps real i transferir-los a un món digital i els analitzem visualitzant-los en una pantalla LCD o en alguna altra pantalla. Però, sempre no seria econòmic utilitzar una pantalla LCD amb PI per mostrar una petita quantitat de dades. Aquí és on preferim utilitzar la pantalla LCD alfanumèrica de 16x2 o la pantalla de 7 segments. Ja hem après a utilitzar una pantalla LCD alfanumèrica i una pantalla de segment de 7 segments amb Raspberry pi. Avui ho faremInterfície de quatre dígits amb un mòdul de visualització de 7 segments amb Raspberry Pi i mostra el temps a sobre.
Tot i que el LCD alfanumèric de 16x2 és molt més còmode que la pantalla de 7 segments, hi ha pocs escenaris en què una pantalla de 7 segments sigui més útil que una pantalla LCD. La pantalla LCD té l’inconvenient de tenir una mida de caràcter baixa i serà excessiva per al vostre projecte si només teniu previst mostrar alguns valors numèrics. Els segments de 7 també tenen l'avantatge de no tenir un estat d'il·luminació deficient i es poden veure des d'un angle lager que una pantalla LCD normal. Comencem, doncs, a saber-ho.
Mòdul de visualització de 7 segments i 4 dígits de 7 segments:
La pantalla de 7 segments inclou set segments i cada segment té un LED al seu interior per mostrar els números il·luminant els segments corresponents. Igual que si voleu que el segment de 7 mostri el número "5", haureu de fer brillar el segment a, f, g, c i d fent que els pins corresponents siguin alts. Hi ha dos tipus de pantalles de 7 segments: càtode comú i ànode comú; aquí estem fent servir pantalles de càtode comú de set segments. Obteniu més informació sobre la visualització de 7 segments aquí.

Ara sabem com mostrar el caràcter numèric desitjat en una sola pantalla de 7 segments. Però, és bastant evident que necessitaríem més d’una pantalla de 7 segments per transmetre qualsevol informació que tingui més d’un dígit. Per tant, en aquest tutorial utilitzarem un mòdul de visualització de 7 segments de 4 dígits, tal com es mostra a continuació.

Com podem veure, hi ha quatre pantalles de set segments connectades entre si. Sabem que cada mòdul de 7 segments tindrà 10 pins i, per a 4 pantalles de 7 segments, hi hauria 40 pins en total i seria trepidant que qualsevol persona els soldés en un tauler de punts, així que recomanaria a qualsevol que comprés un mòdul o feu el vostre propi PCB per utilitzar una pantalla de 7 dígits de 4 dígits. A continuació es mostra l’esquema de connexió del mateix:

Per entendre com funciona el mòdul de quatre segments de quatre dígits, hem de mirar els esquemes anteriors, tal com es mostra, els pins A de les quatre pantalles estan connectats per reunir-se com un A i el mateix per a B, C… fins a DP. Per tant, bàsicament, si s’activa l’activador A, les quatre A haurien d’anar a dalt, oi?
Però això no passa. Tenim quatre pins addicionals de D0 a D3 (D0, D1, D2 i D3) que es poden utilitzar per controlar quina visualització de les quatre hauria de pujar. Per exemple: si necessito que la meva sortida només estigui present a la segona pantalla, només s'hauria de posar D1 alt mentre es mantindran altres pins (D0, D2 i D3) tan baixos. Simplement podem seleccionar quina pantalla ha d’estar activa mitjançant els pins de D0 a D3 i quin caràcter es mostrarà mitjançant els pins d’A a DP.
Connexió del mòdul de 4 dígits de 7 segments amb Raspberry Pi:
Vegem com, com podem connectar aquest mòdul de 4 dígits de 7 segments amb el nostre Raspberry Pi. El mòdul de 7 segments té 16 pins com es mostra a continuació. És possible que el mòdul en tingui menys, però no us preocupeu, encara tindrà el següent
- 7 o 8 pins de segment (aquí pins que comencen de l'1 al 8)
- Pin de terra (aquí pin 11)
- Pins de 4 dígits (aquí pins 13 a 16)
A continuació es mostra l’ esquema del rellotge digital raspberry pi mitjançant la connexió del mòdul de visualització de 7 segments de 4 dígits amb Raspberry Pi:

La taula següent també us ajudarà a establir les connexions i verificar-les segons els esquemes que es mostren més amunt.
|
S.No |
Número GPIO Rsp Pi |
Número PIN Rsp Pi |
7-Nom del segment |
Número de pin de 7 segments (aquí en aquest mòdul) |
|
1 |
GPIO 26 |
PIN 37 |
Segmenta 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 |
Segmentar DP |
8 |
|
9 |
GPIO 7 |
PIN 26 |
Dígit 1 |
13 |
|
10 |
GPIO 8 |
PIN 24 |
Dígit 2 |
14 |
|
11 |
GPIO 25 |
PIN 22 |
Dígit 3 |
15 |
|
12 |
GPIO 24 |
PIN 18 |
Dígit 4 |
16 |
|
13 |
Terra |
Terra |
Terra |
11 |

Identifiqueu els pins del mòdul i esteu bé per continuar amb les connexions. Esbrinar els pins GPIO a Raspberry pi pot ser una tasca difícil, de manera que us he proporcionat aquesta imatge per als pins GPIO.
Programació del vostre Raspberry Pi:
Aquí estem utilitzant el llenguatge de programació Python per programar RPi. Hi ha moltes maneres de programar el vostre Raspberry Pi. En aquest tutorial estem fent servir l' IDE Python 3, ja que és el més utilitzat. El programa complet de Python es dóna al final d’aquest tutorial. Obteniu més informació sobre Programar i executar codi a Raspberry Pi aquí.
Parlarem de poques ordres que farem servir al programa PYHTON per a aquest projecte, Primer importarem el fitxer GPIO de la biblioteca, la funció següent ens permet programar pins PIN de GPIO. També estem canviant el nom de "GPIO" per "IO", de manera que al programa sempre que vulguem fer referència als pins GPIO utilitzarem la paraula "IO". També hem importat l’ hora i la data per llegir el valor del temps des de Rsp Pi.
importar RPi.GPIO com a hora d'importació GPIO, data i hora
De vegades, quan els pins GPIO, que intentem utilitzar, poden estar fent algunes altres funcions. En aquest cas, rebrem avisos mentre executem el programa. L'ordre següent indica al PI que ignori les advertències i que continuï amb el programa.
IO.setwarnings (fals)
Podem referir els pins GPIO de PI, ja sigui pel número de pin a bord o pel seu número de funció. Igual que el "PIN 29" al tauler és "GPIO5". Així doncs, aquí expliquem que aquí representarem el passador per "29" o "5". GPIO.BCM significa que representarem l’ús de 5 per al pin 29 de GPIO5.
IO.setmode (GPIO.BCM)
Com sempre, hauríem de començar inicialitzant els pins, aquí tant els pins de segment com els pins de dígits són pins de sortida. A efectes de programació, formem matrius per als pins del segment i els inicialitzem a '0' després de declarar-los com a GPIO.
segment8 = (26,19,13,6,5,11,9,10) per al segment del segment8: GPIO.setup (segment, GPIO.OUT) GPIO.output (segment, 0)
De manera similar, per als pins de dígits els declarem com a pins de sortida i els fem "0" per defecte
#Digit 1 GPIO.setup (7, GPIO.OUT) GPIO.output (7, 0) #Off inicialment #Digit 2 GPIO.setup (8, GPIO.OUT) GPIO.output (8, 0) #Off inicialment #Digit 3 GPIO.setup (25, GPIO.OUT) GPIO.output (25, 0) #Off inicialment #Digit 4 GPIO.setup (24, GPIO.OUT) GPIO.output (24, 0) #Off inicialment
Hem de formar matrius per mostrar cada número en una pantalla de set segments. Per mostrar un número, hem de controlar els 7 pins de segment (exclosos els punts), és a dir, cal apagar-los o activar-los. Per exemple, per mostrar el número 5, fem la següent disposició
|
S.No |
Número GPIO Rsp Pi |
7-Nom del segment |
Estat per mostrar "5". (0-> OFF, 1-> ON) |
|
1 |
GPIO 26 |
Segmenta 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 |
De la mateixa manera, tenim un número de seqüència per a tots els números i alfabets. Podeu escriure pel vostre compte o utilitzar el gràfic següent.

Amb aquestes dades podem formar les matrius de cada número del nostre programa Python, tal com es mostra a continuació.
nul = zero = un = dos = tres = quatre = cinc = sis = set = vuit = nou =
Si seguiu el programa, hi haurà una funció per mostrar cada caràcter a la nostra pantalla de 7 segments, però, deixem-ho per ara i entrem al bucle infinit mentre . On es llegeix l’hora actual de Raspberry Pi i es divideix el valor del temps entre quatre variables. Per exemple, si el temps és 10.45, la variable h1 tindrà 1, h2 tindrà 0, m1 tindrà 4v i m2 en tindrà 5.
now = datetime.datetime.now () hour = now.hour minute = now.minute h1 = hour / 10 h2 = hour% 10 m1 = minute / 10 m2 = minute% 10 print (h1, h2, m1, m2)
Hem de mostrar aquests quatre valors variables als nostres quatre dígits respectivament. Per escriure un valor de variable en un dígit podem utilitzar les línies següents. Aquí es mostra al dígit 1 fent-lo pujar, llavors es cridarà la funció print_segment (variable) per mostrar el valor de la variable a la pantalla del segment. Us preguntareu per què tenim un retard després i per què desactivem aquest dígit després d'això.
GPIO.output (7, 1) #Activa el dígit un_segment_impressió (h1) #Imprimeix h1 al segment time.sleep (delay_time) GPIO.output (7, 0) #Apaga el dígit un
La raó és que, com sabem, només podem mostrar un dígit a la vegada, però tenim quatre dígits per mostrar i només si es mostren els quatre dígits, el número complet de quatre dígits serà visible per a l'usuari.
Llavors, com es mostren els 4 dígits alhora ?
Per sort, per a nosaltres, la nostra MPU és molt més ràpida que un ull humà, així que fem el que realment fem: mostrem un dígit a la vegada, però ho fem molt ràpidament, tal com es mostra més amunt.
Seleccionem la visualització d'un dígit que espereu 2 ms (variable delay_time) perquè la MPU i el segment de 7 puguin processar-lo i després apaguem aquest dígit i passem al següent dígit i fem el mateix fins que arribem a l'últim dígit. Aquest retard de 2 ms no pot ser observat per un ull humà i els quatre dígits semblen estar activats al mateix temps.
L'últim que heu d'aprendre per saber com funciona la funció print_segment (variable) . Dins d’aquesta funció fem servir les matrius que hem declarat fins ara. Per tant, qualsevol variable que enviem a aquesta funció hauria de tenir el valor entre (0-9), el caràcter de variable rebrà aquest valor i el compararà amb el valor real. Aquí es compara la variable amb '1'. De la mateixa manera, comparem amb tots els números del 0 al 9. Si és una coincidència, utilitzem les matrius i assignem cada valor als seus respectius pins de segment, tal com es mostra a continuació.
def print_segment (charector): if charector == 1: for i in range (7): GPIO.output (segment8, one)
Temps de visualització en 4 segments de 7 dígits amb Raspberry Pi:
Utilitzeu l'esquema i el codi que s'indiquen aquí per establir les connexions i programar el raspberry pi en conseqüència. Un cop fet tot, només cal iniciar el programa i haureu de trobar l'hora actual que es mostra a la pantalla de set segments. Però, hi ha poques coses que haureu de comprovar abans d’això
- Assegureu-vos que heu configurat el vostre Raspberry Pi amb l’hora actual per si de cas funciona si està fora de línia.
- Enceneu el vostre Raspberry pi amb un adaptador i no amb l'ordinador portàtil / ordinador, perquè la quantitat de corrent generada per la pantalla de 7 segments és elevada i el port USB no el pot obtenir.
Si tot funciona com s’esperava, hauríeu de trobar alguna cosa així a continuació.

El funcionament complet d’aquest rellotge raspberry pi també es pot comprovar al vídeo que es mostra a continuació. Espero que us hagi agradat el projecte i us hagi agradat construir-ne un. Feu-me saber què en penseu o si necessiteu ajuda.
