Alarm on preset times

Hi all

At first I´ll say I´m completly new in arduino, so maybe for some of you it may sound stupid, please be patient :slight_smile:

I´m trying to make Alarm on preset times. Also you can choose which alarms will be on by pressing buttons.

I´m using libraries "Timelib" and "Timealarms" where I´m calling via void functions in void.loop alarms written in void.setup

My question is, how can I write it in the way that when button1 is pressed I call via void function just alarms I want, when I press button2 then again I get on just alarms I want.

I want to have after If/Else function my void call functions instead of digitalWrite thats there now

#include <TimeLib.h>
#include <TimeAlarms.h>  // bez tychto 4 kniznic je program nefunkcny!
#include <Wire.h>
#include <DS1307RTC.h>

const int tlacidlo1 = 1;
const int tlacidlo2 = 2;
const int tlacidlo3 = 3;
const int tlacidlo4 = 4;
const int tlacidlo5 = 5;
const int tlacidlo6 = 6;
const int Truba1 = 7; 
const int Truba2 = 8;
const int Truba3 = 9;
const int Truba4 = 10;
const int Truba5 = 11;
const int Truba6 = 12;
const int VystupHukacka = 13;
int rezim1 = LOW;
int rezim2 = LOW;
int rezim3 = LOW;
int rezim4 = LOW;
int rezim5 = LOW;
int rezim6 = LOW;
int PST1;
int PST2;
int PST3;
int PST4;
int PST5;
int PST6;
int AST1;
int AST2;
int AST3;
int AST4;
int AST5;
int AST6;
int poc;

void setup() {
  pinMode(tlacidlo1, INPUT);
  pinMode(tlacidlo2, INPUT);
  pinMode(tlacidlo3, INPUT);
  pinMode(tlacidlo4, INPUT);
  pinMode(tlacidlo5, INPUT);
  pinMode(tlacidlo6, INPUT);
  pinMode(Truba1, OUTPUT);
  pinMode(Truba2, OUTPUT);
  pinMode(Truba3, OUTPUT);
  pinMode(Truba4, OUTPUT);
  pinMode(Truba5, OUTPUT);
  pinMode(Truba6, OUTPUT);
  pinMode(VystupHukacka, OUTPUT);
  digitalWrite(Truba1, LOW);
  digitalWrite(Truba2, LOW);
  digitalWrite(Truba3, LOW);
  digitalWrite(Truba4, LOW);
  digitalWrite(Truba5, LOW);
  digitalWrite(Truba6, LOW);
  
  Serial.begin(9600);
  // kontrola serioveho portu
  while (!Serial) ; 
  
  // nastavenie RTC
  setSyncProvider(RTC.get);   
  if (timeStatus() != timeSet) 
     Serial.println("spojenie s RTC sa nepodarilo");
  else
     Serial.println("spojenie s RTC uspesne, nastaveny systemovy cas");     
  
  AST1 = digitalRead(tlacidlo1);
  AST2 = digitalRead(tlacidlo2);
  AST3 = digitalRead(tlacidlo3);
  AST4 = digitalRead(tlacidlo4);
  AST5 = digitalRead(tlacidlo5);
  AST6 = digitalRead(tlacidlo6);
  
  // nastavenie vsetkych casov na vyvolanie z programu, info o dlzke trubenia jednotlivych cyklov
  // zaciatok,koniec smeny trubenie 5s
  // zaciatok,koniec prestavky trubenie 3s
  // standby trubenie 1/0/1s
  // cistenie 1/0/1/0/1s

  Alarm.alarmRepeat(5,0,0,zaciatokRS); // zaciatok rannej smeny
  Alarm.alarmRepeat(6,0,0,zaciatokRS2);  // zaciatok rannej smeny
  Alarm.alarmRepeat(8,40,0,zaciatokPP);  // prva prestavka
  Alarm.alarmRepeat(8,45,0,koniecPP); // koniec prvej prestavky
  Alarm.alarmRepeat(11,30,00,obed); // obedová prestávka
  Alarm.alarmRepeat(11,52,0,standby); // zatrubenie pred koncom obedovej prestavky
  Alarm.alarmRepeat(11,55,0,koniecOP); // koniec prestavky
  Alarm.alarmRepeat(14,20,0,cistenieRS); // cistenie pred koncom smeny
  Alarm.alarmRepeat(14,30,0,koniecRS); // koniec rannej,zaciatok poobednej smeny
  Alarm.alarmRepeat(14,50,0,cistenieRS2); // cistenie pred koncom smeny, druhy rezim
  Alarm.alarmRepeat(15,0,0,koniecRS2); // koniec rannej, zaciatok poobednej smeny, druhy rezim
  Alarm.alarmRepeat(15,20,0,cistenieRS3); // cistenie pred koncom smeny, treti rezim
  Alarm.alarmRepeat(15,30,0,koniecRS3); // koniec rannej smeny/zaciatok poobednej smeny, treti rezim
  Alarm.alarmRepeat(16,30,0,poobednaPP); // prva prestavka poobednej
  Alarm.alarmRepeat(17,0,0,poobednaPP2); // prva prestavka poobednej druhy rezim
  Alarm.alarmRepeat(17,5,0,koniecPOP2); // koniec poobednej prestavky druhy rezim
  Alarm.alarmRepeat(16,35,0,koniecPOP); // koniec poobednej prestavky
  Alarm.alarmRepeat(18,30,0,vecera); // prestavka na veceru
  Alarm.alarmRepeat(18,52,0,standby2); // zatrubenie pred koncom prestavky
  Alarm.alarmRepeat(18,55,0,koniecVP); // koniec vecere
  Alarm.alarmRepeat(19,0,0,vecera2); // vecera rezim 2
  Alarm.alarmRepeat(19,22,0,standby3); // zatrubenie pred koncom prestavky
  Alarm.alarmRepeat(19,25,0,koniecVP2); // koniec vecere 2
  Alarm.alarmRepeat(22,50,0,cisteniePS); // cistenie pred koncom smeny
  Alarm.alarmRepeat(23,0,0,koniecPS); // koniec poobednej smeny
  Alarm.alarmRepeat(23,50,0,cisteniePS2); // cistenie pred koncom smeny 
  Alarm.alarmRepeat(0,0,0,koniecPS2); // koniec poobednej smeny, druhy rezim
  Alarm.alarmRepeat(0,50,0,cisteniePS3); // cistenie pred koncom smeny
  Alarm.alarmRepeat(1,0,0,koniecPS3); // koniec poobednej smeny 3
  Alarm.alarmRepeat(1,50,0,cisteniePS4); // cistenie pred koncom smeny
  Alarm.alarmRepeat(2,0,0,koniecPS4); // koniec poobednej smeny 4
}

