Last updated
Was this helpful?
Last updated
Was this helpful?
Digi-Clock unit is a 2.1-inch 4-digit 7-segment display module designed to display decimal numbers and act as a clock. Each digit on the display has a decimal point, and there is an additional wire for displaying colon-dots in the center, allowing for clock functionality. The unit utilizes the TM1637 as the driver IC, which controls the display and facilitates easy communication with the connected microcontroller or system. The I2C communication protocol is employed, and the unit incorporates an STM32F030 microcontroller for I2C communication. To provide flexibility, the I2C address of the Digi-Clock unit can be modified using a 4-bit dip switch, allowing multiple modules to be connected and addressed individually. This feature simplifies the integration and control of multiple display modules within a system. The red LED display supports eight levels of brightness, providing options for optimal visibility in different environments or applications. Users can adjust the brightness level to meet their specific requirements. Additionally, the unit includes four fixing holes, which allow for secure mounting and integration into various projects or installations. This ensures stability and ease of use when incorporating the Digi-Clock unit into different applications or systems.
4-digit red dislpay
I2C port, adjustable I2C address
8 brightness
Low power consumption
4 fixing holes for multiple installations
MCU
STM32F030
Driver IC
TM1637
Communication
I2C, addr: 0x30
Power Supply
5V DC
Net Weight
12.5g
Gross Weight
17.8g
Product Dimension
50 * 31 * 14mm
Package Dimension
136 * 92 * 15mm
size:50 * 31 * 14mm
weight:12.5g
#include "Wire.h"
#include "M5UNIT_DIGI_CLOCK.h"
/* For M5Stack Basic */
#define SDA 21
#define SCL 22
#define ADD 0x30
/* For M5Atom Lite/Matrix */
// #define SDA 26
// #define SCL 32
// #define ADD 0x30
M5UNIT_DIGI_CLOCK Digiclock;
void setup()
{
delay(2000);
Serial.begin(115200);
Wire.begin(SDA, SCL);
/* Digital clock init */
if (Digiclock.begin(&Wire, SDA, SCL, ADD))
{
Serial.println("Digital clock init successful");
}
else
{
Serial.println("Digital clock init error");
while (1);
}
char buff[] = " ";
Digiclock.setString(buff);
delay(2000);
}
void loop()
{
char buff[] = "8.8.:8.8.";
Digiclock.setString(buff);
for (int i = 0; i < 5; i++)
{
Digiclock.setBrightness(9);
delay(150);
Digiclock.setBrightness(0);
delay(150);
}
delay(100);
for (int i = 0; i < 4; i++)
{
for (uint8_t i = 0; i < 9; i++)
{
Digiclock.setBrightness(i);
delay(20);
}
for (uint8_t i = 8; i > 0; i--)
{
Digiclock.setBrightness(i);
delay(20);
}
}
delay(100);
Digiclock.setBrightness(9);
for (int j = 0; j < 3; j++)
{
for (int i = 0; i < 10; i++)
{
sprintf(buff, "%d.%d.:%d.%d.", i, i, i, i);
Digiclock.setString(buff);
Serial.println(buff);
delay(200);
}
}
delay(100);
Digiclock.setBrightness(9);
for (;;)
{
char buff2[] = "12:00";
Digiclock.setString(buff2);
Serial.printf(buff2);
delay(1000);
char buff3[] = "1200";
Digiclock.setString(buff3);
Serial.printf(buff3);
delay(1000);
}
delay(100);
}