Hola, ya hace varios meses que estoy atascado con el tema de medir la temperatura con una pt100 y a traves de 4-20 enviarlo a un mega. El problema es que no sé como ajustar el transmisor. Tiene un potenciometro de zero y uno de span, se supone (entiendo) que si a la entrada la sumerjo a agua a 0º (o una R de 100ohms en vez de la ptc) a su salida debería ajusatarlo a 0º, que seria 4ma, y luego sumerjo a 40º y ajusto el span para que marque 40º, pero no me funciona. El conversor de mA a 0-5v he probado con la resistencia, con el circuito RCV420 y ultimamente con una placa HW-685. Ësta útima le inyecto 4 o 20 mA y puedo ajustar 0 y 40º, pero luego me marca mal debido a no saber ajustar el transmisor, del cual adjunto foto. ¿hay algún método mejor? La medida la hago con map y con la sonda de presion wika s-11 funciona a la perfección. Gracias
Muchas gracias por tu interés y respuesta, pero lo que necesito (o deseo) hacer es algo como lo de este link , ya que ha de haber unos 10 metros de cable entre la sonda y el arduino. Funcionar funciona, solo que no sé como ajustar el cero y el span, para decirle el mímo, 0º=4mA y que 40º son los 20 mA. Gracías
A falta de poner la pt100, he probado con resitencias en la entrada del transmisor. Una tabla que encontré pone los valores de la resistencia para cada 10 grados, así cuando la sonda mide 0º la resistencia entre bornes es 100,0ohms.
0 100.00
10 103.90
20 107.79
30 111.67
40 115.54
he puesto un conmutador en la entrada para seleccionar la r de 100 o la de 115, simulando 0 o 40º (tampoco he de medir la temperatura de una persona que se está operando) y he puesto el zero del HW-685 totalmente a la izquierda (estaba ajustado con el generador) y el de span totalmente a la derecha, luego conectando "0" grados he ajustado el 0 del xtr y poniendo "40º" he ajustado el span del transmisor para que marcara 40º. Luego he puesto unos 105ohms marcando 18,xxº. Se supone que ya con la sonda suya ha de funcionar. Lo que no sé es porqué con el rvc o con la resistencia no podía ajustarlo, imagino que con éstos no debe bajar de 4mA ni subir de 20mA, en cambio con el HW, poniéndolo a extemos con margen ya llega a 4 y 20mA. saludos
Lo primero es ver si tu transmisor hace lo que se espera.
Cuando pones la R de 105 sobre bornes de 250 ohms que tensión mides? Deja al arduino de lado.
Cuando pones una R de 100 que dice el tester?
Transmisores he usado varios, no todos irán mal. Ahora funciona bien, he probado con agua a distintas temperaturas y marca bien. La salida del transmisor marca 4ma con agua a 0º y 19-20 con agua a casi 40º.
Descarto que entre 0 y 40 el transmisor varia de acuerdo a la corriente que corresponde.
Eso lo mides con una R de 250 ohms y el tester o multimetro reporta entre 1 y 5V?
Ya se que lo sabes pero yo no estoy a tu lado.. no puedo comprobarlo.
Si todo esto ocurre me dices que el arduino no lee bien 1 a 5V?
Puedes poner todo el código y no una parte.
Estos valores los imprimes por puerto seri
temp_lee_sonda y temp_actual_map
en el primero lees entre 0 y 1023 y en el segundo entre 0 y 5000?
Descarto que entre 0 y 40 el transmisor varia de acuerdo a la corriente que corresponde.---> el transmisor va de 0 a 50º
la salida del HW que uso ahora marca entre 0 y 5 voltios, medido con tester y temp_actual_ mapm que lo muestra en display y sí, marca entre 0 y 1023. Antes sin el HW y con el RCV420 o la R de 250ohms no marcaba de forma correcta. Ayer puse otra vez agua a 0º y a 40 y marca bien, cosa que no hace con el rcv o la r, no monitoreaba esta parte del temp_actual_map. No sé qué parte más quieres del codigo, pero creo que esta es la que determina lo que marca, el resto son acciones.
void lectura_temperatura() //------------------------------------------------------lectura temperatura-------------------------------------
{
if (millis() - contadorMillis_retardo_temperatura >= 1000)//evita que las lecturas parpadeen más de la cuenta
{
temp_lee_sonda = analogRead(lectura_temp_sonda); //--------------*********************sonda pt100****************
temp_actual_map = map(temp_lee_sonda, 0 , 1023, 0, 5000); //rango de 0 a 5000mV(=5V)
temp_actual_sistema = map(temp_actual_map, 0, 5000, 0 , 4000);
//temp_actual_map = temp_lee_sonda * (5.0 / 1023.0);
lcd.setCursor(0, 2);
lcd.print(temp_lee_sonda);
lcd.setCursor(10, 2);
lcd.print(temp_actual_map);
if (temp_actual_sistema / 100 > temp_maxima_programada)
{
rele_on();
digitalWrite(led_rg1_rojo, HIGH);
digitalWrite(led_rg1_verde, LOW);
}
else
{
//rele_off();
digitalWrite(led_rg1_verde, HIGH);
digitalWrite(led_rg1_rojo, LOW);
}
contadorMillis_retardo_temperatura = millis(); // reinicia contador retardo refresco
}
}
Deberías colocar un enlace al manual del transmisor. Solo he visto algo parecido en viejos sistemas de comunicación, pero no para calibrar los sensores, estaban destinado a evitar que la señal superara los limites de 4-20 mv. En los PLC si la señal baja de 4ma se ponen en error los módulos, porque considera que se abrió el circuito, mas de 20ma considera que esta en corto. No estoy 100% seguro pero la idea es que utilices los potenciómetros para que la señal caiga dentro de los limites, luego por software debes hacer una curva de calibración.
Saludos