Automação Industrial. Conversor 4..20mA. Corrente de sensor...

Olá...
Estou com um pequeno dilema matemático na conversão de valores com o arduino...
Estou com a seguinte situação...
Tenho um arduino Mega R3, um sensor de vazão da George Fisher e um módulo Brick conversor 4..20mA. Como o sensor de vazão é alimentado com uma tensão de 24v e o arduino com uma tensão  de 5v, comprei este módulo conversor "Brick conversor 4..20mA". Com ele eu já alimento o sensor com os 24v e converto o valor do sensor de 4..20mA para o arduino de 0..1023. Com esse valor consigo medir a vazão tranquilamente com o seguinte código:
 => float medicaoSensor(int  sensor, int range){
 =>   float medicao = sensor * range / 1023.00;
 =>   return medicao;
 => }
Mas o problema está quando quero saber a corrente exata do sensor. Quando recebi o módulo conversor 4..20mA, a loja me mandou um email com a especificação do módulo e um código exemplo. Que é o seguinte:
 => int sensorValue1 = analogRead(A4);
 => float voltage1 = sensorValue1 * (5.0 / 1023.0) /0.2;
Porém este código não retorna o valor de corrente exato. Pois quando o valor retornado pelo conversor é 0, o código me devolve também o valor 0, que deveria ser 4. O que quero é uma fórmula que me retorne o valor proporcional. Quando o conversor me trouxer 1023, o código converte para 20,0, e quando trouxer 0 o  código converta para 4, e não para 0...
Desde já Agradeço...

Exibições: 515

As respostas para este tópico estão encerradas.

Respostas a este tópico

Creio que a função map() resolva seu problema

https://www.arduino.cc/en/Reference/Map

Olá,

Use a função map:

y = map(x, 0, 1023, 4, 20);

https://www.arduino.cc/en/Reference/Map

Abraço

Boa noite Rômulo você pode tentar alterar direto na formula que eles te passaram!
 
int sensorValue1 = analogRead(A4);
float voltage1 = ((sensorValue1 * (5.0 / 1023.0)) /0.3125) + 4;

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço