Eae galera, to com um probleminha aqui com meu rele...vamos ver se podem me ajudar ^^
Seguinte, quero montar um circuito bem simples onde eu aperto um botão para o rele ligar, porém ele tem que permanecer ligado ate eu apertar o botão novamente...
até ai tudo bem, consegui fazer ele desligar e ligar quando aperto o botão...o problema é que quando eu inicio o arduino, o rele SEMPRE inicia LIGADO...não consigo fazer ele iniciar desligado
o rele é esse daqui: http://www.aliexpress.com/snapshot/235677910.html
liguei ele ao 5v do arduino...
OBS: já fiz o teste com um led ligado na porta que vai pro rele e o mesmo inicia bonitinho desligado, somente no modulo rele que da esse "problema"
segue o codigo
int rele = 2;
int botao = 8;
int flag = 0;
void setup()
{
pinMode(rele, OUTPUT);
pinMode (botao, INPUT);
}
void loop()
{
if(digitalRead(botao) == HIGH && flag == 0)
{
while(digitalRead(botao) == HIGH);
{
digitalWrite(rele, HIGH);
flag = 1;
delay(200);
}
}
else if(digitalRead(botao) == HIGH && flag == 1)
{
while(digitalRead(botao) == HIGH);
{
digitalWrite(rele, LOW);
flag = 0;
delay(200);
}
}
}
Como estás a ligar o relé? Está ligado da mesma forma que o led ao Arduino, isto é, com a mesma polaridade? E como ligaste as coisas na saída do relé? A luz na saída do relé é completamente oposta ao LED?
Lago:
O rele é normalmente aberto ou normalmente fechado?
Essa pergunta é valida, pois normalmente o relé funciona como um interruptor, ligando o contato do meio com o contato ou da esquerda ou da direita. Então você pode estar ligando os fios nos contatos do relé que ficam fechados quando o relé não está alimentado.
Faça o teste com um multimetro para ver se você não está ligando nada errado. Se mesmo assim não resolver, poste o esquema elétrico e/ou uma foto de como você está fazendo.
Entao, o módulo que tenho possui 6 pinos, um GND, um VCC e as 4 portas de cada rele (o módulo tem 4 reles), liguei o GND ao GND do arduino, o VCC ao 5 Volts do Arduino e liguei uma porta de saida digital do arduino á uma entrada no módulo relé...
O rele está comutando sim, o problema é que quando ligo o arduino ele já comuta, ele deveria ficar desligado até eu apertar o botao
Não estou a entender muito bem... Ele liga e desliga muito rápido ou quando o arduino é iniciado ele liga e fica sempre ligado?
Sem saber como o relé está ligado é difícil de garantir, mas...
O ATmega328 começa com os pinos configurados como entradas, se estiveres a fazer sink (ou seja, ligar a bobine do relé entre VCC e o Arduino) na entrada isto pode realmente comutar o relé. Como o bootloader do Arduino fica ali algum tempo até iniciar, deve ser o suficiente para comutar uma vez.
Depois tens o facto que o Arduino faz sabe-se lá o quê aos pinos e isso também pode influenciar, embora duvide que seja algo assim que esteja a acontecer, nunca se sabe.
Agora se o relé fica sempre ligado, provavelmente tens a lógica invertida no programa.
Isso, quando o arduino é iniciado ele liga e fica sempre ligado...
esse é o problema, mesmo se eu colocar digitalWrite(rele,LOW); ele inicia ligado...Nao deveria iniciar com a porta desligada?
bubulindo:
O ATmega328 começa com os pinos configurados como entradas, se estiveres a fazer sink (ou seja, ligar a bobine do relé entre VCC e o Arduino) na entrada isto pode realmente comutar o relé. Como o bootloader do Arduino fica ali algum tempo até iniciar, deve ser o suficiente para comutar uma vez.
Estou com esse problema, ao ligar o arduino o relé liga e desliga rapidamente. Como resolvo isso?
Entendo! Já fiz códigos mais simples apenas para acionar um relé e não era necessário iniciá-lo em low. Lembrei que para resetar o sistema usei o comando asm volatile (" jmp 0");
Quando o sistema é reiniciado por esse comando o relé não faz a comutação de quando é reiniciado pela tomada! Há alguma possibilidade do problema ser no hardware?
alkuentrus:
Eu tmb fiz códigos simples onde não foi preciso. Noutros casos tive mesmo de fazer isto. Não me parece problema de hardware.
Não funcionou digitei logo abaixo do setup =/, o relé é do tipo optoacoplado e está ligado em um arduino UNO VCC-5V, GND-GND, IN-12. Alguma outra sugestão eu agradeço.