Search Code

Korištenje TM1637 4-cifrenog 7-segmentnog displeja sa Arduinom

Korištenje TM1637 4-cifrenog 7-segmentnog displeja sa Arduinom

U ovom tutorijalu naučit ćemo kako koristiti TM1637 4-cifreni 7-segmentni displej s Arduinom. Ovaj displej može se koristiti za prikaz brojeva, brojača ili bilo kojih drugih numeričkih podataka. Do kraja projekta imat ćete funkcionalan displej koji može brojati od 0 do 500 i demonstrirati različite funkcije poput podešavanja svjetline.

TM1637 4 digit display module

Za ovaj projekt, spojit ćemo TM1637 displej na Arduino koristeći samo nekoliko žica. Displej ima četiri pina: VCC, GND, DIO i CLK. VCC se spaja na 5V napajanje, dok se GND spaja na masu. DIO pin bit će spojen na digitalni pin 3 Arduina, a CLK pin na digitalni pin 2. Ova konfiguracija omogućava Arduinu laku komunikaciju s displejom.

Da biste vidjeli praktičnu implementaciju, pratite video (u videu na 00:00) za vizualni vodič.

Objašnjenje hardvera

TM1637 je svestrani 7-segmentni drajver displeja koji omogućava jednostavno upravljanje 4-cifrenim displejima. Upravlja se pomoću dvožičnog sučelja, koje se sastoji od podatkovnog pina (DIO) i taktnog pina (CLK). To ga čini jednostavnim za povezivanje s mikrokontrolerima poput Arduina bez potrebe za dodatnim komponentama.

Displej može prikazivati decimalne brojeve i podržava kontrolu svjetline, što ga čini pogodnim za različite primjene poput brojača, satova i tajmera. Njegov kompaktni dizajn i jednostavnost upotrebe čine ga popularnim izborom među hobistima i profesionalcima.

Detalji iz podatkovne tablice

ProizvođačTitan Micro Electronics
Broj dijelaTM1637
Logički/IO napon5 V
Napon napajanja3.3 V - 5.5 V
Izlazna struja (po segmentu)20 mA
Smjernice za PWM frekvencijuN/A
Ulazni logički pragovi0.3 VCC (nisko), 0.7 VCC (visoko)
Pad napona / RDS(on) / zasićenje2.5 V (tip.)
Toplinska ograničenja125 °C
Kućište16-pinski DIP

  • Provjerite da je VCC spojen na stabilan 5V izvor kako biste izbjegli kvar displeja.
  • Koristite otpornike za ograničenje struje ako je potrebno kako biste spriječili oštećenje segmenata.
  • Držite žice kratkim kako biste smanjili šum i smetnje.
  • Uvijek provjerite spojeve pinova kako biste spriječili obrnuti polaritet.
  • Podesite nivoe svjetline koristeći funkciju setBrightness za optimalnu vidljivost.

Upute za povezivanje

Arduino wiring for TM1637 4 digit display
TArduino wiring for TM1637 4 digit display — Arduino wiring for TM1637 4 digit display
Arduino wiring for TM1637 4 digit display - large module
Arduino wiring for TM1637 4 digit display - large module

Za povezivanje TM1637 displeja, prvo spojite VCC pin na 5V izlaz Arduina. Zatim spojite GND pin na jedan od pinova mase na Arduinu. Za podatkovnu komunikaciju, spojite DIO pin displeja na digitalni pin 3 na Arduinu, a CLK pin na digitalni pin 2. Ova jednostavna konfiguracija omogućava Arduinu efikasnu komunikaciju s displejom.

Provjerite da su spojevi čvrsti kako biste izbjegli probleme s labavim žicama. U videu su prikazane alternativne konfiguracije povezivanja, ali navedeni spojevi su najjednostavniji za osnovni rad (u videu na 01:30).

Primjeri koda i objašnjenje

