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
     
}

Exibições: 704

Responder esta

Respostas a este tópico

o que vc vai ter q fazer eh colocar  variaveis booleanas dentro de cada estatus do botao e fazer a comparaçao pra cada aperto

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço