Fala pessoal

Estou com problema com o 4N25. Vou postar o circuito no post.

Eu fiz um contador de Pulso com o Arduino. Esse pulso é gerado em 12v.

Eu estou utilizando o optoacoplador 4N25 para gerar o mesmo sinal em 5v, para que o Arduino passa ler.

Hoje, estou testando com 2 placas do Arduino, sendo uma para gerar o sinal e outra a outra para ler.

Mas eu estou gerando um sinal de apenas 5 Hz e o meu contador fica contando registra vários ruídos. (ex: 3, 5, 20, 75...).

Preciso fazer alguma coisa a mais no circuito para funcionar? No datasheet, me parece que o 4N25 tem um atraso de apenas 2 us.

Obs 1: Estou utilizando Interrupção na porta 2 para fazer a leitura. Ela apenas incrementa quando percebe uma transição de descida.

Obs 2: Estou utilizando o Pull Up do Arduino.

Exibições: 371

Anexos

Responder esta

Respostas a este tópico

Olá

Você precisa polarizar o transistor de saída e ao mesmo tempo garantir um nível logico quando ele estiver em corte.

Ola amigo! eu uso muito aqui foto acoplador com um operacional, tipo o LM393 Veja este link que vou postar pra vc ver se vai resolver seu problema ai, Sensor de Velocidade com Foto Acoplador

Que tipo de Pulsos vc esta querendo medir? qual Dispositivo vc pretende ler esses Pulsos

Bom dia , 

Concordo com o Elcids sobre o circuito do Cícero:

"está trocada a ligação coletor/emissor de U1 (o opto-acoplador)"

Geraldo favor informar os sketches que usou no gerador e no contador.

Esta mesmo Gustavo rsrs, nem tinha notado isso, na verdade era esse desenho aqui 

olá Cícero, bom dia.

      Note vc que no link mencionado no seu primeiro post ( Sensor de Velocidade... ), o circuito está realmente com as ligações trocadas (entre coletor e emissor). Lá há diversos circuitos semelhantes, e apenas este está com a ligação trocada. Certamente foi um acidente que ocorreu durante o desenho do circuito (e eventualmente pode até ter sido culpa do famigerado "snap", existente em muitos programas para desenho de circuitos).

    Independente do pequeno erro no circuito, é gigante e honrosa a sua ação de divulgar o link e estimular a pesquisa e conhecimentos sobre a vasta eletrônica.

    Abrçs,

    Elcids

Certamente, sempre tem alguns erros em desenhos na Net

José Gustavo,

Também não sei exato onde será utilizado.

Estou ajudando um colega a ler um sinal de uma roda dagua.

Cícero, bom dia.

     Acho que está trocada a ligação coletor/emissor de U1 (o opto-acoplador). Embora o transistor possa até funcionar assim, não terá a mesma performance em relação ao HFE.

    Abrçs,

    Elcids

bom dia Geraldo

     A informação do Flávio Hernan procede, pois o transistor receptor dentro do 4N25 precisa de polarização, de forma a garantir que este transistor sature quando o LED emissor do 4N25 seja acionado, e que corte quando este LED for desacionado.

     Essencialmente, essa garantia de saturação depende da "relação de corrente" entre o LED emissor e o Transistor receptor, além do próprio valor do resistor de coletor. Essa relação de corrente está descrita no datasheet do 4N25, e muitas vezes é chamada como relação de transferência da corrente, ou até mesmo "ganho" de corrente (semelhante ao "HFE" dos transistores).

     Embora no seu desenho não exista o resistor de coletor do transistor, vc diz estar usando o Pullup do Atmega328. Teoricamente, este pullup poderia fazer o papel do resistor de coletor do transistor do 4N25. No entanto, vc deve notar que a documentação do Atmega328, chama estes pullups de "weak pullup", isto porque o valor destes pullups pode ir de 20 kohm a 50 kohm. Ou seja, além de ter uma grande variação, não é um valor que possa garantir o nível "1" em todas as situações, especialmente em ambientes mais ruidosos. Na figura a seguir vc pode conferir a faixa do pullup do Atmega328:

    Ocorre, que os pullups internos aos processadores, são constuídos através de MOSFETs, e portanto dependem de dopagem para apresentar uma determinada resistência ôhmica, e como esta dopagem pode variar muito, acarreta também a grande variação e altos valores (pois não é uma dopagem "forte").

    Em suma, para este caso do 4N25, é mais aconselhável garantir uma resistência "real" externa, e não depender do pullup interno da CPU.

    Assim, sugiro seguir o conselho do Flávio Hernan, e acrescentar o resistor de coletor. Pela relação de corrente entre o LED emissor e o Transistor do 4N25 (veja no datasheet), vc poderá inclusive calcular o valor mais adequado para este resistor (garantindo a saturação do transistor, ou ficando muito próxima a ela). Mas o valor de 10k sugerido pelo Hernan, deve dar conta da maioria dos casos (considerando o resistor do LED entre 330 ohms e 1k, para pulsos de acionamento entre 5V e 12V).

        Caso resolva colocar o resistor externo, aconselho também desligar o pullup interno do Atmega328, pois senão este pullup estará em paralelo com o resistor externo, causando uma resistência equivalente diferente da que vc espera no coletor do transistor.

       No entanto, pode também haver alguma imprecisão no seu código, a qual poderia estar causando o problema. Porque não posta ele aqui para que possamos avaliar?

       Como referência, dá uma olhada no link deste post onde auxiliei um colega aqui no garagem:  "medir RPMs"

       Caso precise de alguma orientação adicional, menciona aqui para que possamos ajudar.

       Abrçs,

       Elcids

Elcids Chagas,

Muito obrigado pela explicação. Obrigado a todos aqui.

Vou fazer a alteração no circuito como pedido.

Estou colocando em anexo o código:

contador_pulso.ino.

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2018   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço