#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <iarduino_RTC.h>
#include <Max72xxPanel.h>
int H=0;
int M=0;
uint8_t h,m,s;
int pinCS=10;
int numberOfHorizontalDisplays = 1;
int numberOfVerticalDisplays = 4;
Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);
iarduino_RTC time(RTC_DS1307);
#define BSET_PIN 7
#define BPLUS_PIN 6
#define BMINUS_PIN 5
#define LEDH_PIN 9
#define LEDM_PIN 8
void setup() {
matrix.setIntensity(1);
matrix.setRotation(0,4);
matrix.setRotation(1,4);
matrix.setRotation(2,4);
matrix.setRotation(3,4);
matrix.setRotation(matrix.getRotation()+1);
Serial.begin(9600);
time.begin();
time.settime(0,0,0);
pinMode (BSET_PIN, INPUT);
pinMode (BPLUS_PIN, INPUT);
pinMode (BMINUS_PIN, INPUT);
pinMode (LEDH_PIN, OUTPUT);
pinMode (LEDM_PIN, OUTPUT);
digitalWrite(LEDM_PIN, HIGH);
digitalWrite(LEDH_PIN, HIGH);
}
void loop() {
if(millis()%1000==0){
h=time.Hours;
m=time.minutes;
s=time.seconds;
Serial.println(time.gettime("H:i:s"));
delay(2);
}
Serial.println(time.gettime("H:i:s"));
if(digitalRead(BSET_PIN)) {
digitalWrite(LEDM_PIN,LOW);
M=1;
digitalWrite(LEDH_PIN, HIGH);
H=0;
delay(500);}
if(digitalRead(BSET_PIN)) {
digitalWrite(LEDM_PIN, HIGH);
M=0;
digitalWrite(LEDH_PIN, LOW);
H=1;
delay(500);}
if(digitalRead(BSET_PIN)){
digitalWrite(LEDM_PIN, HIGH);
M=0;
digitalWrite(LEDH_PIN, HIGH);
H=0;
delay(500);}
if(digitalRead(BPLUS_PIN)&&H==1) {
h++;
if(h>23) h=0;
time.settime(h);
delay(100);
}
if(digitalRead(BMINUS_PIN)&&H==1) {
h--;
if(h<=0) h=24;
time.settime(h);
delay(100);
}
if(digitalRead(BPLUS_PIN)&&M==1) {
m++;
if(m>59) m=0;
time.settime(m);
delay(100);
}
if(digitalRead(BMINUS_PIN)&&M==1) {
m--;
if(m<=0) m=59;
time.settime(m);
delay(100);
}
matrix.fillScreen(0);
String hour1 = String (h/10); // преобразовываем числа для вывода
String hour2 = String (h%10);
String min1 = String (m/10);
String min2 = String (m%10);
String sec1 = String (s/10);
String sec2 = String (s%10);
matrix.drawChar(1,1,min2[0],HIGH,LOW,1);
matrix.drawChar(10,1,min1[0],HIGH,LOW,1);
matrix.drawChar(17,1,hour2[0],HIGH,LOW,1);
matrix.drawChar(26,1,hour1[0],HIGH,LOW,1);
matrix.write();
matrix.drawPixel(6, 0,HIGH);
matrix.drawPixel (25, 7,HIGH);
matrix.drawPixel(22, 0,HIGH);
matrix.drawPixel(22, 7,HIGH);
matrix.drawPixel(6, 7,HIGH);
matrix.drawPixel(9, 0,HIGH);
matrix.drawPixel(9, 7,HIGH);
matrix.drawPixel(25, 0,HIGH);
matrix.write();
delay(500);
matrix.drawPixel(6, 0,LOW);
matrix.drawPixel(9, 0,LOW);
matrix.drawPixel(22, 0,LOW);
matrix.drawPixel(25, 0,LOW);
matrix.drawPixel(25, 7,LOW);
matrix.drawPixel(6, 7,LOW);
matrix.drawPixel(9, 7,LOW);
matrix.drawPixel(22, 7,LOW);
matrix.write();
delay(500);
}