Olá a todos,
Tenho um projeto e Vending em funcionamento já há uns 3 anos e ao longo desse tempo me deparo co u ma questão e procuro sugestões.
Uma das portas digitais do atmega é configurada como input e recebe de dispositivos como moedeiros e noteiros uma sequencia e pulsos dependendo do dinheiro inserido.
Eventualmente me deparo com o seguinte : O dispositivo em questão por alguma razão entra em curto e quando isso ocorre, os pulsos enviados na verdade viram 12v que é alimentação padrão desses dispositivos. O resultado é que a porta input nesse momento recebe os 12v e obviamente queima e o atmega fica inutilizado ,pois deixa de ser capaz de ler pulsos. Só substituindo o atmega.
Minha pergunta : Como protejo essa porta para que nunca ultrapasse 5v vindo externamente nela?
Eu já tentei via opto acoplador mas o pulso sofre um retardo e a identificação dos mesmos perde a precisão.
Alguém consegue dar uma ajuda?
Grato desde Já
Ps : Atmega 328
Tags:
como se trata de sinal, já tentou fazer um teste com um diodo zenner?
Uma outra opção também, talvez seja usar um transistor.
Olá.
Como já foi dito e vc ja tentou.. tem várias formas de fazer isso.
1) Optoacoplador
A melhor, embora mais cara, seria com o optoacoplador. Eles funcionam sim, se vc teve problemas com velocidade precisa ver qual usou, qual a frequencia do seu pulso, como polarizou, etc. Um erro clássico é não ler a folha de dados do optoacoplador, ex: O 4N25, que é um projeto dos anos 80, tem uma perninha a mais, ligada ao transistor que fica no receptor. Ela serve para, em caso de necessidade, colocar um resistor ao GND, pra descarregar mais rapidamente o fototransistor, que por ser grande funciona como um capacitor.
Nos dias de hj o 4N25 é pouco usado em produtos de consumo, não vou me alongar pq nem sei se é esse q vc usou.
2) Resistor+Diodo Zener.
Sim, resistor+diodo zener. De nada a dianta o diodo puro, isso já tem dentro do atmega. É preciso por um resistor. Se for por uma coisa só melhor por só o resistor que só o diodo. O diodo puro se for de baixa potencia queimará e se for de grande potencia será uma carga (vide Izmin do diodo zener). 100R a 220R em série com o sinal e um diodo de 5V6 do pino ao GND podem ser suficientes.
3) Um transistor. Ele inverte o sinal... Mas é efetivo. Vc usaria o sinal na base dele. Como chave pode ser feito de forma a suportar por ex de 3 a 15V tranquilamente. Claro que precisa tb de resistor de base e do coletor ao VCC.
Eduardo, eu usei o 4N25 , 4N35 e PC817 sem sucesso na questão da velocidade dos pulsos. Perde a precisão. Hora lê o valor correto, hora não lê ...
Olá, Cezar!
Eu tenho um projeto com optopacopladores para ler um encoder, utilizando o EL817, que deve ter características muito próximas às do PC817.
Funciona bem até 20 kHz, com a limitação mais por parte do software do que do hardware.
A forma de onda, a 20 kHz, é excelente, fazendo crer que a frequência pode subir ainda um pouco mais e, se o software permitisse, poderia funcionar também nesta frequência mais alta.
O único cuidado que tive de ter foi colocar um pullup "forte" ( baixa resistência ) no coletor do fototransístor do opto. Acho que usei 1 kΩ. Isto serve para carregar rapidamente a capacitância parasita do transístor do opto.
Ah, e também garantir uma corrente suficiente no LED do opto, para garantir a transferência de corrente para o fototransístor, já que estes optos tem um ganho de corrente muito baixo.
Eu não sei qual é a frequência dos pulsos do moedeiro que você usa, mas alguns que tenho visto não chegam aos 20 kHz.
Será que o problema é realmente a velocidade?
D. T. Ribeiro
Eu acredito que seja, até porque como eu disse, é um produto há 3 anos rodando com moedeiros, noteiros, interfaces PIX e interfaces Cartão de crédito sem nenhum problema. Meu problema apenas é quando um moedeiro resolve entrar em pane e dá uma paulada na saída dos pulsos e me queima o atmega na porta e escuta. Quando isso ocorre, vc mede nada menos que 12v na saida de pulsos dele
:-)
Olá. Se for usar opto use o 6N137, que é cmos de alta velocidade.Baixe o datasheet dele e dê uma olhada. Eu uso ele em sistemas de CNC onde a frequencia dos pulsos são bem altas e com excelentes resultados.
Outra coisa, você usou a configuração INPUT_PULLUP nas suas entradas ? Algo parecido com isso;
pinMode(moedeiro, INPUT_PULLUP);
E por último talvez um diodo de proteção de alta velocidade(1n4148) ligado inversamente com sua entrada poderá proteger contra surtos de tensão.
Espero ter ajudado,
Att.:Reinaldo de Souza
obs.: Tenho duas placas que fabrico para máquinas de venda, uma com um produto usando o atmega e outra com 3 produtos usando o esp32 e nunca tive este tipo de problema.
Se quiser dê uma olhada nas minhas placas em www.rdscnc.com.br
Olá Ronalo
O diodo invertido poe surtir algum efeito sim. Vou experimentar.
Grato
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por