Код Ардуино для дисплея 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;
}