Problema no projeto...
Descrição do que preciso:
Acionar uma botoeira e iniciar a seqüência de funções... 1 relé, delay, outro relé, delay, acende led informando que concluiu e fica PARADO, QUIETO. Só volta a funcionar ao acionar a botoeira, tornando todo o ciclo de novo. Espero que tenham entendido... Funciona uma seqüência somente quando o botão é acionado.
Segue o que consegui até o momento:
// projeto
int relesub = 12; // Relé Atuador Subindo pino 12
int reledes = 11; // Relé Atuador Descendo pino 11
int led1 = 10; // Saida Sinalizar sistema pronto (VERDE)
int led2 = 9; // Saida sistema em processamento (VERMELHO)
int botao = 8; // Botoeira iniciar sistema
int var = 0; // variavel
int var2 = 0;
int estado = 0;
void setup() {
pinMode(relesub, OUTPUT);
pinMode(reledes, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(botao, INPUT);
}
void loop() {
var=digitalRead(botao); //ler o valor enviado pelo botão: "HIGH" ou "LOW"
if ((var == HIGH) && (var2 == LOW)) {
estado = 1 - estado;
delay(20); // de-bouncing
}
var2=var;
if (estado == 1) {
digitalWrite(led1, LOW); // apaga a sinalização
digitalWrite(led2, HIGH); // acende vermelho
digitalWrite(relesub, HIGH); // aciona a subida do atuador
delay(10000); // RELÉ SUBINDO POR 10 SEGUNDOS
digitalWrite(relesub, LOW); // para atuador (fim de curso série)
delay(5000); // tempo de segurança para inversão de rotação
digitalWrite(reledes, HIGH); // aciona descer do atuador
delay(10000); // Réle descendo por 10 segundos (fim de curso série)
digitalWrite(reledes, LOW); //pisca vermelho informando que está quase pronto
for (int x=0; x<4; x++) {
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(led2, LOW);
delay(1000);
}
delay(2000); // espera no sistema
}
else {
digitalWrite(led2, LOW); // desliga o led
digitalWrite(led1, HIGH); // acende o led
}
digitalWrite(led1, HIGH); // acende o verde
}