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: 

  • digitalWrite(20, HIGH); relés desarmados;
  • digitalWrite(20, LOW); relés armados;

Isso está correto ou estou fazendo alguma coisa errada?

Desde já agradeço a atenção de todos!

Exibições: 1182

Responder esta

Respostas a este tópico

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? 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço