#include "RTClib.h"
RTC_DS1307 rtc;
// Контакты
int a = 13;int b = A1;int c = 2;int d = 3;
int e = 4;int f = 5;int g = 6;int dp = 7;
int d1 =8; int d2 =9; int d3 =10; int d4 =11;
int cln=12;
// Алгоритм
void setup() {
Serial.begin(9600);
rtc.begin();
}
void loop() {
DateTime now = rtc.now();
ledon(cln);
dig(d1, now.hour()/10);
dig(d2, now.hour()%10);
dig(d3, now.minute()/10);
dig(d4, now.minute()%10);
}
// Функции
void dig(int x,int y){
ledoff(x);
number(y);
delay(3);
ledwipe();
ledon(x);
}
void ledoff(int x) {
pinMode(x, OUTPUT);
digitalWrite(x, HIGH);
}
void ledon(int x) {
pinMode(x, OUTPUT);
digitalWrite(x, LOW);
}
void dot() {
ledon(dp);
}
void ledwipe(){
ledoff(a);
ledoff(b);
ledoff(c);
ledoff(d);
ledoff(e);
ledoff(f);
ledoff(g);
ledoff(dp);
}
void number (int x){
if (x == 0){
ledon(a);
ledon(b);
ledon(c);
ledon(d);
ledon(e);
ledon(f);
}
if (x == 1){
ledon(b);
ledon(c);
}
if (x == 2){
ledon(a);
ledon(b);
ledon(g);
ledon(e);
ledon(d);
}
if (x == 3){
ledon(a);
number(1);
ledon(d);
ledon(g);
}
if (x == 4){
number(1);
ledon(f);
ledon(g);
}
if (x == 5){
ledon(a);
ledon(f);
ledon(g);
ledon(c);
ledon(d);
}
if (x == 6){
ledon(a);
ledon(f);
ledon(g);
ledon(c);
ledon(d);
ledon(e);
}
if (x == 7){
ledon(a);
number(1);
}
if (x == 8){
number(9);
ledon(e);
}
if (x == 9){
number(5);
ledon(b);
}
}