Olá!

Bom, meu conhecimento de programação é muito limitado como vocês já sabem.

Vou tentar explicar qual o problema que vejo em enviar um comando de leitura continua para os "stamps".

Imagino que se todos os "stamps" estiverem enviando dados ao mesmo tempo para a porta serial 3.
Eles vão se acumulando e no momento de ler a porta serial, não vou saber qual o "stamp" que enviou a informação disponível naquele momento.
Se eu não tivesse 2 circuitos de PH talvez fosse mais fácil.

Algo deste tipo:

if(Serial3.available() > 3)
{
holding = Serial3.available();
for(i=1; i <= holding; i++)
{
sensorstring[i]= Serial3.read();
}

if(holding ==5)
{
valor = (((sensorstring[1]-48)*100 + (sensorstring[3]-48)*10 + (sensorstring[4]-48))/100);
}
if(holding ==6)
{
valor = (((sensorstring[1]-48)*1000 + (sensorstring[2]-48)*100 +(sensorstring[4]-48)*10 + (sensorstring[5]-48))/10);
}
if(holding == 7)
{
valor = (((sensorstring[1]-48)*10000 + (sensorstring[2]-48)*1000 +(sensorstring[3]-48)*100 + (sensorstring[5]-48)*10 + (sensorstring[6]-48))/100);
}

if(valor <= 15)
{
PH = valor;
}
if(valor > 15 )
{
ORP = valor;
}
}

No caso da leitura do circuito de EC o tratamento teria que ser outro. Já que a resposta do "stamp" contém 3 tipos de informação.

Aqui um esquema da ligação dos circuitos.



Abraço.
Fernando Garcia