I/O analogica digital

Como faço para monitorar uma entrada analógica em percentual ou em °c no mobile usando o arduino, estou conseguindo monitorar com variação entre 0 e 1023, não consigo enviar um valor para tratar no arduino?

Carlos,

Na versão atual não é possível fazer conversões nos valores lidos. Porém tive uma ideia de como podemos contornar tal problema.
Vou fazer alguns testes aqui e logo te retorno com uma solução.

Carlos,

Na biblioteca do Arduino disponibilizado pela Elipse (ElipseMobile.zip), edite o arquivo ElipseMobile.cpp que encontra-se na pasta:
…\Documents\Arduino\libraries\ElipseMobile

E substitua o método void AnalogReadCommand() por:

void AnalogReadCommand()
{
  //Receives 1 characters and sends 2 characters
  while(Serial.available() <= 0)
  {
  }
  char port  = Serial.read(); //-1 if no data is available
  uint16_t readResult;
  if (port == 5) // Porta Analógica A5
  {
     readResult =  (5.0 * analogRead(port) * 100.0) / 1024; // Conversão para ºC
  }
  else
  {
     readResult = analogRead(port);
  }
  SendAnalogResponse(1, readResult);
}

Caso você deseje fazer uma escrita analógica com conversão é possível fazer a mesma modificação no método: void AnalogWriteCommand()

Qualquer dúvida estou a disposição.

Ok! Vou alterar o código, assim que eu testar te retorno, obrigado!

fiz mais alguns testes , alterei o código como me orientou, mas continuo com o mesmo problema consigo realizar a leitura da porta analógica apenas de 0 a 1023 esse valor me mostra na tela do celular. preciso algo do tipo ov corresponde a 0% e 5v corresponde a 100% , você possui o código completo que realizou testes, me envie o código zip.

Boa tarde Carlos,

O código que eu colei no post anterior é exatamente o mesmo que estou utilizando na minha biblioteca.
Só lembrando que a porta analógica escolhida no Elipse Mobile (Web) deve ser a mesma da linha abaixo:

...
  if (port == 5) // Porta Analógica A5
...

Alem disso, para chegar a um valor percentual, onde 0 é 0% e 1023 é 100%, basta apenas fazer as modificações conforme o código abaixo:

...
 if (port == 5) // Porta Analógica A5
  {
     readResult =  (analogRead(port) * 100.0) / 1024; // Conversão para %
  }
  else
  {
     readResult = analogRead(port);
  }
...

E para colocar o sufixo “%” é só preencher o campo Suffix no controle escolhido (Display ou Setpoint).

Quaisquer dúvidas, estou a disposição no email:
enrique@elipse.com.br

Att,
Enrique Melgarejo