El “Hola Mundo” de la comunicación serial con Arduino

En días pasados adquirí un Arduino UNO. Poco a poco, dentro de mi escaso tiempo libre me he leido un par de tutoriales y he visto alguno que otro video interesante acerca de proyectos que se realizan con la placa.

Hoy presento un pequeño tutorial de como comunicar la placa con el PC usando un puerto serial.

Lo que vas a leer a continuación fue testeado con lo siguiente:

  • Windows 8 x64
  • Arduino UNO

También voy a asumir que ya sabes cómo colocar el programa en la placa Arduino, por lo que no explicaré dicho proceso.

Conceptos Básicos

Un puerto serie o puerto serial es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadoras y periféricos, donde la información es transmitida bit a bit enviando un solo bit a la vez (mas info del puerto serie, puede ser encontrada acá).

Cuando instalamos los drivers de Arduino en la PC, se instala un conversor de USB a serial, este será usado para que nuestro ordenador se pueda comunicar con Arduino. Si instalamos correctamente los drivers y queremos ver que número de puerto serie le fue asignado, basta con conectar el Arduino y ver la ventana del Administrador de Dispositivos. No olvides antesa de intentar colocar el programa en el Arduino, que el IDE apunte al puerto que se nos indica en el administrador de dispositivos.

Mi Arduino UNO en COM3

Lo que hará nuestro pequeño proyecto

Como dice el título del post, se trata de un “Hola Mundo” de comunicación serial con Arduino. No haremos otra cosa que encender o apagar un led con los teclas 1,2 y 0 del teclado numérico. (Ver video)

Materiales

Esta es la lista de materiales que vamos a usar. Algunos son más que obvios:

  • 1 PC en la cual ya hayamos usado nuestro Arduino (sólo para asegurarse que todo va bien)
  • 1 Arduino UNO
  • 1 Protoboard
  • 1 Cable USB de impresora
  • 2 Leds
  • 2 resistencias de 180 Ohms

Circuito

Conectamos todo en la protoboard, de acuerdo al siguiente esquema: (No soy nada bueno en dibujar circuitos, pero creo que se entiende lo que se quiere lograr)

El esquema del proyecto

La tierra, va en el PIN GND de Arduino.

El Programa

Como ya sabemos, los programas que hacemos para ejecutarse en Arduino constan de 2 partes: el setup y el loop. En nuestro caso vamos a definir el modo de los pines e iniciar el puerto serie en el setup. En el loop estaremos esperando recibir un dato por el puerto serie, escogeremos que dato es para saber que led encender y cual apagar.

Parte 1: El setup() y las variables donde se definen los pines a utilizar

int Led1=12;
int Led2=13;
void setup(){
   // Iniciamos el puerto serie a 9600 baudios
   Serial.begin(9600);

   // Indicamos que los pines donde están los leds
   // van a ser de salida
   pinMode(Led1,OUTPUT);
   pinMode(Led2,OUTPUT);

   // y los apagamos, por si otro proceso los dejó encendidos
   digitalWrite(Led1,LOW);
   digitalWrite(Led2,LOW);
}

Parte 2: Dentro de loop() recibimos el byte desde el puerto serie y lo mostramos en la pantalla del monitor serial

int incomingByte;
 // envia datos solamente cuando recibe datos
 if (Serial.available() > 0) { // if
 // lee el byte entrante:
 incomingByte = Serial.read();
 // Mostramos en la consola lo recibido:
 Serial.print("Numero enviado: ");
 Serial.println(incomingByte, DEC);

Parte 3: Igualmente, dentro de loop elegimos que led encender, o si apagamos los 2 o si no hacemos nada (si no eres capaz de entender esta parte del código –switch, case, break– te recomiendo que visites un tutorial de programación básica)

// Vamos a evaluar el numero recibido
 switch(incomingByte){
    case 48:{ // 0 del teclado numérico. apagamos los 2
    digitalWrite(Led1,LOW);
    digitalWrite(Led2,LOW);
    // Mandar a la consola la acción
    // Realizada
    Serial.write("Apagados los 2 leds");
    break;
    }
 case 49:{ // 1 del teclado numérico. Encendemos Pin12
    digitalWrite(Led1,HIGH);
    digitalWrite(Led2,LOW);
    // Mandar a la consola la acción
    // Realizada
    Serial.write("Encendido Pin12");
    break;
    }
 case 50:{ // 2 del teclado numérico. Encendemos Pin13
    digitalWrite(Led1,LOW);
    digitalWrite(Led2,HIGH);
    // Mandar a la consola la acción
    // Realizada
    Serial.write("Encendido Pin13");
    break;
    }
} // switch
} // if

Lo siguiente sería transferir el código a nuestro Arduino, después para probarlo vamos al menú Herrmaientas -> Monitor Serial. En la ventana que aparece escribimos un número del 0 al 2 y al hacer clic “Enviar” debe de realizar la acción correspondiente.

Cualquier duda, pónganla en los comentarios

Anuncios

Un comentario en “El “Hola Mundo” de la comunicación serial con Arduino

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s