Boa tarde.
Estou um pouco desesperado porque não sei para onde me virar
... sou novo no mundo do arduino tenho algumas noções mas tudo muito básico.
Estou a tentar fazer um código em que tenho somente 1 pressbutton e 2 relés
O que quero fazer é isto.
Carrego no botão acciona relé 1
Carrego no botão desliga relé 1
Carrego no botão acciona relé 2
Carrego no botão desliga relé 2
e reiniciar o ciclo
O Problema é que o código não está a fazer o que quero.
A acção do botão:
aperto o botão liga relé1
aperto o botão desliga relé1
aperto o botão liga relé1
aperto o botão nao faz nada
aperto o botão desliga relé1
aperto o botão liga relé2
aperto o botão nao faz nada
aperto o botão nao faz nada
as vezes funciona outras nao...
//Porta 11 ligada ao Relé1
int rele1 = 11;
//Porta 10 ligada ao Relé2
int rele2 = 10;
//Porta 2 ligada ao botao 1
int botao = 2;
int flag = 0;
void setup()
{
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode (botao, INPUT);
digitalWrite(rele1,LOW);
digitalWrite(rele2,LOW);
}
void loop()
{
//Liga relé1
if(digitalRead(botao) == HIGH && flag == 0)
{
while(digitalRead(botao) == HIGH);
{
digitalWrite(rele1, HIGH);
flag = 1;
delay(200);
}
}
//Desliga relé1
else if(digitalRead(botao) == HIGH && flag == 1)
{
while(digitalRead(botao) == HIGH);
{
digitalWrite(rele1, LOW);
flag = 0;
delay(200);
}
}
//Liga relé2
else if(digitalRead(botao) == HIGH && flag == 0)
{
while(digitalRead(botao) == HIGH);
{
digitalWrite(rele2, HIGH);
flag = 1;
delay(200);
}
}
//Desliga relé2
else if(digitalRead(botao) == HIGH && flag == 1)
{
while(digitalRead(botao) == HIGH);
{
digitalWrite(rele2, LOW);
flag = 0;
delay(200);
}
}
}
o meu setup
1- Arduino Mega 2560
3- 8x Relay Model - Sainsmart
ACIONANDO_MODULO_RELE_COM_ARDUINO_CIRCUITO_2_LAMPADAS.ino (1.48 KB)