pessoal fiz esse programinha para testar 2 condiçoes e acender um led se as 2 condiçoes forem verdadeiras somente mas não esta funcionando alguém tem ideia do porque? 

obrigado


int input1 = 11;
int input2 = 12;
int output1 = 13;

void setup() {

pinMode(input1, INPUT);
pinMode(input2, INPUT);
pinMode(output1, OUTPUT);
}

void loop(){

if(input1==HIGH && input2==HIGH)
digitalWrite(output1, HIGH);
else
digitalWrite(output1, LOW);
delay(30000);
}

Exibições: 642

Responder esta

Respostas a este tópico

também não funcionou usando os operadores | | , usando o programinha de debug mostra que esta tudo certo com as ligações setae e setad mudando para 1 quando em nivel alto... porém ao testar o meu programa ele executa a ação testada no if mesmo se setae ou somente setad estiver em alto quando deveriam estar o 2 ao mesmo tempo para que ação fosse executada,,,

quanto ao circuito é muito simples estou usando resistores de pulldown de 10k nos pinos 11 e 12 (setae e setad) para gnd, e vou tocando os 5v nos pinos para testar....

Amigo tente isso:

int setaePin = 11;
int setadPin = 12;
int homecomPin = 13;
int setae = 0;
int setad = 0;
void setup() {
pinMode(setaePin, INPUT);
pinMode(setadPin, INPUT);
pinMode(homecomPin, OUTPUT);

}
void loop(){
setae = digitalRead(setaePin);
setad = digitalRead(setadPin);
if (setae == HIGH && setad == HIGH) {
digitalWrite(homecomPin, HIGH); 
}
else {
digitalWrite(homecomPin, LOW);

}
}

funcionou usando apenas & e nao && para comparar os 2 pinos, o problema agora é que eu quero que o pino 13 fique em high por 30s mas se usar delay vai bloquear a execução do programa e não quero isso porque vão ter outra ações para acontecer ao mesmo tempo.. como posso proceder??

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço