Estou utilizando esse programa abaixo, no caso o led azul seria o comando de abertura. E com o RTC não sei como eu faria.
int ledAzul = 13; // escolha o pino para o LED (comando do motor, ira mudar para um pino PWM
int ledVerm = 12; // escolha o pino para o LED
int ledVerd = 11; // escolha o pino para o LED
int bot1 = 2; // escolha o pino para botão
int bot2 = 3; // escolha o pino para botão
int bot3 = 4; // escolha o pino para botão
int bot4 = 5; // escolha o pino para botão
int val01 = 0; // variável para ler o estado do botão
int val02 = 0; // variável para ler o estado do botão
int val03 = 0; // variável para ler o estado do botão
int val04 = 0; // variável para ler o estado do botão
int potPin = 2; // escolha o pino do potenciômetro
int val = 0; // variável para ler o potenciometro
void setup() {
pinMode(ledVerm, OUTPUT); // declara-se o LED como saída
pinMode(ledAzul, OUTPUT); // declara-se o LED como saída
pinMode(ledVerd, OUTPUT); // declara-se o LED como saída
pinMode(bot1, INPUT); // declara-se o interruptor como entrada
digitalWrite(bot1, HIGH); // coloca a entrada em nivel alto, dispensando o resistor
pinMode(bot2, INPUT); // declara-se o interruptor como entrada
digitalWrite(bot2, HIGH); // coloca a entrada em nivel alto, dispensando o resistor
pinMode(bot3, INPUT); // declara-se o interruptor como entrada
digitalWrite(bot3, HIGH); // coloca a entrada em nivel alto, dispensando o resistor
pinMode(bot4, INPUT); // declara-se o interruptor como entrada
digitalWrite(bot4, HIGH); // coloca a entrada em nivel alto, dispensando o resistor
}
void loop() {
INICIO:
val01 = digitalRead(bot1); // le o estado do botão
if (val01 == LOW) goto BOTAO1;
val02 = digitalRead(bot2); // le o estado do botão
if (val02 == LOW) goto BOTAO2;
val03 = digitalRead(bot3); // le o estado do botão
if (val03 == LOW) goto BOTAO3;
val04 = digitalRead(bot4); // le o estado do botão
if (val04 == LOW) goto TESTE;
goto INICIO;
BOTAO1: // 3 vezes ao dia
digitalWrite(ledVerm, HIGH);
val = analogRead(potPin); // ler o valor do potenciômetro
digitalWrite(ledAzul, HIGH); // ligar LED
delay(val20);
digitalWrite(ledAzul, LOW); // desligar LED
delay(7000-(val20));
digitalWrite(ledAzul, HIGH); // ligar LED
delay(val20);
digitalWrite(ledAzul, LOW); // desligar LED
delay(7000-(val20));
digitalWrite(ledAzul, HIGH); // ligar LED
delay(val20);
digitalWrite(ledAzul, LOW); // desligar LED
delay(10000-(val20));
goto BOTAO1;
BOTAO2: // 2 vezes ao dia
digitalWrite(ledVerd, HIGH);
val = analogRead(potPin); // ler o valor do potenciômetro
digitalWrite(ledAzul, HIGH); // ligar LED
delay(val20);
digitalWrite(ledAzul, LOW); // desligar LED
delay(12000-(val20));
digitalWrite(ledAzul, HIGH); // ligar LED
delay(val20);
digitalWrite(ledAzul, LOW); // desligar LED
delay(12000-(val20));
goto BOTAO2;
BOTAO3: // 1 vez ao dia
digitalWrite(ledVerd, HIGH);
digitalWrite(ledVerm, HIGH);
val = analogRead(potPin); // ler o valor do potenciômetro
digitalWrite(ledAzul, HIGH); // ligar LED
delay(val20);
digitalWrite(ledAzul, LOW); // desligar LED
delay(24000-(val20));
goto BOTAO3;
TESTE:
val = analogRead(potPin); // ler o valor do potenciômetro
digitalWrite(ledAzul, HIGH); // ligar LED
delay(val*20);
digitalWrite(ledAzul, LOW); // desligar LED
}