Hoje testei um driver com 2 reles, com pinos na porta 12 e 11.
Quando carrego o programa para o arduino com o digitalWrite(12, LOW) ele ascende o led do relé, quando é HIGH ele apaga.
Gostaria de saber se alguém sabe porquê os comandos parecem estar invertidos.
Gratos desde já.
void Setup() {
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
}
void Loop() {
digitalWrite(12, HIGH); //LUZ DO LED APAGADO (led do relé)
delay(2000);
digitalWrite(11, LOW); //LUZ DO LED LIGADO (led do relé)
}
Será que tem algo de estranho com o relé ou com o arduino?
Isso tem a ver com a própria placa de relés que tem a "lógica invertida". Isto considerando que todas as ligações estão correctas (que também pode ser o caso).
Tive o mesmo "problema", quando encomendei os reles para um projecto meu, so depois de os receber é que identifiquei essa mesma situação. Simplesmente existem 3 tipos de boards relays:
as "active hight"energiza o relay quando de um sinal "hight" -
as "active low" que energizam o relay quando o sinal do pin do arduino esta "low".
e umas com jumper para determinar se fica energizada "low" ou "hight".
luisilva e arssant, muito obrigado por responderem, não tinha conhecimento dessa lógica inversa, pensei que fosse problema com meu arduino, porque quando o comprei, alguns dos pinos do chip smd estavam com solda entre os pinos unindo-os e eu os arrumei...