void loop() {
  
  PST1 = AST1;
  PST2 = AST2;
  PST3 = AST3;
  PST4 = AST4;
  PST5 = AST5;
  PST6 = AST6;
  AST1 = digitalRead(tlacidlo1);
  AST2 = digitalRead(tlacidlo2);
  AST3 = digitalRead(tlacidlo3);
  AST4 = digitalRead(tlacidlo4);
  AST5 = digitalRead(tlacidlo5);
  AST6 = digitalRead(tlacidlo6);

   if(PST1 == HIGH && AST1 == LOW) { 
    Serial.print("Tlacidlo 1 ON");

     if(rezim1 == LOW) {
        rezim1 = HIGH;
        rezim2 = LOW;
        rezim3 = LOW;
        rezim4 = LOW;
        rezim5 = LOW;
        rezim6 = LOW; 
     }
        else {
          rezim1 = LOW;
          Serial.println("8h smena neaktivna");
        }
          digitalWrite(Truba1, HIGH); 
          digitalWrite(Truba2, LOW);
          digitalWrite(Truba3, LOW);
          digitalWrite(Truba4, LOW);
          digitalWrite(Truba5, LOW);
          digitalWrite(Truba6, LOW);  
   }
   if(PST2 == HIGH && AST2 == LOW) { 
    Serial.print("Tlacidlo 2 ON");

     if(rezim2 == LOW) {
        rezim2 = HIGH;
        rezim1 = LOW;
        rezim3 = LOW;
        rezim4 = LOW;
        rezim5 = LOW;
        rezim6 = LOW;
        Serial.println("8,5h smena aktivna"); 
     }
        else {
          rezim2 = LOW;
          Serial.println("8,5h smena neaktivna");
        }
          digitalWrite(Truba1, LOW); 
          digitalWrite(Truba2, HIGH);
          digitalWrite(Truba3, LOW);
          digitalWrite(Truba4, LOW);
          digitalWrite(Truba5, LOW);
          digitalWrite(Truba6, LOW);   
}
   if(PST3 == HIGH && AST3 == LOW) { 
    Serial.print("Tlacidlo 3 ON");

     if(rezim3 == LOW) {
        rezim3 = HIGH;
        rezim1 = LOW;
        rezim2 = LOW;
        rezim4 = LOW;
        rezim5 = LOW;
        rezim6 = LOW;
        Serial.println("9h smena aktivna"); 
     }
        else {
          rezim3 = LOW;
          Serial.println("9h smena neaktivna");
        }
          digitalWrite(Truba1, LOW); 
          digitalWrite(Truba2, LOW);
          digitalWrite(Truba3, HIGH);
          digitalWrite(Truba4, LOW);
          digitalWrite(Truba5, LOW);
          digitalWrite(Truba6, LOW); 
}
   if(PST4 == HIGH && AST4 == LOW) { 
    Serial.print("Tlacidlo 4 ON");

     if(rezim4 == LOW) {
        rezim4 = HIGH;
        rezim1 = LOW;
        rezim2 = LOW;
        rezim3 = LOW;
        rezim5 = LOW;
        rezim6 = LOW;
        Serial.println("9,5h smena aktivna"); 
     }
        else {
          rezim4 = LOW;
          Serial.println("9,5h smena neaktivna");
        }
          digitalWrite(Truba1, LOW); 
          digitalWrite(Truba2, LOW);
          digitalWrite(Truba3, LOW);
          digitalWrite(Truba4, HIGH);
          digitalWrite(Truba5, LOW);
          digitalWrite(Truba6, LOW); 
}
   if(PST5 == HIGH && AST5 == LOW) { 
    Serial.print("Tlacidlo 5 ON");

     if(rezim5 == LOW) {
        rezim5 = HIGH;
        rezim1 = LOW;
        rezim2 = LOW;
        rezim3 = LOW;
        rezim4 = LOW;
        rezim6 = LOW;
        Serial.println("10h smena aktivna"); 
     }
        else {
          rezim5 = LOW;
          Serial.println("10h smena neaktivna");
        }
          digitalWrite(Truba1, LOW); 
          digitalWrite(Truba2, LOW);
          digitalWrite(Truba3, LOW);
          digitalWrite(Truba4, LOW);
          digitalWrite(Truba5, HIGH);
          digitalWrite(Truba6, LOW); 
}
   if(PST6 == HIGH && AST6 == LOW) { 
    Serial.print("Tlacidlo 6 ON");

     if(rezim6 == LOW) {
        rezim6 = HIGH;
        rezim1 = LOW;
        rezim2 = LOW;
        rezim3 = LOW;
        rezim4 = LOW;
        rezim5 = LOW;
        Serial.println("Sobotna smena aktivna"); 
     }
        else {
          rezim6 = LOW;
          Serial.println("Sobotna smena neaktivna");
        }
          digitalWrite(Truba1, LOW); 
          digitalWrite(Truba2, LOW);
          digitalWrite(Truba3, LOW);
          digitalWrite(Truba4, LOW);
          digitalWrite(Truba5, LOW);
          digitalWrite(Truba6, HIGH);
}
 }
