Bom dia senhores, estou tentando fazer o acionamento de um 74hc595 por meio de três optoacopladores. porem não esta funcionando corretamente estou montando o circuito conforme a imagem a seguir.

Alguém sabe me dizer o que pode estar errado ?ou me sugerir um circuito diferente?

Exibições: 1891

Responder esta

Respostas a este tópico

Olá.

  Eu por costume usaria os optos chaveando ao GND e um pullup para garantir o 5V. Mas não que seu circuito esteja errado. Deveria funcionar.

  Sugestão: Meça com o multimetro a tensão quando vc coloca nivel alto e baixo no pino 1B e quais tensões corresponde no pino ST. As vezes o problema é outro como esquecer de ligar o GND do ULN, algo assim

4.6v

Meça assim:

1B    ST

0V   ?

5V    4.6V

Para cada um deles.

Para medir a entrada o GND é o da entrada. Para o da saída tem que ser o da saída. A menos que tenha interligado os GNDs.

Nos ajude a te ajudar...

1B com 5V ST fica com 4.6v

olá Paulo.

      Há um grande equívoco na sua topologia. Para que ela funcione de forma adequada, os Opto devem ser ligados na configuração "Emissor Comum". Para isso, elimine  os Resistores R3, R4 e R5, e ligue o pino 3 de cada Opto diretamente "GND".

      Para um melhor resultado, se possível, mude R2, R6, e R7, para 2.7k (ou "2k7" como também usado na nomenclatura).

     Mas isso ainda não é a única coisa necessária para que seus HC595 (que estão sendo "drivados" na forma isolada) funcionem da forma correta. Veja que os ULN2003A são Drivers Inversores. O Opto da forma como está ligado, não inverte o nível lógico do ULN, de forma que os níveis resultantes para o HC595 são os do ULN, e portanto com lógica invertida em relação às entradas deste ULN. Assim, garanta que a cadência de sinais "High" e "Low" aplicados ao ULN, tenham lógica adequada para acionar o HC595, do contrário não funcionará. Como referência, veja este link daqui do LDG, que pode ser bem útil pra vc:   "acionamentos com HC595/594"

 

      Caso tenha alguma dúvida, não deixe de perguntar.

      Abrçs,

      Elcids

caso vc não saiba como controlar o HC595 com Lógica Negativa (sinais "invertidos"), pode usar esta configuração que mostro a seguir:

(clique na figura para "zoom")

      Observe porém que nesta configuração, apesar de funcionar perfeitamente, a capacidade de corrente do ULN, é sub-utilizada, e portanto não seria a melhor das configurações. O ideal mesmo seria vc usar Lógica Negativa para a cadência de sinais fornecidos ao ULN.

       Nesta configuração aumentei o valor de R1 para 470 ohms, para diminuir a tensão de saturação do Nível "0" na saída do ULN (o parâmetro "VOL") e dessa forma garantir que o Opto não acione o seu LED interno nesta condição.

      Note que mostrei apenas a conexão para o sinal "ST". Mas a mesma topologia também se aplica aos demais sinais ("SH" e "DS").

       VC não informou as tensões de alimentação em cada lado da isolação. Por isso marquei com um "???" a alimentação do Opto via R2, e assumi que do lado do ULN é 5V.

 

     Abrçs,

     Elcids

se na configuração acima, o "VOL" no nível "0" (ou "VCE sat") do ULN ainda ficar muito próximo o suficiente para acionar indevidamente o LED do OPTO, conforme mostro na figura a seguir (tirada do datasheet do ULN da Texas):

      ...então use a configuração com o diodo que mostro a seguir, que garantirá que o LED não seja acionado indevidamente no Nível "0" do ULN:

      Abrçs,

      Elcids

Duas dúvidas
1-o pino 3 direto no gnd não seria um "curto"?
2- com nível 1 em 1B, 1C fica em 0 ligando o Led e colocando 5v no pino 3 não é isso?

