Muchas gracias, no había entendido bien y pensaba que generar los 24V se replicaba en todos los canales para alimentar los sensores de tipo 2 y medir.
Ya hemos conectado el sensor (funciona en el rango de 9 a 36V) bien al shield:
https://1drv.ms/u/s!An-Wc_eGPy9rh4UKdvhhImj6ZglRCgAhora nos encontramos en que no conseguimos que el shield mida lo mismo que mide cuando lo conectamos a una fuente externa y medimos con el polímetro.
El comportamiento que detectamos es el siguiente:
a) Cuando conectamos el shield al sensor da siempre un valor entre 9 - 10 mA independientemente de si el sensor esta a una temperatura u otra (La gráfica se corresponde con la entrada 420C/1/ en el código . Se está leyendo con la función que te da los mA en el canal 1)
https://1drv.ms/u/s!An-Wc_eGPy9rh4UFYTh4tI41G0fcMAb) Si quitamos el sensor del shield medimos entorno a un valor de 24:
https://1drv.ms/u/s!An-Wc_eGPy9rh4UIhDO8JJj7ycI7-wc) Si medimos el sensor conectado a una fuente externa y medimos con el polimetro sí obtenemos un comportamiento normal:
- Medida sensor fuera del agua:
https://1drv.ms/u/s!An-Wc_eGPy9rh4UG3SYjd4QIZ8BA4Q- Medida sensor en agua caliente:
https://1drv.ms/u/s!An-Wc_eGPy9rh4UH6e2VFv0BeHWzqgSe os ocurre qué puede pasar? Este es el programa que estamos utilizando para medir los mA.
Muchas gracias, Alberto
_____________________________-
Se adjunta código utilizado:
#include <currentLoop.h>
String readString;
#define CHA1 CHANNEL1
#define CHA2 CHANNEL2
#define CHA3 CHANNEL3
#define CHA4 CHANNEL4
//currentLoop sensor(CHANNEL1);
void setup()
{
sensorBoard.ON();
Serial.begin(9600);
delay(100);
}
void loop() {
while (Serial.available()) {
delay(5);
if (Serial.available() >0) {
char c = Serial.read();
readString += c;
}
}
//SE LEE UN COMANDO/ORDEN/VALOR1/VALOR2/VALOR3/VALOR4
if (readString!="") {
char *dup = strdup(readString.c_str());
String comando = strtok(dup, "/");
String orden = strtok(NULL,"/");
String value1 = strtok(NULL,"/");
String value2 = strtok(NULL,"/");
String value3 = strtok(NULL,"/");
String value4 = strtok(NULL,"/");
free(dup);
readString="";
if (comando=="421A")
{
//int value = sensorBoard.readChannel(orden.toInt());
//int value = sensorBoard.readChannel(CHANNEL);
Serial.println(sensorBoard.readChannel(CHA1));
}
else if (comando=="421B")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.readVoltage(CHA1));
}
else if (comando=="421C")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.readCurrent(CHA1));
}
else if (comando=="421D")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.isConnected(CHA1));
}
//CANAL2
else if (comando=="422A")
{
//int value = sensorBoard.readChannel(orden.toInt());
//int value = sensorBoard.readChannel(CHANNEL);
Serial.println(sensorBoard.readChannel(CHA2));
}
else if (comando=="422B")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.readVoltage(CHA2));
}
else if (comando=="422C")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.readCurrent(CHA2));
}
else if (comando=="422D")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.isConnected(CHA2));
}
//CANAL3
else if (comando=="423A")
{
//int value = sensorBoard.readChannel(orden.toInt());
//int value = sensorBoard.readChannel(CHANNEL);
Serial.println(sensorBoard.readChannel(CHA3));
}
else if (comando=="423B")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.readVoltage(CHA3));
}
else if (comando=="423C")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.readCurrent(CHA3));
}
else if (comando=="423D")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.isConnected(CHA3));
}
//CANAL4
else if (comando=="424A")
{
//int value = sensorBoard.readChannel(orden.toInt());
//int value = sensorBoard.readChannel(CHANNEL);
Serial.println(sensorBoard.readChannel(CHA4));
}
else if (comando=="424B")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.readVoltage(CHA4));
}
else if (comando=="424C")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.readCurrent(CHA4));
}
else if (comando=="424D")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.isConnected(CHA4));
}
else if (comando=="420A")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.readChannel(orden.toInt()));
}
else if (comando=="420B")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.readVoltage(orden.toInt()));
}
else if (comando=="420C")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.readCurrent(orden.toInt()));
}
else if (comando=="420D")
{
//float current = sensorBoard.readCurrent(CHANNEL);
Serial.println(sensorBoard.isConnected(orden.toInt()));
}
else{
Serial.println("COMANDO DESCONOCIDO");
}
readString="";
Serial.flush();
}
}