Boa noite e obrigado pela dica.
Desenvolvi um projeto no qual seis sensores piezos acionam um rele. Porem somente o 1º canal aciona o rele e o restante apenas indica o funcionamento do sensor com os leds dedicados.
O código é o seguinte:
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 11;
int led5 = 9;
int led6 = 10;
int rele = 5;
int link = 12;
int analogpin[6]={A0,A1,A2,A3,A4,A5};
int THRESHOLD = 20;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(link, OUTPUT);
pinMode(rele, OUTPUT);
}
void loop() {
if(analogRead(analogpin[0])>THRESHOLD){
digitalWrite(led4, LOW);
digitalWrite(rele, LOW);
}
else{
digitalWrite(led4, HIGH);
digitalWrite(rele, HIGH);
}
if(analogRead(analogpin[1])>THRESHOLD){
digitalWrite(led5, LOW);
digitalWrite(rele, LOW);
}
else{
digitalWrite(led5, HIGH);
digitalWrite(rele, HIGH);
}
if(analogRead(analogpin[2])>THRESHOLD){
digitalWrite(led6, LOW);
digitalWrite(rele, LOW);
}
else{
digitalWrite(led6, HIGH);
digitalWrite(rele, HIGH);
}
if(analogRead(analogpin[3])>THRESHOLD){
digitalWrite(led3, LOW);
digitalWrite(rele, LOW);
}
else{
digitalWrite(led3, HIGH);
digitalWrite(rele, HIGH);
}
if(analogRead(analogpin[4])>THRESHOLD){
digitalWrite(led2, LOW);
digitalWrite(rele, LOW);
}
else{
digitalWrite(led2, HIGH);
digitalWrite(rele, HIGH);
}
if(analogRead(analogpin[5])>THRESHOLD){
digitalWrite(led1, LOW);
digitalWrite(rele, LOW);
}
else{
digitalWrite(led1, HIGH);
digitalWrite(rele, HIGH);
}
delay(100);
}
Tags:
Exatamente, o tempo criado pelo Delay que possibilita a mudança.
Acho que se determinar que o estado do rele fique alto na origem, no restante da estrutura só condicionaríamos um estado único que seria LOW. E de quebra bem mais simples. Foi postar quando terminar os testes...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por