Olá leitores; no post de hoje vou ensinar como criar saída 4-20mA com Arduino UNO. O objetivo deste texto é ser apenas uma referência,  mostrando a forma mais simples e barata de se obter uma saída analógica em corrente com o Arduino.

   Sinais elétricos em corrente são muito utilizados na indústria (especialmente o padrão 4-20mA) na forma de loop de corrente para controle de processos, devido á sua imunidade á ruídos. Algumas vezes até mesmo alguns sensores são alimentados pela corrente sendo medida! (não necessitando de alimentação externa).

Aplicação de sinais-mA Fonte: wikipedia

   No post de hoje vou implementar uma saída analógica em 4-20mA controlada pelo Fritzen Proto (compatível com Arduino UNO), contendo apenas um filtro RC de primeira ordem (sobre o qual eu já falei aqui) e um seguidor de tensão á transistor (com amplificador operacional). O diagrama esquemático do projeto está abaixo.

diagrama esquemático em Eagle CAD

diagrama esquemático saída 4-20mADiagrama esquemático do circuito proposto

   A ideia original deste circuito veio deste artigo no Hackster.io, onde o autor demonstrou a aplicação de um seguidor de tensão com amplificador operacional e um transistor como amplificador. Antes de explicar o circuito, preciso comentar que este circuito não é recomendado para nenhuma aplicação mais “séria” pois é bem simples, cheio de falhas e atalhos. Ele funciona muito bem como didática, mas só.

O exemplo que implementei é dividido em 3 etapas:

  • Parte 1: um potenciômetro de 10k Ohm conectado à entrada analógica A1 do Arduino, para atuar como referência de entrada (valor desejado),
  • Parte 2: um filtro RC (resistor + capacitor) conectado á saída PWM (pino 9) do Arduino. Ele serve para fitrar a tensão PWM gerada como referência para o gerador de corrente,
  • Parte 3: um seguidor de tensão com amplificador operacional e transistor, realimentado por um resistor série (responsável por controlar a corrente sendo gerada).

Os componentes utilizados são:

  • Parte 1 (ref. analógica): Potenciômetro de 10k Ohm,
  • Parte 2 (Filtro RC): Resistor de 4700 Ohm e capacitor cerâmico de 100nF,
  • Parte 3: Amplificador operacional LM224, transistor bipolar NPN BC548 , resistores de 100 Ohm e 150 Ohm.

circuito da saída analógica 4-20mAFoto do circuito montado (saída analógica 4-20mA)

O sketch (programa) do Arduino está disponível no GitHub do projeto e pode ser visto abaixo:

Agora uma explanação do que cada parte do código do Arduino faz:

Primeiro é feita a leitura analógica do potenciômetro, afim de setar qual o valor de corrente é desejado na saída:

Depois o valor lido no potenciômetro é transformado de 0-5V para 1-5V (que é equivalente percentualmente á 4-20mA):

E finalmente o valor já ajustado para a corrente desejada é escrito na saída PWM do pino 9 do Arduino:

   Então resumindo: o valor desejado de corrente na saída é setado por um potenciômetro (0-5V), convertido para um valor aplicável no PWM (0-255), ajustado para o valor desejado (4mA = 20% de 255, que é algo em torno de 30-50) e então aplicado efetivamente no PWM. Basicamente toda esta matemática quer dizer que quando a referência no potenciômetro for 0V a corrente de saída será +/- 4mA, e quando for 5V a saída será 20mA.

As imagens abaixo monstram o resultado dos testes:

leitura de corrente 4mA com multímetroAjustando o potenciômetro (referência) no mínimo, obtive quase 4mA (0,004 A)

 

leitura de corrente 20mA com multímetro Ajustando o potenciômetro (referência) no máximo, obtive quase 20mA (0,02 A)

 

Após realizar esta montagem e escrever este artigo, aprendi algumas lições técnicas valiososas:

  • Eu deveria ter alimentado o amplificador operacional com uma tensão maior que 5V, visto que há perdas no transistor (BC548) e desta forma a corrente nunca chegará no máximo (mA),
  • Pelo mesmo motivo (perdas no transistor) o seu resistor de base não pode ter valor elevado (começei os testes com  2,2k Ohm e ao longo do caminho fui baixando até 100 Ohm),
  • A tolerância dos resistores utilizados (neste caso 5%) influencia na qualidade e precisão final, visto que um resistor é o responsável por realimentar e regular a corrente gerada,
  • Pelos motivos acima, o circuito proposto não atenderá à demandas industriais por exemplo, onde precisão e confiabilidade são mandatórias.

   Lembrando que todo o material utilizado neste experimento (código, imagens, esquemáticos) está disponível no GitHub do projeto. E não esqueçam de conferir os links de patrocinadores, onde é possível comprar componentes e Arduinos de forma mais barata (e ainda ajudar o blog!).

Criar saída 4-20mA com Arduino

3 ideias sobre “Criar saída 4-20mA com Arduino

  • julho 5, 2018 em 3:46 pm
    Permalink

    Muito bom o seu projeto.

    Qual a resolução? digo vou medir um pt100 com um max31865 exibirr a temp e enviar via 4~20mah o sinal proporcional do valor lido, porem esse circuito me dará a precisão necessária?

    outra coisa, no esquema vc usou um LM339 no desenho um LM324, qual realmente usou?

    Resposta
    • julho 7, 2018 em 10:40 pm
      Permalink

      você conseguiu sucesso no projeto? estou ainda tentando fazer um lm35 ter uma saida analógica para 4-20mA

      Resposta
  • julho 12, 2018 em 10:32 pm
    Permalink

    Belo trabalho!
    Fiquei com uma dúvida, a corrente que passa de coletor para emissor no transistor varia de 4 a 20mA, dessa forma, o resistor do emissor não deveria ser de 250 ohms? Visto que 250R x 20mA = 5V.
    E por lógica similar, a saída do amp.op. não está diretamente ligada à entrada negativa, visto que há um resistor de 100 ohms entre elas, isso implicaria em um ganho do amp op não? Visto que a configuração estaria Inversora.
    Grato!

    Resposta

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *