Documente Academic
Documente Profesional
Documente Cultură
Letrero en Arduino
Prof. Victor Manuel Fuentes Olivares
victor_fuenteso@my.unitec.edu.mx
1. ___________________________________
Contenido
• Introducción
• Objetivos
• Actividades
• Evaluaciones
• Conclusiones
Introducción
Todos los días, desde que nos levantamos hasta acostarnos, interactuamos con dispositivos
electrónicos: despertadores, cafeteras, secadoras, hornos microondas, licuadoras, ascensores,
alarmas de vehículos, puertas electrónicas, computadores, móviles, etc. Todos estos dispositivos,
que hacen nuestra vida más cómoda y sencilla, poseen dentro de su electrónica a varios
microcontroladores. Hoy hablaremos de estos circuitos electrónicos y cómo programarlos.
En la última feria de Feria de Electrónica de Consumo (CES) se presentaron, como todos los años,
las tendencias tecnológicas del futuro que se nos avecinan: realidad virtual, robótica, drones,
vehículos sin conductor, impresión 3D, el hogar inteligente, sistemas de seguridad por control
remoto, etc, dispositivos que por ahora parecen sacados de alguna película de ciencia ficción.
¿Qué es un microcontrolador?
Cuando compras un computador, ya sea de escritorio o una laptop, dentro de las características más
importantes de comparación básicas siempre consideraras.
Ahora imagina tener todo esto en un pequeño chip, sin duda no con las mismas prestaciones, pero
las suficientes para cumplir una tarea en específico, cómo calentar tu café a la temperatura que
prefieres. ¿Lo imaginaste? Esto es lo que define a un Microcontrolador.
Al igual que un computador, posee dispositivos de entrada (mouse, teclado) y salida (monitor,
parlantes) un microcontrolador se basa en este principio contando como entradas a sensores
(temperatura, luz, sonido, etc.) y como salidas a los actuadores (leds, motores, relés, etc.).
Volviendo al ejemplo de calentar el café, tendríamos como entrada un sensor de temperatura y como
actuador un interruptor interno que desconectara el electrodoméstico cuando ha alcanzado la
temperatura deseada.
Como se mencionó para realizar estas tareas no se necesita mucho procesamiento computacional.
En la tabla anterior los dos primeros elementos de la lista son microprocesadores, y los dos
siguientes son microcontroladores. Las diferencias de los millones de instrucciones por segundo que
realizan (MIPS) son más que evidentes. Los microprocesadores tienen una potencia computacional
de más de 200 veces más que los microcontroladores.
Programación de un microcontrolador
1.- Lenguajes de bajo nivel: Seguramente has escuchado del lenguaje ensamblador, uno de los
primeros lenguajes que utiliza mnemónicos (palabras entendibles por un programador humano).
Como mencionamos anteriormente, poseemos recursos de procesamiento y memoria limitados, este
tipo de programación cercana al lenguaje máquina es ideal para aprovechar estos recursos al
máximo.
2.- Lenguajes de alto nivel: Uno de los lenguajes de alto nivel más populares para programar
microcontroladores es el lenguaje C o lenguajes basados en este. Poseen sintaxis mucho más
amigables con el lenguaje usado por los humanos lo que hace que su programación sea más
sencilla, En lenguajes de programación de alto nivel, varias instrucciones en ensamblador se
sustituyen por una única sentencia. El programador ya no tiene que conocer el conjunto de
instrucciones o características del hardware del microcontrolador utilizado.
Hoy en día existen 2 tendencias principales en el uso de microcontroladores, por un lado tenemos a
los que usan la gama de Microchip conocidos como PIC, y por otro lado tenemos a los que usan
microcontroladores AVR, populares por ser el núcleo de procesamiento de las famosísimas tarjetas
de prototipado Arduino.
Objetivos
Lista de Materiales
Simulador PROTEUS
potenciómetro (resistencia variable).
Datasheet Display
Librería LiquidCrystal de Arduino
El IDE de Arduino ya viene con una librería que nos permite manejar diferentes tamaños de LCD’s,
La documentación completa la pueden encontrar en la página oficial de Arduino: LiquidCrystal
Explicaremos las funciones principales, las cuales se usarán en este tutorial.
begin(cols, rows)
Inicializa el LCD, es necesario especificar el número de columnas (cols) y filas (rows) del LCD.
clear()
Borra la pantalla LCD y posiciona el cursor en la esquina superior izquierda (posición (0,0)).
setCursor(col, row)
Posiciona el cursor del LCD en la posición indicada por col y row (x,y); es decir, establecer la
ubicación en la que se mostrará posteriormente texto escrito para la pantalla LCD.
write()
Escribir un carácter en la pantalla LCD, en la ubicación actual del cursor.
print()
Escribe un texto o mensaje en el LCD, su uso es similar a un Serial.print
scrollDisplayLeft()
Se desplaza el contenido de la pantalla (texto y el cursor) un espacio hacia la
izquierda.
scrollDisplayRight()
Se desplaza el contenido de la pantalla (texto y el cursor) un espacio a la derecha.
El LCD
El LCD tiene una memoria interna en donde almacena todos sus caracteres alfanuméricos, los cuales
podemos extender en ocho caracteres personalizados adicionales.
Los caracteres soportados por la mayoría de modelos de LCD son los siguientes:
Para la comunicación del LCD y un controlador utiliza un bus de 8 datos, pero se puede configurar
para trabajar con un buz de 4 datos. También usa pines de control RS (chip select) RW
(lectura/escritura) y E (enable).
Para controlar el contraste usa una entrada analógica VEE el cual por lo general se usa un
potenciómetro para poder variar el contraste, y los LCD q traen Backlight tiene dos pines al final Led+
(A) y Led- (K) los cuáles se pueden alimentar directamente a 5V o a través de una resistencia si se
tratase de un LED, variando su resistencia se pude variar la intensidad de luz.
El código de caracteres especiales de la práctica depende de los pixeles que se iluminan en cada
carácter del LCD
Si observan muy de cerca los caracteres en el display que utilizamos, estos están formados por
una cuadricula de 5 x 7
byte cara[8] = {
B00000,
0 0 0 0 0 0 0 0 0 0
B10001,
B00000, 1 0 0 0 1 1 0 0 0 1
B00000, 0 0 0 0 0 0 0 0 0 0
B10001, 0 0 0 0 0 0 0 0 0 0
B01110, 1 0 0 0 1 1 0 0 0 1
B00000, 0 1 1 1 0 0 1 1 1 0
}; 0 0 0 0 0 0 0 0 0 0
8
7
5 6
2 3 4
1
1 2 3 4 5
Conexiones entre Arduino y display LCD1602
Actividades:
Nota: Cuando el microcontrolador ejecuta una instrucción que definimos en el sketch, internamente
hace muchas operaciones y cada una de esas operaciones se ejecuta en un ciclo de reloj. Para el
ATmega 328p que tiene una frecuencia de 16 MHz, es decir, cada ciclo tarda 0,0000000625
segundos = 0,0625 microsegundos = 62,5 nanosegundos
Frecuencia=ciclos/tiempo
Tiempo=ciclos/frec
13.- De acuerdo con el siguiente esquema, comenta cual fue el proceso ejecutado por el bus de
datos para crear el letrero en Arduino.
Preguntas de evaluación:
5.- De acuerdo con la introducción, ¿Cuáles son las dos tendencias de programación en
microcontroladores? Explica brevemente cada una:
Conclusiones:
Fuentes de información o consulta: