Recibir datos por Arduino UNO r3

Hola:

Conecto Arduino UNO r3 por USB. Tengo un código hecho muy simple que de entrada funciona algo.

byte Datos;

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

void loop() {
              if (Serial.available()) 
              {
                  Datos = Serial.read();
                  if (Datos == 'A') 
                  {
                    Serial.println("Vida: Ha llegado variable A: ");
                  } 
                  
                  if (Datos == 'B')
                  {
                    Serial.println("Balas: Ha llegado variable B: ");
                  }
                  
                  if (Datos == 'C')
                  {
                    Serial.println("Mana: Ha llegado variable C: ");
                  }
                }
                
                delay(100);
             }

Tengo intención de conectar un display LCD 16x2, por ahora me conformo con ver los datos en el "Monitor Serial" de ARduino IDE 1.0.5.

Hice una pequeña aplicación en C# para enviar datos a Arduino. Son tres variables. Para distinguirla de cada una, primero envío un byte 'A', detrás de él se muestra unos valores numéricos decimales, acto seguido envía 'B' con otros datos numéricos que debe ejecutarse en B del código de arriba y lo mismo para 'C'.

Si envío esta secuantia desde C#:

A100B10C100

En el Monitor serial muestra esto:

Vida: Ha llegado variable A:
Balas: Ha llegado variable B:
Mana: Ha llegado variable C:

Debe aparecer:

Vida: Ha llegado variable A:
Vida: 100
Balas: Ha llegado variable B:
Balas: 10
Mana: Ha llegado variable C:
Mana: 100

¿Cómo logro capturar los datos de números en cada if correspondiente?

Espero haber explicado bien.

Un saludo.

buenas! No se si te he entendido bien.. vida siempre es 100, balas 10 y mana 100? o van cambiando?

si van cambiando, tendras que declararlas como variables, por ejemplo

int Vida=100;

y despues..

Serial.print ("Vida: ");
Serial.println (Vida);

Buenas:

La variable que tiene como valor 100 e Vida, 10 ed Balas y 100 de Maná, no es fija, cambia constantemente.

Si en C# tiene 100 de Vida, Arduino debe detectarla y imprimilar en el Monitor Serial o en el LCD que haré más adelante.

Luego C# cambia de variable Vida, por ejemplo a 97, Arduino debe mostrar 97 y en tiempo real. Es lo que me cuesta conseguir.

¿Se entiende lo que quiero relamente? :slight_smile:

Ver.

A lo mejor hay que usar un arry, no se.

Saludos.