quinta-feira, 10 de janeiro de 2013

Arduino - Acionando relé 12V com delay e botão

E vamos a mais um projetinho que é facilmente implementado .
voce vai precisar de :
1- arduino
8- jumpers
1-push button
1-optoacoplador 4n25 (ou transistor npn de uso geral , mas por sua conta em risco )
1- resistor de 10KΩ (marrom , preto , laranja ,dourado)

1- resistor de 10Ω (marrom , preto , preto ,dourado)
1-protoboard
1-fonte de 12v

Com tudo separado , mãos a obra !
começe colocando o opto acoplador e o botão na protoboard , assim como na figura .
em seguida ligue os resistores , o de 10Ω na entrada do opto acoplador e o de 10KΩ em um dos terminais do botão
A ligação do botão deverá ser igual a da imagem ao lado .
- fio laranja +5V
- fio verde  GND
- fio preto  sinal , ligado ao pino 2 do arduino





A ligação do opto acoplador deverá ser igual a da imagem ao lado .
-fio laranja GND
-fio vermelho em serie com o resistor de 10Ω , sinal que deverá ser ligado ao pino 11


A ligação do modulo relé de 12v feita através do opto acoplador , onde o gnd da fonte de 12 v é ligado diretamente ao gnd do relé e o sinal de +12v passando pelo opto , entrando pelo seu pino central e saindo pelo pino da direita , conforme a foto .



Agora é só juntar tudo , compilar o programa e vamos ver a magica acontecer


Tudo montado , agora só programar !









Programação .



const int pinobotao = 2;   
const int pinoopto =  11;     
int estadobotao = 0; 

void setup() {
  pinMode(pinoopto, OUTPUT);      
  pinMode(pinobotao, INPUT);     
}

void loop(){
  estadobotao = digitalRead(pinobotao);
  if (estadobotao == HIGH) {     
    digitalWrite(pinoopto, HIGH); 
    delay(30000); //aqui voce coloca o tempo que o rele vai ficar ,ligado no caso 30s
  } 
  else {
    digitalWrite(pinoopto, LOW); 
  }
}

Qualquer duvida só perguntar pelos comentários ! 



18 comentários:

  1. ola amigo, preciso acionar 5 reles que desativam sozinhos depois de um tempo determinado, e que esse comando venha atraves de um aparelho celular com bloetooth, teria como fazer?
    teria como postar para nós?

    ResponderExcluir
  2. COmo vc fez o circuito do relé

    ResponderExcluir
  3. nao sei pois sou leigo, mas eles tem que acionar por uns 30 milisegundos e desativar..

    ResponderExcluir
    Respostas
    1. 30mS ? certeza ?? mal da tempo de acionar a bobina do rele . nao seria 30 segundos??

      Excluir
  4. nao, pode ser ate mais tempo por volta de 60 a 80 milesegundos..

    ResponderExcluir
    Respostas
    1. To achando estranho .. é pouquisimo tempo isso . mas é so tu trocar o tempo do delay

      delay(60); ou delay(80);

      Excluir
  5. eu nao estou conseguindo fazer o programa, eu estou tentando mandar um comando via bluetooth, o arduino le o comando aciona o rele, o rele permanece ligado por 60 a 80 milessimos de segundo e desliga, o tempo nao importa muito, o negocio é montar o programa, cada rele deve acionar individualmente, como no video acima,
    quando ele aciona o rele ele permanece por 30 segundos e desliga sozinho.mas no meu caso sao 5 reles, se puder da uma luz agradeço...

    ResponderExcluir
    Respostas
    1. Voce nao consegue mandar o comando ou nao consegue desligar o rele ??

      Excluir
  6. eu nao consiguo fazer o programa para desligar o rele automaticamente, sendo que sao cinco reles separados e cada rele com um comando, tipo `1` liga o rele um e desliga sozinho ...

    tambem preciso de ajuda quanto ao modulo bluetooth pois acho que queimei o meu porque liguei ele direto e nao sabia, o que faço? se puder ajudar agradeço...

    ResponderExcluir
    Respostas
    1. digitalWrite(pinoxx, HIGH);
      delay(tempo em ms aqui );
      digitalWrite(pinoxx, LOW);

      Excluir
  7. mas desse modo ele desativa sozinho?

    ResponderExcluir
  8. Se eu quisesse, ao invés de dar um delay (no caso 30 s), fazer meu arduino contar quanto tempo minha lâmpada fica ligada, a partir do acionamento na botoeira. Tens ideia de como poderia fazer.

    No caso, não haveria delay, e sim um contador de tempo marcando quanto temo em HIGH a partir do acionamento do botão!

    ResponderExcluir
  9. Olá amigo, gostei do seu post, estou fazendo o mesmo acionamento porem estou usando o Opto Bc817, de 4 pernas, porem ele não aciona o relê de 12v, vc saberia me dizer o pq? poderia ser fonte fraca? baixa corrente?
    OBS: notei que quando aciono a bobina a tensão de 12v cai para 2v e o relê não liga

    ResponderExcluir
  10. boa noite, eu queria uma ajuda sua sobre um circuito de timer programado com arduino mais me bato muito no tempo em q o circuito fica ativo, pois preciso de mais ou menos uma 15 horas ele ligado pra desligar é não consegui nenhum que ficasse tanto tempo é que ele seja programado com arduino.
    Será q tem como me ajudar?

    ResponderExcluir
  11. Este comentário foi removido pelo autor.

    ResponderExcluir
  12. Bom dia, estou interessado em montar um sistema automatizado com as seguintes condições:
    - Ao acionar o botão (push button??), é acionado o relé que terá ligado um exaustor;
    - Durante o funcionamento do mesmo, um LED verde fica aceso;
    - Ao acionar o botão novamente, o relé deverá desligar somente após 5 minutos e, durante esse tempo, um LED amarelo deverá ficar piscando, indicando que está "entrando em hibernação";
    - Quando concluir o tempo, um LED vermelho acende e fica assim até o próximo acionamento;
    - O mesmo pode acontecer se for o caso de incluir + 3 relés (totalizando 4), sendo que não é necessário que os demais tenham um tempo para desligar;
    - Uma opção interessante seria inserir um display LCD 16x2 para indicar o status (relé 1 ligado e o "nome do equipamento"; relé 2, relé 3... etc) e além disso, poderia indicar o status de preparando para desligar e pronto.

    A dúvida final seria: dá para montar isso no Arduino ou usando um microcontrolador??
    Como poderia ser o esquema de ligação desse sistema?
    Quais componentes eu iria precisar (resistores, etc)?
    Se puder me ajudar, agradeço imensamente!
    Abraço e desde já, muito obrigado.

    ResponderExcluir