void zaciatokRS() {
  digitalWrite(VystupHukacka, HIGH);
  delay(5000);
  digitalWrite(VystupHukacka, LOW);
}
void zaciatokRS2() {
  digitalWrite(VystupHukacka, HIGH);
  delay(5000);
  digitalWrite(VystupHukacka, LOW);
}
void zaciatokPP() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void koniecPP() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void obed() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void standby() {
    for(poc=0;poc<2;poc++){
    digitalWrite(VystupHukacka, HIGH);
    delay(1000);
    digitalWrite(VystupHukacka, LOW);
    delay(1000);
 }
} 
void koniecOP() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void cistenieRS() {
  for(poc=0;poc<3;poc++){
  digitalWrite(VystupHukacka, HIGH);
  delay(1000);
  digitalWrite(VystupHukacka, LOW);
  delay(1000);
 }
} 
void koniecRS() {
  digitalWrite(VystupHukacka, HIGH);
  delay(5000);
  digitalWrite(VystupHukacka, LOW);
}
void cistenieRS2() {
   for(poc=0;poc<3;poc++){
  digitalWrite(VystupHukacka, HIGH);
  delay(1000);
  digitalWrite(VystupHukacka, LOW);
  delay(1000);
 }
} 
void koniecRS2() {
  digitalWrite(VystupHukacka, HIGH);
  delay(5000);
  digitalWrite(VystupHukacka, LOW);
}
void cistenieRS3() {
for(poc=0;poc<3;poc++){
  digitalWrite(VystupHukacka, HIGH);
  delay(1000);
  digitalWrite(VystupHukacka, LOW);
  delay(1000);
 }
} 
void koniecRS3() {
  digitalWrite(VystupHukacka, HIGH);
  delay(5000);
  digitalWrite(VystupHukacka, LOW);
}
void poobednaPP() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void poobednaPP2() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void koniecPOP() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void koniecPOP2() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void vecera() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void standby2() {
  for(poc=0;poc<2;poc++){
  digitalWrite(VystupHukacka, HIGH);
  delay(1000);
  digitalWrite(VystupHukacka,LOW);
  delay(1000);
 }
} 
void koniecVP() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void vecera2() {
  digitalWrite(VystupHukacka,HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void standby3() {
  for(poc=0;poc<2;poc++){
  digitalWrite(VystupHukacka, HIGH);
  delay(1000);
  digitalWrite(VystupHukacka,LOW);
  delay(1000);
 }
} 
void koniecVP2() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void cisteniePS() {
  for(poc=0;poc<3;poc++){
  digitalWrite(VystupHukacka, HIGH);
  delay(1000);
  digitalWrite(VystupHukacka, LOW);
  delay(1000);
 }
} 
void koniecPS() {
  digitalWrite(VystupHukacka, HIGH);
  delay(5000);
  digitalWrite(VystupHukacka, LOW);
}
void cisteniePS2() {
  for(poc=0;poc<3;poc++){
  digitalWrite(VystupHukacka, HIGH);
  delay(1000);
  digitalWrite(VystupHukacka, LOW);
  delay(1000);
 }
} 
void koniecPS2() {
  digitalWrite(VystupHukacka,HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}
void cisteniePS3() {
  for(poc=0;poc<3;poc++){
  digitalWrite(VystupHukacka, HIGH);
  delay(1000);
  digitalWrite(VystupHukacka, LOW);
  delay(1000);
 }
} 
void koniecPS3() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);  
}
void cisteniePS4() {
  for(poc=0;poc<3;poc++){
  digitalWrite(VystupHukacka, HIGH);
  delay(1000);
  digitalWrite(VystupHukacka, LOW);
  delay(1000);
 }
} 
void koniecPS4() {
  digitalWrite(VystupHukacka, HIGH);
  delay(3000);
  digitalWrite(VystupHukacka, LOW);
}   
void digitalClockDisplay() {
  // zobrazenie casu
  Serial.print(hour());
  printDigits(minute());
  printDigits(second());
  Serial.println();
}
void printDigits(int digits) {
  Serial.print(":");
  if (digits < 10)
    Serial.print('0');
  Serial.print(digits);
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.