Nota
Ciao, benvenuto nella community di appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.
Perché unirsi?
Supporto esperto: Risolvi i problemi post-vendita e affronta le sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Accedi in anteprima agli annunci di nuovi prodotti e alle anteprime esclusive.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni durante le festività.
👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
5.3 - Contatore di Tempo
Il display a 4 cifre e 7 segmenti è costituito da quattro display a 7 segmenti che funzionano insieme.
Il display a 4 cifre e 7 segmenti funziona indipendentemente. Utilizza il principio della persistenza visiva umana per visualizzare rapidamente i caratteri di ciascun segmento in un ciclo, formando stringhe continue.
Ad esempio, quando sul display appare «1234», viene visualizzato «1» sul primo segmento, mentre «234» non è visibile. Dopo un breve intervallo, il secondo segmento mostra «2», mentre il 1°, 3° e 4° segmento non mostrano nulla, e così via, il display a quattro cifre mostra le cifre in sequenza. Questo processo è molto rapido (tipicamente 5ms), e grazie all’effetto di persistenza ottica e al principio della persistenza visiva, possiamo vedere tutte e quattro le cifre contemporaneamente.
Componenti Necessari
In questo progetto, ci servono i seguenti componenti.
È sicuramente conveniente acquistare un intero kit, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK PER L’ACQUISTO |
|---|---|---|
Kepler Kit |
450+ |
Puoi anche acquistarli separatamente dai link qui sotto.
SN |
INTRODUZIONE COMPONENTE |
QUANTITÀ |
LINK PER L’ACQUISTO |
|---|---|---|---|
1 |
1 |
||
2 |
Cavo Micro USB |
1 |
|
3 |
1 |
||
4 |
Alcuni |
||
5 |
4(220Ω) |
||
6 |
1 |
||
7 |
1 |
Schema Elettrico
Qui il principio di cablaggio è sostanzialmente lo stesso di 5.1 Microchip - 74HC595, l’unica differenza è che Q0-Q7 sono collegati ai pin da a a g del display a 4 cifre e 7 segmenti.
Poi G10 ~ G13 selezioneranno quale display a 7 segmenti attivare.
Cablaggio
Codice
Nota
Puoi aprire il file
5.3_time_counter.inonel percorsokepler-kit-main/arduino/5.3_time_counter.Oppure copia questo codice nell”Arduino IDE.
Non dimenticare di selezionare la scheda (Raspberry Pi Pico) e la porta corretta prima di cliccare sul pulsante Upload.
Dopo l’esecuzione del programma, vedrai il display a 4 cifre e 7 segmenti diventare un contatore e il numero aumenterà di 1 ogni secondo.
Come funziona?
L’invio di segnali a ciascun display a 7 segmenti avviene nello stesso modo di 5.2 - Visualizzazione Numeri, utilizzando la funzione hc595_shift().
Il punto cruciale del display a 4 cifre e 7 segmenti è attivare selettivamente ciascun display a 7 segmenti. Il codice associato è il seguente.
const int placePin[4] = {13,12,11,10};
void setup ()
{
for (int i = 0; i<4;i++){
pinMode(placePin[i],OUTPUT);
}
}
void loop()
{
pickDigit(0);
hc595_shift(count%10/1);
pickDigit(1);
hc595_shift(count%100/10);
pickDigit(2);
hc595_shift(count%1000/100);
pickDigit(3);
hc595_shift(count%10000/1000);
}
void pickDigit(int digit){
for(int i = 0; i < 4; i++){
digitalWrite(placePin[i],HIGH);
}
digitalWrite(placePin[digit],LOW);
}
Qui, quattro pin (GP10, GP11, GP12, GP13) vengono utilizzati per controllare ciascun segmento del display a 4 cifre e 7 segmenti individualmente.
Quando lo stato di questi pin è LOW, il display a 7 segmenti corrispondente è attivo; quando lo stato è HIGH, il display a 7 segmenti non funziona.
Qui la funzione pickDigit(digit) viene utilizzata per disattivare tutti i display a 7 segmenti e poi attivare un determinato segmento singolarmente.
Successivamente, hc595_shift() viene utilizzato per scrivere il codice di 8 bit corrispondente per il display a 7 segmenti.
Il display a 4 cifre e 7 segmenti deve essere attivato continuamente a turno in modo che possiamo vedere visualizzate tutte e quattro le cifre, il che significa che il programma principale non può facilmente aggiungere codice che influenzi la temporizzazione.
Tuttavia, è necessario aggiungere una funzione di temporizzazione a questo esempio, se aggiungiamo un delay (1000), potremo rilevare l’illusione dei quattro display a 7 segmenti che funzionano contemporaneamente, esponendo il fatto che solo un display a 7 segmenti alla volta si illumina.
Pertanto, utilizzare la funzione millis() è un ottimo modo per farlo.
void setup ()
{
timerStart = millis();
}
void loop()
{
unsigned int count = (millis()-timerStart)/1000;
}
La funzione millis() ottiene il numero di millisecondi trascorsi dall’inizio del programma corrente. Registriamo il primo valore temporale come timerStart;
poi, quando dobbiamo ottenere nuovamente il tempo, richiamiamo la funzione millis() e sottraiamo timerStart dal valore per ottenere da quanto tempo il programma è in esecuzione.
Infine, converti questo valore temporale e lascia che il display a 4 cifre e 7 segmenti lo mostri.

