There are two common version of this display. One has a colon display, one has four individual decimals. It is one or the other
Which one is yours? What actually happens when you code to show all four decimals?
// "ricc" with dots display on TM1637
// By Paul__B on Arduino forum
#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 1000
const uint8_t SEG_DONE[] = {
SEG_B | SEG_C | SEG_D | SEG_E | SEG_G, // d
SEG_C | SEG_D | SEG_E | SEG_G, // o
SEG_C | SEG_E | SEG_G, // n
SEG_A | SEG_D | SEG_E | SEG_F | SEG_G // E
};
TM1637Display display(CLK, DIO);
int k;
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
uint8_t blank[] = { 0x00, 0x00, 0x00, 0x00 };
void wipe() {
display.clear();
for (k = 0; k < 4; k++)
data[k] = 0x00;
display.setSegments(data);
}
void barr() {
display.clear();
for (k = 0; k < 4; k++)
data[k] = 0x49;
display.setSegments(data);
delay(4000);
}
void cshow (uint8_t ix, uint8_t pattern)
{
data[ix] = pattern;
display.setSegments(data);
delay(TEST_DELAY);
}
void setup()
{
barr();
}
void loop()
{
display.setBrightness(0x0f);
wipe();
delay(TEST_DELAY);
cshow (0, 0xd0);
cshow (0, 0x50);
cshow (1, 0x90);
cshow (1, 0x10);
cshow (2, 0xd8);
cshow (2, 0x58);
cshow (3, 0xd8);
cshow (3, 0x58);
}