Per soddisfare tali problemi, è possibile utilizzare i registri del turno che possono salvare i pin di Arduino Board per altri dispositivi. Abbiamo discusso di come interfacciamo il 7-segmento con Arduino usando il registro a turni.
7 segmenti con Arduino utilizzando il registro a turni
Come spiegato i registri di spostamento precedenti sono utili quando il numero di dispositivi che devono essere interfacciati con il microcontrollore è grande. Per interfacciarsi il 7 segmento con Arduino utilizzando i registri del cambio, si richiederanno i seguenti componenti:
Per utilizzare il registro di cambio per l'interfaccia del 7 segmento con Arduino Uno abbiamo progettato un circuito il cui schema è riportato di seguito che sta usando l'elenco dei componenti indicati sopra.
Assemblaggio hardware per l'utilizzo del registro di cambio con Arduino per il display a 7 segmenti
Prima di implementare il circuito sull'hardware reale, abbiamo creato il gruppo hardware che aiuterà a stabilire connessioni dei componenti sull'hardware reale. Sotto l'immagine indicata mostra il gruppo hardware per l'utilizzo del registro di cambio con Arduino per interfacciarsi il 7 segmento con esso.
Le connessioni per i 7 segmenti con il registro Shift sono abbastanza semplici se si seguono i numeri del PIN del registro Shift. Abbiamo spiegato le connessioni del circuito nei seguenti punti:
Programma Arduino per l'utilizzo del registro Maiusc per interfaccia 7 segmenti con Arduino Uno
Per interfacciarsi il 7-segmento con Arduino usando il registro a turni dobbiamo programmare il microcontrollore che viene indicato di seguito:
const int data = 4; // Pin Arduino per il pin di dati del registro di cambio
const int latch = 5; // Pin Arduino per il pin di chiusura del registro
const int clock = 6; // Pin Arduino per il perno dell'orologio del registro di cambio
const char comune = 'c'; // 7-segmento con catodo comune
void setup ()
// Assegnazione delle modalità di lavoro ai pin del registro
pinMode (dati, output);
pinMode (latch, output);
pinMode (clock, output);
void loop ()
per (int i = 0; i <= 9; i++) // for loop to generate number from 0 to 9
byte bit = binary (i); / * Rileva il binario dato per il rispettivo numero dai casi indicati di seguito */
display (bit); // Visualizzazione dei numeri su 7 segmenti
ritardo (500);
void display (byte ottobits)
if (comune == 'c') // se la configurazione è comune catodo
ottobit = ottobit ^ B11111111; // quindi cambia i bit da 0 a 1
DigitalWrite (latch, basso); // Preparazione del registro a turni per i dati
shiftut (dati, orologio, lsbfirst, ottabit); /* Invio dei dati a 7Segmnet a partire dal bit meno significativo*/
DigitalWrite (fermo, alto); / * Visualizzazione dei dati sul segmento 7 */
/ *casi per rilevare il binario dei numeri generati da 0 a 9 */
byte binary (int numero)
switch (numero)
Caso 0:
restituire B11111100; // Se 0 viene generato, quindi binario per zero
rottura;
caso 1:
restituire b01100000; // se 1 viene generato, dando binario per uno
rottura;
Caso 2:
restituire B11011010; // Se 2 viene generato, dando binario per due
rottura;
Caso 3:
restituire B11110010; // Se 3 viene generato, dando binario per tre
rottura;
Caso 4:
restituire b01100110; // se 4 viene generato, dando binario per quattro
rottura;
Caso 5:
restituire B10110110; // Se 5 viene generato, dando binario per cinque
rottura;
Caso 6:
restituire B10111110; // Se 6 viene generato, dando binario per sei
rottura;
Caso 7:
restituire B11100000; // Se 7 viene generato, dando binario per sette
rottura;
Caso 8:
restituire B11111110; // Se 8 viene generato, dando binario per otto
rottura;
Caso 9:
restituire B11110110; // se 9 viene generato, dando binario per nove
Controllando il pin di chiavistello del registro Shift possiamo inviare i dati da Arduino al 7 segmento. Quindi, quando il pin di chiusura è a basso stato, riceve i dati e poi quando il pin va in alto stato invia ulteriormente i dati.
Per generare i numeri, abbiamo usato il loop e ad ogni iterazione del loop lo stato del pin di chiavistello viene modificato usando la funzione digitalewrite () e per ogni numero che abbiamo dato il binario per esso che accenderà il LED del 7 -Segmenti di conseguenza.
Dimostrazione hardware per l'utilizzo del registro a turni con Arduino per interfacciarsi il 7 segmento
Abbiamo implementato il circuito sulla breadboard per interfaccia 7 segmenti utilizzando un registro a turni con Arduino Uno secondo l'assemblaggio hardware che abbiamo descritto in precedenza. Per dimostrare che abbiamo dato la GIF animata di seguito:
Conclusione
I registri del turno sono di grande importanza nei progetti in cui ci sono un gran numero di dispositivi da utilizzare con Arduino. Abbiamo interfacciato il display a 7 segmenti con Arduino usando un registro a turni che riduce l'uso di pin Arduino da 6 a 3. Abbiamo anche fornito lo schema del circuito, l'assemblaggio hardware e il codice Arduino che ti aiuteranno a comprendere il concetto di utilizzo del registro a turni.