- Modulo display a 7 segmenti a 7 segmenti e 4 cifre:
- Collegamento di un modulo a 7 segmenti a 4 cifre con Raspberry Pi:
- Programmazione del tuo Raspberry Pi:
- Visualizza l'ora su 7 segmenti a 4 cifre utilizzando Raspberry Pi:
Sappiamo tutti che Raspberry Pi è una meravigliosa piattaforma di sviluppo basata su microprocessore ARM. Con la sua elevata potenza di calcolo può fare miracoli nelle mani di appassionati di elettronica o studenti. Tutto questo può essere possibile solo se sappiamo come farlo interagire con il mondo reale e analizzare i dati attraverso qualche dispositivo di output. Esistono molti sensori in grado di rilevare determinati parametri dal mondo in tempo reale e trasferirli in un mondo digitale e li analizziamo visualizzandoli su uno schermo LCD o su un altro display. Tuttavia, non sarebbe sempre economico utilizzare uno schermo LCD con PI per visualizzare piccole quantità di dati. È qui che preferiamo utilizzare il display LCD alfanumerico 16x2 o il display a 7 segmenti. Abbiamo già imparato come utilizzare un LCD alfanumerico e un display a 7 segmenti a segmento singolo con Raspberry pi. Oggi lo faremoInterfaccia modulo display a sette segmenti a 4 cifre con Raspberry Pi e visualizzazione del tempo su di esso.
Sebbene il display LCD alfanumerico 16x2 sia molto più comodo del display a 7 segmenti, ci sono pochi scenari in cui un display a 7 segmenti sarebbe più pratico di un display LCD. L'LCD soffre dello svantaggio di avere una dimensione dei caratteri bassa e sarà eccessivo per il tuo progetto se hai solo intenzione di visualizzare alcuni valori numerici. I 7 segmenti hanno anche il vantaggio in condizioni di scarsa illuminazione e possono essere visualizzati da angolazioni maggiori rispetto a un normale schermo LCD. Quindi, iniziamo a conoscerlo.
Modulo display a 7 segmenti a 7 segmenti e 4 cifre:
Il display a 7 segmenti ha sette segmenti e ogni segmento ha un LED al suo interno per visualizzare i numeri illuminando i segmenti corrispondenti. Ad esempio, se si desidera che i 7 segmenti mostrino il numero "5", è necessario illuminare i segmenti a, f, g, ce d rendendo alti i pin corrispondenti. Ci sono due tipi di display a 7 segmenti: Common Cathode e Common Anode, qui stiamo usando il display Common Cathode a sette segmenti. Ulteriori informazioni sul display a 7 segmenti qui.
Ora sappiamo come visualizzare il nostro carattere numerico desiderato su un singolo display a 7 segmenti. Ma è abbastanza evidente che avremmo bisogno di più di un display a 7 segmenti per trasmettere qualsiasi informazione che sia più di una cifra. Quindi, in questo tutorial utilizzeremo un modulo di visualizzazione a 7 segmenti a 4 cifre come mostrato di seguito.
Come possiamo vedere, ci sono quattro display a sette segmenti collegati insieme. Sappiamo che ogni modulo a 7 segmenti avrà 10 pin e per 4 display a sette segmenti ci sarebbero 40 pin in totale e sarebbe frenetico per chiunque saldarli su una scheda a punti, quindi consiglio vivamente a chiunque di acquistare un modulo oppure crea il tuo PCB per utilizzare un display a 7 segmenti a 4 cifre. Lo schema di connessione per lo stesso è mostrato di seguito:
Per capire come funziona il modulo a sette segmenti a 4 cifre, dobbiamo esaminare gli schemi sopra, come mostrato, i pin A di tutti e quattro i display sono collegati per riunirsi come uno A e lo stesso per B, C… Quindi, fondamentalmente se il trigger A è attivato, tutte e quattro le A dovrebbero andare alte, giusto?
Ma questo non accade. Abbiamo quattro pin aggiuntivi da D0 a D3 (D0, D1, D2 e D3) che possono essere utilizzati per controllare quale display dei quattro dovrebbe andare in alto. Ad esempio: se ho bisogno che il mio output sia presente solo sul secondo display, solo D1 dovrebbe essere alto mantenendo gli altri pin (D0, D2 e D3) più bassi. Semplicemente possiamo selezionare quale display deve diventare attivo utilizzando i pin da D0 a D3 e quale carattere visualizzare utilizzando i pin da A a DP.
Collegamento di un modulo a 7 segmenti a 4 cifre con Raspberry Pi:
Vediamo come, come possiamo collegare questo modulo a 7 segmenti a 4 cifre con il nostro Raspberry Pi. Il modulo a 7 segmenti ha 16 pin come mostrato di seguito. Il tuo modulo potrebbe avere di meno, ma non preoccuparti, avrà sicuramente quanto segue
- Pin a 7 o 8 segmenti (qui pin che iniziano da 1 a 8)
- Pin di massa (qui pin 11)
- Pin a 4 cifre (qui i pin da 13 a 16)
Di seguito è riportato lo schema per l'orologio digitale Raspberry Pi collegando il modulo display a sette segmenti a 4 cifre con Raspberry Pi:
La tabella seguente ti aiuterà anche a fare i collegamenti e a verificare che sia secondo gli schemi mostrati sopra.
S.No |
Numero GPIO Rsp Pi |
Numero PIN Rsp Pi |
Nome a 7 segmenti |
Numero pin 7-Seg (qui in questo modulo) |
1 |
GPIO 26 |
PIN 37 |
Segmento a |
1 |
2 |
GPIO 19 |
PIN 35 |
Segmento b |
2 |
3 |
GPIO 13 |
PIN 33 |
Segmento c |
3 |
4 |
GPIO 6 |
PIN 31 |
Segmento d |
4 |
5 |
GPIO 5 |
PIN 29 |
Segmento e |
5 |
6 |
GPIO 11 |
PIN 23 |
Segmento f |
6 |
7 |
GPIO 9 |
PIN 21 |
Segmento g |
7 |
8 |
GPIO 10 |
PIN 19 |
Segmento DP |
8 |
9 |
GPIO 7 |
PIN 26 |
Cifra 1 |
13 |
10 |
GPIO 8 |
PIN 24 |
Cifra 2 |
14 |
11 |
GPIO 25 |
PIN 22 |
Cifra 3 |
15 |
12 |
GPIO 24 |
PIN 18 |
Cifra 4 |
16 |
13 |
Terra |
Terra |
Terra |
11 |
Individuate i pin sul vostro modulo e siete tutti a posto per procedere con i collegamenti. Individuare i pin GPIO in Raspberry pi potrebbe essere un compito un po 'impegnativo, quindi ti ho fornito questa immagine per i pin GPIO.
Programmazione del tuo Raspberry Pi:
Qui stiamo usando il linguaggio di programmazione Python per programmare RPi. Esistono molti modi per programmare il tuo Raspberry Pi. In questo tutorial stiamo usando l' IDE di Python 3, poiché è il più utilizzato. Il programma Python completo è fornito alla fine di questo tutorial. Scopri di più su Programma ed esegui codice in Raspberry Pi qui.
Parleremo di alcuni comandi che useremo nel programma PYHTON per questo progetto, Per prima cosa importeremo il file GPIO dalla libreria, la funzione sottostante ci consente di programmare i pin GPIO di PI. Stiamo anche rinominando "GPIO" in "IO", quindi nel programma ogni volta che vogliamo fare riferimento ai pin GPIO useremo la parola "IO". Abbiamo anche importato time e datetime per leggere il valore del tempo da Rsp Pi.
importa RPi.GPIO come ora di importazione GPIO, datetime
A volte, quando i pin GPIO, che stiamo cercando di utilizzare, potrebbero svolgere altre funzioni. In tal caso, riceveremo avvisi durante l'esecuzione del programma. Il comando seguente dice al PI di ignorare gli avvisi e procedere con il programma.
IO.setwarnings (False)
Possiamo fare riferimento ai pin GPIO di PI, sia per numero di pin a bordo che per numero di funzione. Come il "PIN 29" sulla scheda è "GPIO5". Quindi diciamo qui o rappresenteremo il pin qui con "29" o "5". GPIO.BCM significa che rappresenteremo l'utilizzo di 5 per GPIO5 pin 29.
IO.setmode (GPIO.BCM)
Come sempre dovremmo iniziare inizializzando i pin, qui sia i pin del segmento che i pin delle cifre sono pin di uscita. A scopo di programmazione, formiamo array per i pin dei segmenti e li inizializziamo a '0' dopo averli dichiarati come GPIO.OUT
segment8 = (26,19,13,6,5,11,9,10) per il segmento in segment8: GPIO.setup (segment, GPIO.OUT) GPIO.output (segment, 0)
Allo stesso modo per i pin delle cifre li dichiariamo come pin di output e li rendiamo '0' per impostazione predefinita
#Digit 1 GPIO.setup (7, GPIO.OUT) GPIO.output (7, 0) #Off inizialmente #Digit 2 GPIO.setup (8, GPIO.OUT) GPIO.output (8, 0) #Off inizialmente #Digit 3 GPIO.setup (25, GPIO.OUT) GPIO.output (25, 0) #Off inizialmente #Digit 4 GPIO.setup (24, GPIO.OUT) GPIO.output (24, 0) #Off inizialmente
Dobbiamo formare array per visualizzare ogni numero su un display a sette segmenti. Per visualizzare un numero dobbiamo controllare tutti i 7 pin del segmento (punto pin escluso), ovvero devono essere disattivati o attivati. Ad esempio per visualizzare il numero 5 dobbiamo fare la seguente disposizione
S.No |
Numero GPIO Rsp Pi |
Nome a 7 segmenti |
Stato per visualizzare "5". (0-> OFF, 1-> ON) |
1 |
GPIO 26 |
Segmento a |
1 |
2 |
GPIO 19 |
Segmento b |
1 |
3 |
GPIO 13 |
Segmento c |
0 |
4 |
GPIO 6 |
Segmento d |
1 |
5 |
GPIO 5 |
Segmento e |
1 |
6 |
GPIO 11 |
Segmento f |
0 |
7 |
GPIO 9 |
Segmento g |
1 |
Allo stesso modo abbiamo il numero di sequenza per tutti i numeri e gli alfabeti. Puoi scrivere da solo o utilizzare la tabella qui sotto.
Con questi dati possiamo formare gli array per ogni numero nel nostro programma python come mostrato di seguito.
null = zero = uno = due = tre = quattro = cinque = sei = sette = otto = nove =
Se segui il programma ci sarà una funzione per visualizzare ogni carattere sul nostro display a 7 segmenti ma, per il momento, saltiamolo ed entriamo nel ciclo infinito while . Dove leggere l'ora presente da Raspberry Pi e dividere il valore del tempo tra quattro variabili. Ad esempio, se l'ora è 10,45, la variabile h1 avrà 1, h2 0, m1 4v e m2 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)
Dobbiamo visualizzare questi quattro valori delle variabili sulle nostre quattro cifre rispettivamente. Per scrivere un valore di variabile in una cifra possiamo usare le seguenti righe. Qui siamo visualizzati sulla cifra 1 facendola andare in alto, quindi verrà chiamata la funzione print_segment (variabile) per visualizzare il valore in variabile sul display a segmenti. Forse ti starai chiedendo perché abbiamo un ritardo dopo e perché disattiviamo questa cifra dopo questo.
GPIO.output (7, 1) #Turn on Digit One print_segment (h1) #Print h1 on segment time.sleep (delay_time) GPIO.output (7, 0) #Turn off Digit One
Il motivo è che, come sappiamo, possiamo visualizzare solo una cifra alla volta, ma abbiamo quattro cifre da visualizzare e solo se vengono visualizzate tutte e quattro le cifre complete saranno visibili all'utente.
Allora, come si visualizzano tutte e 4 le cifre contemporaneamente ?
Fortunatamente per noi la nostra MPU è molto più veloce di un occhio umano, quindi quello che facciamo effettivamente: visualizziamo una cifra alla volta ma lo facciamo molto velocemente come mostrato sopra.
Selezioniamo una cifra visualizzata per attendere 2 ms (delay_time variabile) in modo che la MPU e 7 segmenti possano elaborarla, quindi disattivare quella cifra e passare alla cifra successiva e fare lo stesso fino a raggiungere l'ultima cifra. Questo ritardo di 2 ms non può essere osservato da un occhio umano e tutte e quattro le cifre sembrano essere attive contemporaneamente.
L'ultima cosa da imparare è sapere come funziona la funzione print_segment (variabile) . All'interno di questa funzione utilizziamo gli array che abbiamo dichiarato finora. Quindi qualunque variabile che inviamo a questa funzione dovrebbe avere il valore compreso tra (0-9), il carattere della variabile riceverà questo valore e lo confronterà per il valore reale. Qui la variabile viene confrontata con "1". Allo stesso modo confrontiamo con tutti i numeri da 0 a 9. Se è una corrispondenza, utilizziamo gli array e assegniamo ogni valore ai rispettivi pin del segmento come mostrato di seguito.
def print_segment (charector): if charector == 1: for i in range (7): GPIO.output (segment8, one)
Visualizza l'ora su 7 segmenti a 4 cifre utilizzando Raspberry Pi:
Usa lo schema e il codice qui forniti per effettuare le connessioni e programmare il tuo raspberry pi di conseguenza. Dopo aver fatto tutto, avvia il programma e dovresti trovare l'ora corrente visualizzata nel display a sette segmenti. Ma ci sono poche cose che devi controllare prima di questo
- Assicurati di aver impostato il tuo Raspberry Pi con l'ora corrente nel caso in cui sia in esecuzione in modalità offline.
- Alimenta il tuo Raspberry pi con un adattatore e non con il tuo laptop / computer perché la quantità di corrente assorbita dal display a 7 segmenti è alta e la tua porta USB non può alimentarla.
Se tutto funziona come previsto, dovresti trovare qualcosa di simile sotto.
Il funzionamento completo di questo orologio Raspberry Pi può essere verificato anche nel video riportato di seguito. Spero ti sia piaciuto il progetto e ti sia piaciuto realizzarne uno. Fammi sapere cosa ne pensi o se hai bisogno di aiuto.