Saudações garagistas!
Estou iniciando agora no mundo arduino, tenho um arduino mega 2560 e um módulo rele de 8, minha dúvida é a seguinte: quando ligo o arduino, os relés estão armando, mas se eu inicio o pino como HIGH "digitalWrite(20, HIGH);" os relés iniciam desarmados.
Resumindo:
Isso está correto ou estou fazendo alguma coisa errada?
Desde já agradeço a atenção de todos!
Tags:
Sim, é normal encontrar placas de relés assim.
Eu consegui resolver o problema da seguinte maneira:
1 BC548
1 R 1KOhm
Liga o Emissor do BC548 ao sinal do relé
Liga a Base do BC548 à R 1K e ao PIN 20(ou outra qualquer já definida) do arduino.
Liga o Colector do BC548 ao GND
Assim faz a programação normal com a saída em LOW porque quando atacar o Transistor, ele próprio ira enviar o sinal negativo ao relé e o fará atracar!
Qualquer dúvida, disponha!
Cumprimentos
Mário Ventura
Obrigado pela resposta Mario Ventura,
Bem que eu achei estranho mesmo, vou seguir sua orientação!
Sucesso para você!
marcelo gostaria de saber si vc pode me ajudar
eu comprei 2 relayboard de 8 relay cada
eu tenho um mega 2560
eu gostaria de estar ligando cada relay por um interruptor paralelo e pela internet
vc pode me ajudar no shetch
eu consigo ligar si for relay separado
a relayboard ainda nao consegui
Aqui vai um Sketch que fiz para a minha releboard de 4 canais
Basta aumentar o numero de portas
#include <SPI.h>
#include <Ethernet.h>
byte botao = 40 //PORTA 40
byte rele1 = 42;
byte rele2 = 44;
byte rele3 = 46;
byte rele4 = 48;
int varOnOff1 = 0;
byte mac[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; //INTRODUZIR MAC ADRESS INTERNETSHIELD
IPAddress ip(192,168,1,100); //ALTERAR IP CASO NECESSÁRIO
IPAddress gateway(192, 168, 1, 1); //VERIFICAR GATEWAY
IPAddress subnet(255, 255, 255, 0);
EthernetServer server(80);
void setup()
{
Serial.begin(9600);
digitalWrite(rele1, LOW);
digitalWrite(rele2, LOW);
digitalWrite(rele3, LOW);
digitalWrite(rele4, LOW);
pinMode(botao, INPUT);
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(rele4, OUTPUT);
SPI.begin();
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
}
void loop()
{
char valorlido = Serial.read();
if (valorlido == 'a')
{digitalWrite(rele1, HIGH);
Serial.println("Rele 1 Ligado");}
if (valorlido == 'b')
{digitalWrite(rele1, LOW);
Serial.println("Rele 1 Apagado");}
if (valorlido == 'c')
{digitalWrite(rele2, HIGH);
Serial.println("Rele 2 Ligado");}
if (valorlido == 'd')
{digitalWrite(rele2, LOW);
Serial.println("Rele 2 Apagado");}
if (valorlido == 'e')
{digitalWrite(rele3, HIGH);
Serial.println("Rele 3 Ligado");}
if (valorlido == 'f')
{digitalWrite(rele3, LOW);
Serial.println("Rele 3 Apagado");}
if (valorlido == 'g')
{digitalWrite(rele4, HIGH);
Serial.println("Rele 4 Ligado");}
if (valorlido == 'h')
{digitalWrite(rele4, LOW);
Serial.println("Rele 4 Apagado");}
EthernetClient client = server.available();
if (client)
{
String vars1;
while (client.connected())
if (client.available())
{char c = client.read();
vars1.concat(c);
if (vars1.endsWith("/1on"))
varOnOff1 = 1;
else if(vars1.endsWith("/1off"))
varOnOff1 = 2;
if(varOnOff1 == 1)
digitalWrite(rele1, HIGH);
else if (varOnOff1 == 2)
digitalWrite(rele1, LOW);
if (vars1.endsWith("/2on"))
varOnOff1 = 3;
else if(vars1.endsWith("/2off"))
varOnOff1 = 4;
if(varOnOff1 == 3)
digitalWrite(rele2, HIGH);
else if (varOnOff1 == 4)
digitalWrite(rele2, LOW);
if(vars1.endsWith("/3on"))
varOnOff1 = 5;
else if(vars1.endsWith("/3off"))
varOnOff1 =6;
if(varOnOff1 == 5)
digitalWrite(rele3, HIGH);
else if (varOnOff1 == 6)
digitalWrite(rele3, LOW);
if(vars1.endsWith("/4on"))
varOnOff1 = 7;
else if(vars1.endsWith("/4off"))
varOnOff1 = 8;
if(varOnOff1 == 7)
digitalWrite(rele4, HIGH);
else if (varOnOff1 == 8)
digitalWrite(rele4, LOW);
} // FAZER O MESMO PROCEDIMENTO PARA OS RESTANTES RELES
}
}
eu tentei usar seu sketch e estar dando este erro expected or before byte
e dizendo ki o rele 1 nao foi declarado no scope
falta o ; a seguir ao 40.
byte botao = 40; //PORTA 40
copie e cole esta linha
já funciona
valeu mario ficou bom aki cara
vou fazer o resto agora obrigado sussesso
ola Mario boa tarde
cara eu so consegui ligar atraves de cada saida do arduino
mais eu tenho dificuldade é em ligar minha praca da relayboard
tipo asim eu tenho um rele separado eu utilizo um diodo e um resistor e ligo normal
mas ok eu nao estou conseguindo é por no sketch a relayboard
tipo asim no video de demostracao eles fizeram um sket de 2 placa ki ficam piscando
eu keria usar as 2 placas mas para acionar cada rele atraves de um interruptor ou a internet
Não percebi bem a pergunta.
Tendo uma placa ou relé em separado, o sistema é o mesmo.
Tem que ver como actua o relé, se com GND ou +.
Este Sketch foi feito Só para actuar os relés, não para ficar piscando.
Dá-me mais informações, ou coloca o esquema para te poder ajudar bem como a todos os que acedem ao forum.
Assim posso tentar explicar passo a passo todo o funcionamento e ligações do mesmo.
Cumprimentos
Mário Ventura
mario é o seguinte eu tenho 2 placas de relayboard
eu nao sei fazer o sketch pra eu acionar qualquer rele delas atraves da internet
exemplo eu queria ligar o rele 3 da placa eo 6 independente um do outro usando a internet
pois si os reles estivessi separados da placa euconseguiria
eu ja consegui ligar 16
mais como eles estao na placa e so tenho 3 fios este sketch eu nao sei fazer
ja baixei a biblioteca mais depois eu nao sei fazer o resto tem como vc me ajudar
eu kebrei uma placa kkk e montei um por saida do arduino i eu consegui mais nao keria fazer o msm kkkkk
desde ja agradeço
Pode colocar foto da placa?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por