Priloženi kod inicijalizira displej i postavlja potrebne konfiguracije. Ključni identifikatori u kodu uključuju CLK i DIO, koji su definirani kao digitalni pinovi 2 i 3. Svjetlina displeja postavlja se pomoću funkcije setBrightness.

#define CLK 2
#define DIO 3

TM1637Display display(CLK, DIO);

void setup() {
    display.setBrightness(0x0f);  // Postavi maksimalnu svjetlinu
}

Ovaj isječak koda prikazuje inicijalizaciju displeja i postavljanje maksimalne svjetline. Zatim, funkcija loop demonstrira kako prikazati različite brojeve.

TM1637 4 digit display module - Back
void loop() {
    uint8_t data[] = { 0x0, 0x0, 0x0, 0x0 };
    display.setSegments(data);  // Očisti displej
    display.showNumberDec(23, false, 2, 1);  // Prikaži broj 23
    delay(TEST_DELAY);
}

Ovdje se displej čisti i prikazuje se broj 23. Funkcija showNumberDec prima parametre za kontrolu prikazanog broja i njegovog formatiranja. Petlja nastavlja prikazivati brojeve do 500.

for(int i=0; i<=500; i++) {
    display.showNumberDec(i);  // Prikaži brojeve od 0 do 500
}

Ovaj isječak koda ilustrira jednostavan brojač koji prikazuje brojeve od 0 do 500 na TM1637 displeju. Displej će se kontinuirano ažurirati dok ne dosegne 500, a zatim će se vratiti na 0. Kompletan kod dostupan je ispod članka za vašu referencu.

Demonstracija / Šta očekivati

Kada je sve povezano i kod je učitan, displej bi trebao prikazivati brojeve sekvencijalno od 0 do 500. Također će demonstrirati različite postavke svjetline i očistiti ekran na odgovarajući način između ažuriranja. Budite oprezni s obrnutim polaritetom jer to može oštetiti displej. Funkcionalnost možete potvrditi promatranjem displeja tokom videa (u videu na 04:00).

Vremenske oznake videa

  • 00:00 - Uvod u TM1637 displej
  • 01:30 - Upute za povezivanje
  • 02:45 - Objašnjenje koda
  • 04:00 - Demonstracija displeja

Images

TM1637 4 digit display module size
TM1637 4 digit display module size
TM1637 4 digit display module
TM1637 4 digit display module
Arduino wiring for TM1637 4 digit display
TArduino wiring for TM1637 4 digit display
Arduino wiring for TM1637 4 digit display - large module
Arduino wiring for TM1637 4 digit display - large module
TM1637 4 digit display module
TM1637 4 digit display module
TM1637 4 digit display module - Back
TM1637 4 digit display module - Back
23-Arduino code for TM1637 4-digit display.
Language: C++
/*
 * This is the Arduino code for TM1637 4-digit display.
 * 
 * Written by Ahmad S. for Robojax Video
 *visit www.Robojax.com to get wiring diagram and other resources for this project
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
 * 
 */

/*
 * Original code from https://github.com/avishorp/TM1637
 * Modified for Robojax video on December 6, 2017

 */
#include <Arduino.h>
#include <TM1637Display.h>

// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3

// The amount of time (in milliseconds) between tests
#define TEST_DELAY   2000


TM1637Display display(CLK, DIO);

void setup()
{
}

void loop()
{


  display.setBrightness(0x0f);

  uint8_t data[] = { 0x0, 0x0, 0x0, 0x0 };
  display.setSegments(data);
  display.showNumberDec(23, false, 2,1);
  delay(TEST_DELAY);
  
  display.setSegments(data);
  display.showNumberDec(153, false, 3, 1);
  delay(TEST_DELAY);

  display.setSegments(data);
  for(int i=0; i<=500; i++)
  {
    display.showNumberDec(i);
  }

}

Resources & references

No resources yet.

Files📁

Arduino Libraries (zip)

Datasheet (pdf)

User’s Manual