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




Responder com Citação
