Академический Документы
Профессиональный Документы
Культура Документы
ru/shop/Expansion-
payments/chasy-realnogo-vremeni-rtc-trema-modul.html
#define CLK 8
#define DT 9
#define SW 4
// Подключаем библиотеки:
#include <GyverEncoder.h>
int timebeforesunrise = 1;
uint8_t VAR_mode_SET = 0; // режим установки времени: 0-нет 1-сек 2-мин 3-час 4-день 5-
мес 6-год 7-день_недели 8-мин_будильника 9-час_будильника
byte MAS_alarm_SYM[8]={B00000,B01110,B10101,B10111,B10001,B01110,B00000,B00000}; //
символ будильника для отображения на дисплее
void setup() {
Serial.begin(9600);
enc1.setTickMode(AUTO);
}
void loop(){
timer = millis();
if(VAR_mode_SHOW==3){lcd.print("Set alarm:");}
if(VAR_mode_SET==0){lcd.print("Alarm ");}
if(VAR_mode_SET==9&&time.seconds%2){lcd.print(" ");}else{if(VAR_alarm_HOUR<10){lcd.print("0");}
lcd.print(VAR_alarm_HOUR);}
lcd.print(":");
if(VAR_mode_SET==8&&time.seconds%2){lcd.print(" ");}else{if(VAR_alarm_MIN<10){ lcd.print("0");}
lcd.print(VAR_alarm_MIN);}
// проверка будильника
if(VAR_alarm_FLAG2)
{Func_alarm_action();}
void Func_buttons_control(){
uint8_t i=0;
if(VAR_mode_SET){
if(enc1.isRight()){
/* сек */ case 1: time.settime(0, -1, -1, -1, -1, -1, -1); break;
/* мин */ case 2: time.settime(-1, (time.minutes==59?0:time.minutes+1), -1, -1, -1, -1, -1); break;
/* час */ case 3: time.settime(-1, -1, (time.Hours==23?0:time.Hours+1), -1, -1, -1, -1); break;
/* дни */ case 4: time.settime(-1, -1, -1, (time.day==31?1:time.day+1), -1, -1, -1); break;
/* мес */ case 5: time.settime(-1, -1, -1, -1, (time.month==12?1:time.month+1), -1, -1); break;
/* год */ case 6: time.settime(-1, -1, -1, -1, -1, (time.year==99?0:time.year+1), -1); break;
/* д.н.*/ case 7: time.settime(-1, -1, -1, -1, -1, -1, (time.weekday==6?0:time.weekday+1) ); break;
if(enc1.isLeft()){
/* сек */ case 1: time.settime(0, -1, -1, -1, -1, -1, -1); break;
/* мин */ case 2: time.settime(-1, (time.minutes==0?59:time.minutes-1), -1, -1, -1, -1, -1); break;
/* час */ case 3: time.settime(-1, -1, (time.Hours==0?23:time.Hours-1), -1, -1, -1, -1); break;
/* дни */ case 4: time.settime(-1, -1, -1, (time.day==1?31:time.day-1), -1, -1, -1); break;
/* мес */ case 5: time.settime(-1, -1, -1, -1, (time.month==1?12:time.month-1), -1, -1); break;
/* год */ case 6: time.settime(-1, -1, -1, -1, -1, (time.year==0?99:time.year-1), -1); break;
/* д.н.*/ case 7: time.settime(-1, -1, -1, -1, -1, -1, (time.weekday==0?6:time.weekday-1) ); break;
if(digitalRead(PIN_button_SET)){
delay(10);
}
//Если часы находятся в режиме вывода даты/времени
}else{
if(enc1.isRight()){
if(enc1.isLeft()){
if(digitalRead(PIN_button_SET)){
void sunlight(){
Serial.print(timesunrise);
PWM++;
PWM++;
PWM++;
analogWrite(PIN_alarm_LED, PWM);
void Func_alarm_action(){
//digitalWrite(PIN_alarm_LED, HIGH);
//digitalWrite(PIN_alarm_LED, LOW);