Код Ардуино для дисплея TM1637
Приведенный скетч демонстрирует работу часов. Текущее время для запуска часов, задается в скетче в следующих строках "unsigned char minute = 35; unsigned char hour = 10;". Установите текущее время прошейте Arduino и подайте на него питание. Если все подключено без ошибок, то часы заработают сразу.
#include "TimerOne.h" #include "TM1637.h" #define ON 1 #define OFF 0 int8_t TimeDisp[] = { 0, 0, 0, 0 }; unsigned char ClockPoint = 1; unsigned char Update; unsigned char halfsecond = 0; unsigned char second; unsigned char minute = 35; unsigned char hour = 10; #define CLK 2 #define DIO 3 TM1637 tm1637(CLK,DIO); void setup() { tm1637.clear(); tm1637.brightness(7); // яркость на максимум Timer1.initialize(500000); // 500 мс Timer1.attachInterrupt(TimingISR); //прерывание по таймеру } void loop() { if(Update == ON) { TimeUpdate(); tm1637.display(TimeDisp); } } void TimingISR() { halfsecond ++; Update = ON; if(halfsecond == 2) { second ++; if(second == 60) { minute ++; if(minute == 60) { hour ++; if(hour == 24)hour = 0; minute = 0; } second = 0; } halfsecond = 0; } ClockPoint = (~ClockPoint) & 0x01; } void TimeUpdate(void) { if(ClockPoint)tm1637.point(true); else tm1637.point(false); TimeDisp[0] = hour / 10; TimeDisp[1] = hour % 10; TimeDisp[2] = minute / 10; TimeDisp[3] = minute % 10; Update = OFF; }