Collegamento modulo display TM1637 Arduino

Il modulo TM1637 di Arduino (display 7 segmenti 4 cifre) consente di visualizzare informazioni da sensori e dispositivi o di costruire un vero e proprio orologio con termometro e sveglia sulla base del modulo. Vediamo come collegare un display a sette segmenti a 4 cifre basato sul driver TM1637 con esempi di programmi per la visualizzazione di informazioni sull’indicatore, tra cui un sensore di luce analogico o un fotoresistenza (sensore di luce KY-018).




Per questa attività sono necessari:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • modulo display TM1637
  • sensore di luce (fotoresistenza)
  • cavi di collegamento
  • breadboard
  • librairia TM1637Display.h

Modulo display TM1637 Arduino datasheet, pinout

Come funziona il modulo display TM1637 a 4 cifre? Il modulo di visualizzazione ha un design il più semplice possibile ed è basato sul driver TM1637 con un’interfaccia bus a due fili. Il display a 7 segmenti a quattro cifre TM1637 non supporta il protocollo i2c standard perché il modulo non ha un indirizzo slave. I produttori offrono modelli di display con LED bianchi, rossi, blu e verdi; le dimensioni del display a sette segmenti sono di 0,36 o 0,56 pollici.

Modulo display a 4 cifre TM1637 pinout, datasheet
Modulo display a 7 segmenti a 4 cifre TM1637 pinout, datasheet

Caratteristiche del display TM1637 Arduino:

  • Tensione di alimentazione: 3.3 – 5 V
  • Assorbimento di corrente: 0,2 – 80 mA
  • Gradazioni di luminosità dell’indicatore: 8
  • Interfaccia seriale a due fili (CLK, DIO)

Come collegare modulo display TM1637 Arduino

Come usare display TM1637 con Arduino Uno
Come usare display a 4 cifre TM1637 con Arduino Uno

Il modulo TM1637 è collegato al Arduino tramite quattro pin: due fili sono responsabili dell’alimentazione (5V e GND) e gli altri due fili (CLK e DIO) possono essere collegati a qualsiasi porta digitale. Per lavorare con l’indicatore a quattro cifre TM1637 è necessario installare la libreria TM1637Display.h, che consente di visualizzare sull’indicatore non solo numeri e variabili, informazioni provenienti da sensori, ma anche alcune lettere dell’alfabeto.

Programma Arduino per utilizzare display TM1637 i2c




#include "TM1637Display.h"
TM1637Display display(3, 2); // CLC, DIO

const uint8_t tire[] = {
  SEG_G // -
};

const uint8_t C[] = {
  SEG_A | SEG_F | SEG_E | SEG_D // C
};

const uint8_t DONE[] = {
  SEG_B | SEG_C | SEG_D | SEG_E | SEG_G, // d
  SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O
  SEG_C | SEG_E | SEG_G, // n
  SEG_A | SEG_D | SEG_E | SEG_F | SEG_G // E
};

void setup() {
  display.setBrightness(4); // luminosità da 0 a 7
  display.clear();
  
  display.setSegments(tire, 1, 0); // -___
  delay(200);
  display.setSegments(tire, 1, 1); // _-__
  delay(200);
  display.setSegments(tire, 1, 2); // __-_
  delay(200);
  display.setSegments(tire, 1, 3); // ___-
  delay(200);
  display.clear();
  display.setSegments(DONE, 4, 0); // dOnE
  delay(500);
  display.clear();
}

void loop() {
  display.showNumberDec(1, true, 1, 0); // 1___
  delay(500);
  display.showNumberDec(2, true, 1, 1); // 12__
  delay(500);
  display.showNumberDec(3, true, 1, 2); // 123_
  delay(500);
  display.showNumberDec(4, true, 1, 3); // 1234
  delay(500);
  display.clear();
  
  display.showNumberDec(00, true, 2, 1); // _00_
  delay(500);
  display.setSegments(C, 1, 3); // _00C
  delay(500);
  display.clear();
}

