jueves, 14 de abril de 2016

Comunicación Serial 2

En esta entrada enviaremos datos desde el ordenador al arduino, en concreto enviaremos un "0" con el cual al recibirlo el arduino encenderá un led y cuando se le envié cualquier otra cosa el led se apagara. Ahora os dejo un ejemplo muy sencillo de como haríamos lo descrito anteriormente:



Comencemos con el código:

Primero comenzaremos con la declaración de las variables:

     int Led = 13;
     char Estado; //En esta variable guardaremos el carácter recibido por el puerto serie

Una vez declaradas las variables iniciamos el puerto serie y configuramos el pin 13 como una salida dentro del void setup():

   void setup()
   {
     Serial.begin(9600);
     pinMode(Led,OUTPUT);
     Serial.println("Inicio...");
     delay(500);
   }

Bien ahora escribiremos el código que nos permitirá leer el puerto serie desde el arduino dentro del void loop(), el valor enviado desde el ordenador lo guardaremos dentro de la variable Estado para luego compararla dentro de un if(), esto también se podría hacer con la función switch case de la cual hablaré en otra entrada:

  void loop()
  {
    if(Serial.available() > 0)//Cuando reciba datos por el puerto serial
    {
      Estado = Serial.read();//Cargara el dato recibido dentro de la variable  Estado
 
      if(Estado == '0')
      {
        digitalWrite(Led,HIGH);
        Serial.println("Led on");
        delay(1000);
      }
      else
      {
        digitalWrite(Led,LOW);
        Serial.println("Led off");
        delay(500);
      }
    }
  }

Aquí os dejo el código completo.

int Led = 13;
char Estado;
void setup()
{
  Serial.begin(9600);
  pinMode(Led,OUTPUT);
  Serial.println("Inicio...");
  delay(500);
}

void loop()
{
  if(Serial.available() > 0)
  {
    Estado = Serial.read();
 
    if(Estado == '0')
    {
      digitalWrite(Led,HIGH);
      Serial.println("Led on");
      delay(1000);
    }
    else
    {
      digitalWrite(Led,LOW);
      Serial.println("Led off");
      delay(500);
    }
  }
}

No hay comentarios:

Publicar un comentario