#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);
}