oi Paulo.

      Sim, vc está correto na sua colocação (1 e 2).

      Desculpe, esqueci de mencionar no primeiro post, que vc deve obter o sinal "ST", do coletor do transistor do Opto (pino 4 do mesmo), que é a configuração para "Emissor Comum". Isto o leva a utilizar um dos circuitos que mostrei acima para a saída do OptoO mesmo se aplica aos demais sinais.

       Mas claro, vc pode continuar acionando o ULN da forma como já estava, desde que a cadência lógica dos sinais para o HC595 esteja adequada (com "Lógica negativa").

      Perdoe pelo esquecimento.

      Aproveitando, quais tensões vc está utilizando em cada lado da isolação?  (sabendo disso, é possível especificar mais adequadamente os valores dos resistores, garantindo o funcionamento correto do circuito).

      Abrçs,

      Elcids

Ambos os lados são 5V . Não entendi a parte da lógica negativa

olá Paulo.

      Conforme prometi, estou postando um exemplo que permite vc configurar os sinais para "Lógica Positiva" ou "Lógica Negativa". No sketch do Arduino (link mais à frente) vc poderá ver isso logo no início do código, permitindo vc configurar conforme necessário. Veja:

      No entanto, o modelo do PC817 do meu Proteus não funciona, e tive que substituir pelo 4N25 (pode ser que vc estivesse enfrentando isso também).

      A principal característica do PC817, certamente é sua tensão de isolação de 5000V, o que o torna ótimo para ambientes industriais, ou em ambientes onde uma tensão de isolação desta amplitude é necessária.

      Porém, o PC817 é um Opto "lento", e seus tempos de propagação do atraso são bem altos. Os tempos típicos já são altos, mas podem ser piores, conforme pode ver na figura a seguir, onde marquei o típico com amarelo e o pior caso em laranja:

      O 4N25 tem velocidade semelhante, porém com uma tensão de isolação bem mais baixa (tipicamente 2500V), o que pode ser inadequado para sua aplicação.

      Para contornar o problema da baixa velocidade do PC817, deixei a possibilidade de definir estes tempos no código do Arduino, conforme a seguir (observe que coloquei maior que o pior caso, para garantir):

      O Sistema funcionou no Proteus, conforme vc pode atestar pelo arquivo de simulação e código do Arduino neste link:   HC595_ULN2003A_01.zip

      Na figura a seguir vc pode ver também a temporização do Sistema, onde fica claro pelos Osciloscópios, a baixa velocidade de comutação dos Optos:

(clique na figura para "zoom")

      Se vc precisar de uma taxa de atualização muito mais rápida para o HC595, sugiro que use o Opto 6N137 ou HCPL2630 (datasheet:  6N137 e HCPL2630 datasheet  ), que podem chegar a 10MHz (eu já os usei muito em projetos reais).

      Caso queira usar o PC817 de qualquer forma, aconselho acrescentar buffers Schmitt-Trigger (tipo 74HC14) nas saídas dos PC817, de forma a ter sinais digitais bem definidos aplicadas ao HC595 (isso é bastante importante se vc estiver em ambientes muito ruidosos), e caso tenha alguma dúvida sobre isso, me pergunte. Mas terá que usar a temporização mais lenta, devido à baixa velocidade do PC817.

      Ah sim, quase esqueço:  note que além dos 3 sinais que vc já usava, também acrescentei o controle do OE# (pino 13) do HC595, o que torna um pouco mais versátil o Sistema, mas isto é opcional. Este exemplo eu aproveitei de um outro post que coloquei aqui no LDG, e apenas adaptei para seu caso.

      Se houver alguma dúvida sobre qualquer ponto, não deixe de perguntar.

      Abrçs,

      Elcids

mais um detalhe que esqueci:

      Se usar os Buffers  Schmitt-Trigger tipo 74HC14 nas saídas dos Optos PC817 (eu recomendo expressamente o uso destes Buffers  Schmitt-Trigger no caso do PC817 ou 4N25), não se esqueça que são inversores, e portanto invertem os Níveis Lógicos entregues aos HC595. Ou seja: a lógica "total" volta a ser a "Lógica Positiva", e vc deve selecionar isto no código do Arduino conforme mostrei.

      Abrçs,

     Elcids

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço