Boa tarde.

Meu modulo rele so ativa quando conecto a porta IN ao GND.

Quando uso em alguma porta do arduino ele não funciona.

Exibições: 210

Responder esta

Respostas a este tópico

Boa tarde Sr. 2M, (se não gosta que te chame pelas iniciais, avise),

veja abaixo o esquema do seu módulo:

Ele não é opto isolado do arduino

Se conhece um pouco de eletrônica, vai entender que ao conectar o pino IN ao GND, (nível de coletor)

como o transistor drive do rele é PNP, ele vai saturar e operar o rele.

Para que funcione no arduino deverá ser assim:

Saída em LOW  opera rele,  Saída em HIGH libera rele.

RV mineirin

Obrigado pela resposta!

Não entendi muito bem como funciona essa ligação com o LOW.

So funciona para pinos definidos por codigo como LOW?

Porque eu fui mudando o pino In de lugar varias vezes e mesmo assim nada.

olá Matheus.

      Rapaz, pelo que vc disse, fica claro que vc está muito cru na coisa.

      Então vou descrever o funcionamento desse controle ON/OFF de forma bem didática, e espero que eu consiga elucidar isso para vc.

      O Relé da plaquinha módulo Relé (ou de Relés, já que alguns tem vários Relés), é um dispositivo eletro-mecânico. Por quê?  Simples:  ele tem atuação mecânica, como uma chave, porém esta atuação é controlada eletricamente, e há na plaquinha um circuito que adequada sinais elétricos de baixa tensão, de forma que estes sinais controlem o Relé da plaquinha.  Ora, como o Relé atua como uma chave, ele deve assumir apenas dois estados:  "ON" (ou ligado) e "OFF" (ou desligado). E é isso que vc tem que saber de início.

      Ocorre que em Eletrônica, para controlar dispositivos que "ligam" ou "desligam", nós usamos Sistemas Digitais, que é uma parte da ciência eletrônica, e por isto mesmo costumamos dizer "Eletrônica Digital".  E em Sistemas Digitais, para fazer o controle "ON" e "OFF",  há dois estados  contrários entre si:  o "1" e o "0", que por convenção  representam justamente o "ON" e o "OFF" (e por este motivo isto é chamado de "Lógica Binária" já que são apenas dois estados). Essa "convenção" é chamada de "Lógica Positiva" e vc vai entender o motivo disso mais à frente.  Ou seja, quando usamos "Lógica Positiva", o "1" equivale a dizer "ligado" (ou "ON"), e o "0" equivale a dizer "desligado" ou ("OFF").

      Um pino do Arduino, é normalmente um pino do tipo Digital. E para que este pino possa controlar dispositivos da forma ON/OFF,  vc deve primeiro configurar o mesmo como "saída Digital", e isso normalmente é feito no "setup" do Arduino, para que o pino fique "pronto" para controlar algum dispositivo ao longo do restante do código. A função "pinMode" é que usamos para fazer essa configuração. Por exemplo se estamos usando o pino "4" do Arduino  para controlar um módulo Relé, a configuração desse pino será:

            pinMode( 4, OUTPUT );

      Onde "OUTPUT" significa que estamos  configurando  o pino 4  como saída Digital.  Uma vez configurado, podemos colocar este pino ou em "1" ou em "0", justamente para ligar ou desligar algo (por exemplo um módulo Relé). Ocorre que o pessoal que criou o Arduino, convencionou chamar o "1" de "HIGH",  e o "0" de "LOW". Então vc pode usar estes termos "HIGH" e "LOW",  ao invés de "1" e "0". Mas  isso é da sua vontade, porque qualquer destas formas que vc usar, o Compilador "C/C++"  irá aceitar, e no final das contas, ele sempre acaba traduzindo tudo para "1" e "0".

      E como controlamos o pino Digital?  Ora, "escrevemos" naquele pino ou "1" ou "0", justamente para ligar ou desligar o que o pino está controlando. Para isso, usamos a função "digitalWrite". Veja como vc poderia ligar algo usando o "digitalWrite":

            digitalWrite( 4, 1 );

  ou

            digitalWrite( 4, HIGH );

      Os dois casos, tem o mesmo resultado, uma vez que o "HIGH" será convertido automaticamente pra "1".

      Mas aqui é que entra a tal da questão da convenção lógica, pois isso que eu mostrei a vc, está em "Lógica Positiva".  Mas por que?

      Porque existe uma convenção contrária, que chamamos de "Lógica Negativa".  E na "Lógica Negativa",  o "1" desliga alguma coisa, enquanto o "0" justamente liga esta mesma coisa. É apenas uma questão de convenção (ou seja: de interpretar quem faz o quê),  pois veja que ainda temos os dois comandos:  "ON" e "OFF".

      Assim, quando alguém usa "Lógica Negativa", para ligar  usamos o "0" e para desligar  usamos o "1". E portanto neste caso, o "ON" = "0",  e o "OFF" = 1. Por este motivo, em "Lógica Negativa",  o "HIGH" irá desligar algo, enquanto que o "LOW" irá ligar.  Justamente o contrário da "Lógica Positiva".

      Mas por que usar duas convenções lógicas, se apenas uma delas já faz o que precisamos (ligar/desligar) ???   Isso ocorre porque quando circuitos eletrônicos Digitais são construídos, muitas vezes é mais fácil controlar algo usando "Lógica Positiva",  mas às vezes é mais fácil controlar usando "Lógica Negativa" (ou é mais conveniente, por diversos motivos).

      Então, vc poderá encontrar no mercado,  módulos Relés que usem "Lógica Positiva", ou seja, com "HIGH" (ou "1") ligamos o Relé do módulo.  Mas acredite: por motivos econômicos (poupar uns $$$), é tremendamente mais comum vc encontrar no mercado, módulo de Relés  que são controlados com "Lógica Negativa",  e por isso nestes módulos o "HIGH" desliga o Relé, e o "LOW" liga o Relé.  Este é o caso do seu módulo Relé em questão.

      Bem, espero que eu tenha conseguido elucidar esta questão do "HIGH" e do "LOW" no controle ON/OFF  de um dispositivo qualquer.

      Mas sempre observe o seguintes pontos:

      1)  em um Sistema qualquer, não há obrigatoriedade de se usar sempre "Lógica Positiva" ou sempre "Lógica Negativa". Ou seja, é muito comum (99.99% dos casos) que as duas convenções lógicas sejam usadas em um mesmo Sistema. E claro que isso pode causar alguma confusão nos mais desavisados. O importante é saber como se controla um dispositivo qualquer naquele sistema. E pra simplificar o processo, é muito comum também fazer uma função que liga ou desliga um dispositivo. Por exemplo se vc quer ligar um Relé "X" que é acionado com "LOW", vc pode criar uma função que escreve "LOW" no pino de controle, e dar o nome "Liga_Rele_X" a esta função. Veja como ficaria isto:

      void   Liga_Rele_X ()

      {

            digitalWrite( 4, LOW );

      }

      E da mesma forma poderia criar uma que desliga o mesmo Relé, escrevendo "HIGH" no pino.  Assim, vc não precisa se preocupar em saber ao longo do seu código, se o tal Relé "X" liga em "HIGH" ou se ele liga em "LOW". Basta chamar a função "Liga_Rele_X"  ou a  "Desliga_Rele_X".  Mais fácil não é?

      2)  vc nunca pode ignorar que assim como podemos traduzir "1" como "HIGH" e "0" como "LOW",  estes mesmos "estados digitais" serão traduzidos para tensões elétricas nos circuitos eletrônicos digitais.  No caso do Arduino UNO  por exemplo,  o "HIGH" implicará que temos em um pino digital  (configurado como saída), uma tensão próxima a 5V (cinco Volts), e o "LOW" implica que essa tensão será próxima a 0V (zero Volts).  Já se vc está usando um ESP8266,  o "HIGH" é próximo a 3.3V (três ponto três Volts) e o "LOW" fica próximo a 0V. Esta é uma das coisas que quando não é considerada, causa grandes dores de cabeça, e as pessoas ficam dizendo "não liga o Relé quando eu mando ligar", ou ainda "o Relé fica sempre ligado". O problema são os valores de tensão "HIGH" e o "LOW" estão inadequados  entre  o Arduino e o módulo Relé.  Bem, agora vc já sabe.  Mas como essa parte trata de circuitos eletrônicos, há ainda uma série de outras considerações a respeito (relacionadas aos circuitos), e isto pode ser um tanto indigesto pra grande maioria das pessoas que querem estar no "Mundo Arduino". Mas se vc quiser saber algo mais detalhado sobre isso, pergunte aqui.

      Espero ter ajudado.

      Abrçs,

      Elcids

Obrigado!

Bom dia 2M,

a explanação do amigo EC está bem completa.

Faça um teste com o exemplo  Blink.ino, que vem junto com a instalação da IDE.

Selecione um pino diferente do 13, que é o padrão.

Ligue o seu módulo neste pino, e teste.

Depois conta o resultado.

Teste este usando a porta 8.

https://pastebin.com/bzT0Yhxv

RV mineirin

Criei esse código seguindo as informações acima: https://pastebin.com/LYVvpMaB

Ainda não testei no modulo, mas acho que vai dar certo.

Obrigado!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço