AED 19.95
Description
The TM-1637 is a 7-segment 4-digit display that can be easily controlled with a few wires on an Arduino. The display is controlled by a TM1637 integrated circuit which does everything related to lighting up the correct segments that build up each of the digits when input from the microcontroller board arrives.
The TM1637 supports ON/OFF and brightness control of the LEDs as well as accessing each of the segments. It also allows you to adjust the brightness of the LEDs at the software level. And once the display is updated by the microcontroller, the TM1637 then takes care of all the work of refreshing the display. Which can leave the microcontroller to do the essential things.
Specifications::
- Display common anode for the four red LED
- Powered supply by 3.3V/5V
- Four common anode tube display module is driven by IC TM1637
- Can be used with Arduino Boards, using two signal lines can make the MCU control 4 8 digital.
- Working current: 30 / 80 mA.
- Size: 42 x 24 x 11 mm / 1.65 x 0.94 x 0.43 inches.
Pinout of the TM1637 LED Display Module :
Pin Name | Description |
CLK | clock input pin. Connect to any digital pin on Arduino. |
DIO | Data I/O pin. Connect to any digital pin on Arduino. |
VCC | supplies power to the module. Connect it to the 3.3V to 5V power supply. |
GND | ground pin. |
Arduino Library for the 7 segments TM1637 4-bit Common Anode LED Display Module :
The library can be downloaded from https://github.com/avishorp/TM1637. you need to add it to the Arduino IDE
Connections:
- CLK to Pin 2
- DIO to Pin 3
- VCC to 5v
- GND TO GND
Code:
#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 const uint8_t SEG_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 }; TM1637Display display(CLK, DIO); void setup() { } void loop() { int k; uint8_t data[] = { 0xff, 0xff, 0xff, 0xff }; uint8_t blank[] = { 0x00, 0x00, 0x00, 0x00 }; display.setBrightness(0x0f); // All segments on display.setSegments(data); delay(TEST_DELAY); // Selectively set different digits data[0] = display.encodeDigit(0); data[1] = display.encodeDigit(1); data[2] = display.encodeDigit(2); data[3] = display.encodeDigit(3); display.setSegments(data); delay(TEST_DELAY); /* for(k = 3; k >= 0; k--) { display.setSegments(data, 1, k); delay(TEST_DELAY); } */ display.clear(); display.setSegments(data+2, 2, 2); delay(TEST_DELAY); display.clear(); display.setSegments(data+2, 2, 1); delay(TEST_DELAY); display.clear(); display.setSegments(data+1, 3, 1); delay(TEST_DELAY); // Show decimal numbers with/without leading zeros display.showNumberDec(0, false); // Expect: ___0 delay(TEST_DELAY); display.showNumberDec(0, true); // Expect: 0000 delay(TEST_DELAY); display.showNumberDec(1, false); // Expect: ___1 delay(TEST_DELAY); display.showNumberDec(1, true); // Expect: 0001 delay(TEST_DELAY); display.showNumberDec(301, false); // Expect: _301 delay(TEST_DELAY); display.showNumberDec(301, true); // Expect: 0301 delay(TEST_DELAY); display.clear(); display.showNumberDec(14, false, 2, 1); // Expect: _14_ delay(TEST_DELAY); display.clear(); display.showNumberDec(4, true, 2, 2); // Expect: __04 delay(TEST_DELAY); display.showNumberDec(-1, false); // Expect: __-1 delay(TEST_DELAY); display.showNumberDec(-12); // Expect: _-12 delay(TEST_DELAY); display.showNumberDec(-999); // Expect: -999 delay(TEST_DELAY); display.clear(); display.showNumberDec(-5, false, 3, 0); // Expect: _-5_ delay(TEST_DELAY); display.showNumberHexEx(0xf1af); // Expect: f1Af delay(TEST_DELAY); display.showNumberHexEx(0x2c); // Expect: __2C delay(TEST_DELAY); display.showNumberHexEx(0xd1, 0, true); // Expect: 00d1 delay(TEST_DELAY); display.clear(); display.showNumberHexEx(0xd1, 0, true, 2); // Expect: d1__ delay(TEST_DELAY); // Run through all the dots for(k=0; k <= 4; k++) { display.showNumberDecEx(0, (0x80 >> k), true); delay(TEST_DELAY); } // Brightness Test for(k = 0; k < 4; k++) data[k] = 0xff; for(k = 0; k < 7; k++) { display.setBrightness(k); display.setSegments(data); delay(TEST_DELAY); } // On/Off test for(k = 0; k < 4; k++) { display.setBrightness(7, false); // Turn off display.setSegments(data); delay(TEST_DELAY); display.setBrightness(7, true); // Turn on display.setSegments(data); delay(TEST_DELAY); } // Done! display.setSegments(SEG_DONE); while(1); }