Usar dos o más entradas analógicas.

Hola:

Quiero usar dos entradas analógicas. Lo que no se si habrá problemas entre ellas. He usado uno que datos del 0 al 1023, luego el 0 a 5V y el de 0 a 100 % que muestra por el Serial Monitor.

Su código base para una entrada analógica es este.

int valorPot=0;
float voltajePot=0;
// float Porcentaje=0;

void setup(){ Serial.begin(115200); }

void loop(){
     valorPot=analogRead(2);
     voltajePot=valorPot*(5.0/1023.0);
     Porcentaje=valorPot*(100.0/1023.0);
     Serial.println(voltajePot);
     Serial.println(Porcentaje);
     Serial.println(valorPot);
     delay(100); // 4 segundos.
}

Para dos entradas analógicas hice este código:

int valorPot1=0;
float voltajePot1=0;
float Porcentaje1=0;
int valorPot2=0;
float voltajePot2=0;
float Porcentaje2=0;

void setup(){ Serial.begin(115200); }

void loop(){
     valorPot1=analogRead(1);
     valorPot2=analogRead(2);
     
     voltajePot1=valorPot1*(5.0/1023.0);
     Porcentaje1=valorPot1*(100.0/1023.0);

     Serial.print("P1 ");
     Serial.print(voltajePot1);
     Serial.print(" V. ");
     Serial.print(Porcentaje1);
     Serial.print(" % ");
     Serial.println(valorPot1);
     delay(100); // 4 segundos.

     
     voltajePot2=valorPot2*(5.0/1023.0);
     Porcentaje2=valorPot2*(100.0/1023.0);
     Serial.print("P2 ");
     Serial.print(voltajePot2);
     Serial.print(" V. ");
     Serial.print(Porcentaje2);
     Serial.print(" % ");
     Serial.println(valorPot2);
     delay(100); // 4 segundos.
}

En el cual me funciona de maravilla para el monitor serial.
Los datos que tengo que enviar para Visual Studio .net tiene que ser algo así de limpio.

int valorPot1=0;
float voltajePot1=0;
int valorPot2=0;
float voltajePot2=0;

void setup(){ Serial.begin(115200); }

void loop(){
     valorPot=analogRead(1);
     valorPot=analogRead(2);
     
     Serial.print(valorPot1);
    // delay(100); // 4 segundos.

     Serial.print(valorPot2);
     delay(100); // 4 segundos.
}

Ya que el propio Visual Studio .net sea C#, VB .net o C++ lee del 0 al 1023 de cada potenciómetro. Como llega datos así de simple. No se si hay alguna manera para que lo pueda identificar.

¿Qué opinan?

Saludos.

puedes añadir una letra diferente al dato segun el potenciometro y luego en el programa de pc separas la lectura de la letra.otra opcion es que sea el programa pc el que consulte al arduino por los dos potenciometros ,por ejemplo ,mandas un 1 por serial para pot.1 y 2 para pot.2 ,luego recojes con .parseInt() y evaluas con un switch o if..

Metaconta que pasó con buscar las cosas antes de preguntarlas?
Te lo digo de este modo porque creo que es la 3ra o 4ta vez que se ha preguntado esto en el foro en espaÑol en los ultimso 6 meses.

Por ejemplo un AXXXX y un BXXXX y luego esperas A y lees su número, esperas B y lees su número y tienes ambos números?

Que pasa si haces esto?

void loop(){
     valorPot=analogRead(1);

     valorPot=analogRead(2);
     Serial.print("A");
     Serial.print(valorPot1);
    // delay(100); // 4 segundos.
     Serial.print("B");
       Serial.print(valorPot2);
     delay(100); // 4 segundos.
}

o mejor

void loop(){
     char buffer[30];

     valorPot=analogRead(1);
     valorPot=analogRead(2);
     sprintf(buffer, "A%d B%d", valorPot1, valorPot2);
     Serial.println(buffer);
     delay(100); // 4 segundos.
}

Dios, me olvidé completamente de esa forma.
Ya con VS .net lo separo con delimitador.