Spiegazione del codice per utilizzare display TM1637 i2c Arduino:



  1. simboli e le lettere vengono creati nel programma utilizzando const uint8_t [] = {};
  2. funzioni e comandi più dettagliati della libreria TM1637Display.h per il display a 4 cifre sono descritti alla fine di questo post.

Come collegare display TM1637 e sensore di luce

Come collegare TM1637 e sensore di luce LDR
Come collegare display TM1637 e sensore di luce LDR

Nel programma seguente verrà visualizzata la variabile c – valori di un sensore di luce analogico (fotoresistenza), ma è possibile utilizzare qualsiasi altro sensore analogico per il microcontrollore Arduino. In questo esempio, sul modulo a 7 segmenti a 4 cifre TM1637 verrà visualizzato un numero a tre cifre e nel quarto segmento verrà visualizzata la lettera latina “c“, che verrà creata nel programma utilizzando un array.

Programma Arduino per modulo TM1637 e fotoresistenza

#include "TM1637Display.h"
TM1637Display display(3, 2); // CLC, DIO

int c;

const uint8_t c[] = {
  SEG_G | SEG_E | SEG_D // c
};

void setup() {
  Serial.begin(9600);
  pinMode(A1, INPUT);
  display.setBrightness(4); // luminosità da 0 a 7
  display.clear();
}

void loop() {
  c = analogRead(A1);
  Serial.println(c);
  display.showNumberDec(c, false, 3, 0);
  display.setSegments(c, 1, 3);
  delay(500);
}

Spiegazione del codice per display TM1637 e fotoresistenza Arduino:

  1. Il codice è stato progettato per un numero di tre cifre; se la variabile avrà un valore di quattro cifre, si dovrà modificare la riga display.showNumberDec(c, false, 4, 0); e rifiutare la visualizzazione del carattere ‘c‘.

Descrizione dei comandi della libreria TM1637Display.h

Descrizione comandi della libreria TM1637Display.h
Descrizione comandi della libreria TM1637Display.h
  • setBrightness(brightness, true/false) – la funzione può essere utilizzata in qualsiasi punto del codice e imposta la luminosità del display. È possibile specificare il livello di luminosità da 0 (luminosità minima) a 7 (luminosità massima). Il secondo parametro viene utilizzato per accendere/spegnere il display; falso significa spegnere il display.
  • clear() – comando per cancellare il display.
  • setSegments(segments, length, position) questa funzione viene utilizzata per impostare singoli segmenti, dove segments è un array (creato all’inizio con const uint8_t). L’argomento length specifica il numero di caratteri dell’array; quando si costruisce il termometro sul TM1637, si utilizzano due caratteri – °C. position – specifica la posizione da cui il carattere deve essere stampato sullo schermo LED.
  • showNumberDec(number, leading_zeros, length, position) dove il primo argomento number è il numero che viene visualizzato sul LED. Il secondo argomento leading_zeros serve per abilitare (true) o disabilitare (false) gli zeri iniziali. 10 senza zeri iniziali sarà stampato come __10 e con zeri iniziali come 0010. Il terzo e il quarto argomento della funzione sono gli stessi della funzione precedente.
  • showNumberDecEx(number, dots, leading_zeros, length, position) – questa funzione consente di controllare i punti di visualizzazione. Si differenzia dalla funzione showNumberDec solo per l’argomento dots. Per i display con i due punti, è necessario specificare 0b01000000 per attivare i due punti sul display e 0b00000000 per disattivarli.

Conclusione. Il modulo display TM1637 con i due punti al centro è la soluzione più semplice per creare un cronometro o un orologio in tempo reale. Il modulo stesso è costituito da quattro indicatori a sette segmenti, ognuno dei quali è composto da sette LED etichettati da “a” a “g” che si accendono indipendentemente l’uno dall’altro. Non sono necessarie resistenze aggiuntive per collegare il modulo al microcontrollore Arduino Uno / Nano.

5/5 - (1 vote)


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.