#15 Mantente en movimiento

Introducción

Anteriormente vimos en el Ejemplo 9  como manejar una LCD 16×2 por medio de la librería LiquidCrystal.h, ahora trabajaremos como un dispositivo llamado Serial LCD Backpack V2. Este dispositivo nos ayudara a utilizar nuestra LCD enviando los caracteres por el puerto serial, es decir que en ves de ocupar 6 pines del PICARO como se hizo en el ejemplo 9 para transmitir los datos, se ocuparan solo el pin  TX. Este dispositivo trabaja con aquellos display LCD’s que utilizan el driver HD44780 de 16×2 o 20×2 a través de la comunicación serial TTL, también tiene la opción de controlar la luz de fondo (Backlight) a través de comandos y el contraste de los caracteres mediante un potenciómetro incluido en la placa.

 

Cuando el relé 1 se activa, da continuidad la ampolleta que se alimenta con 220v, cuando se activa el relé 3 suena la sirena indicando que se infringió el sistema de seguridad.

Pasos a seguir:

#1   Armar el circuito según la imagen

#2   Abrir el IDE de Arduino y conectar la tarjeta PICARO al computador

#3   Seleccionar el tipo de tarjeta como Arduino Uno

#4   Elegir el puerto serial en que se encuentra conectada la tarjeta PICARO

#5   Copiar el código de ejemplo al IDE, compilarlo y subirlo

Listado de componentes :

Código:

En este proyecto lo que hacemos es el uso de funciones que nos sirven para utilizar nuestra LCD de una forma óptima y eficiente. De esta manera, podemos enviar frases por un solo pin y desplazarlas en el sentido que queramos. Puedes descargar ejemplos en este link. En este caso usamos las funciones moverI() , moverD(), clearLCD, selectlineOne(), selectlineTwo(), goTo() y backlightON().
void setup() {

 Serial.begin(9600); //Se inicia el puerto serial

}



void loop() {

  backlightOn(); // Se enciende la luz

  selectLineOne(); // Se llama la función para seleccionar la linea 1

  Serial.print(" Bienvenidos a"); //Escribimos

  selectLineTwo(); // Se llama la función para seleccionar la linea 2

  Serial.print("Picaro.olimex.cl");//Escribimos

  delay(5000);

  clearLCD();// Se llama la función para seleccionar la limpiar la pantalla

 Serial.print(" Espero que te gusten nuestros tutoriales ");//Escribimos

  for(int y = 0; 24 > y; y++){ // Se realiza un bucle para mover 24 pasos a la izquierda y asi ir moviendo el texto

    moverI();

    delay(300);

  }

    clearLCD();

    goTo(2); // Se llama la función para ir a un espacio especifico

    Serial.print("y recuerda si"); //Escribimos

     selectLineTwo(); // Se llama la función para seleccionar la linea 1

  Serial.print(" tienes dudas ");//Escribimos

   delay(2000);

     clearLCD();

Serial.print(" Contactanos al correo cursos@olimex.cl");//Escribimos

  for(int y = 0; 23 > y; y++){ //Se realiza un bucle para mover 23 pasos a la izquierda

    moverI();

    delay(400);

      }

  clearLCD();

  selectLineOne(); // Se llama la función para seleccionar la linea 1

  Serial.print("Si deseas algun "); //Escribimos

  selectLineTwo(); // Se llama la función para seleccionar la linea 2

  Serial.print(" producto "); //Escribimos

  delay(3000);

  clearLCD();

  selectLineOne();

  Serial.print("Encuentranos en"); //Escribimos

 selectLineTwo();

 Serial.print(" www.olimex.cl "); //Escribimos

   delay(3000);

  clearLCD();

  selectLineOne();

  Serial.print(" Te esperamos ");  //Escribimos

  selectLineTwo();

  Serial.print("MCI Electronics"); //Escribimos

  delay(3000);

  clearLCD();

}



void selectLineOne(){      //pone el cursor en la linea 1

   Serial.write(0xFE);       //comando para iniciar

   Serial.write(128);       //indica la posición

   delay(10);

}

void selectLineTwo(){     //pone el cursor en la linea 2

   Serial.write(0xFE);       //comando para iniciar

   Serial.write(192);        //indica la posición

   delay(10);

}

void goTo(int position) {     //posicion = linea 1: 0-15, linea 2: 16-31, 31+ vuelve a 0 por defecto

if (position<16){ Serial.write(0xFE);              //comando para iniciar

              Serial.write(position + 128);            //posición

}else if (position<32){Serial.write(0xFE);     //comando para iniciar

              Serial.write((position+48+128));    //posición

} else { goTo(0); }

   delay(10);

}

void clearLCD(){

   Serial.write(0xFE);       //comando para iniciar

   Serial.write(0x01);      //comando para limpiar

   delay(5);

}

void backlightOn(){      //enciende la luz del fondo

    Serial.write(0x7C);    //comando para iniciar iluminación

    Serial.write(30);        //nivel de luz

   delay(5);

}

void moverD(){

  Serial.write(0xFE);     //comando para iniciar

  Serial.write(0x1C);    //Comando para mover a derecha

  delay(5);

}

void moverI(){

  Serial.write(0xFE);    //comando para iniciar

  Serial.write(0x18);   //Comando para mover a izquierda

 delay(5);

}

 

Demostración

En este pequeño vídeo podemos observar como funciona nuestra LCD con la Serial LCD Backpack V2, como pueden observar solo es necesario conectar la tarjeta a los pines de alimentación de nuestro PICARO y el pin Tx que es el de transmisión, al Rx de la Serial LCD Backpack.

¿En busca del Kit PICARO?

Con el PICARO Starter Kit podrás realizar estos ejemplos ¡y mucho más!
Producto Chileno. Encuéntralo en MCI Electronics.

Contacto

Direccion Luis Thayer Ojeda 0115 Of. 1105, Providencia, Santiago, Chile.

Phone: +56 2 2333 9579 / +56 2 2231 9268

Horario Lunes a Viernes de 8:00 a 18:00

Nosotros

En MCI Electronics, estamos aquí para mantener la industria en movimiento. Nuestro objetivo es difundir y hacer accesible el uso de la electrónica a todo aquel que tenga el interés. Para ello nos esforzamos para traer los mejores componentes y módulos de manera que puedas aprender desarrollando tus propios proyectos.

Somos tu aliado en electrónica.

Suscríbete a nuestro boletín