Sunteți pe pagina 1din 18

Práctica 2 de Arduino:

Letrero en Arduino
Prof. Victor Manuel Fuentes Olivares

victor_fuenteso@my.unitec.edu.mx

Nombre del estudiante:

1. ___________________________________

Contenido

• Introducción

• Objetivos

• Actividades

• Evaluaciones

• Conclusiones
Introducción

¿Qué son los microcontroladores y por qué aprender a programarlos?

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.

¿Por qué aprender a programar microcontroladores?

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.

Todas estas tecnologías involucran el uso de microcontroladores, dispositivos que poseen la


capacidad de interactuar con sensores y actuadores del entorno físico que los rodea, es por ello que
es de importancia el aprender las bases de su funcionamiento y así poder comprender cómo
funcionan e interactúan con nosotros los usuarios.

¿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.

1. El procesador o CPU: El centro de procesamiento del computador, ya sea de la Gama Intel


o AMD, siempre comparando el número de núcleos y la velocidad en GHz.
2. Memoria RAM: Con navegadores como Chrome, siempre necesitarás esos Gbytes altos.
3. Disco Duro: Para almacenar tus series y películas favoritas en 1080p, sin duda se
necesitaras 1 terabyte.

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

Existen dos tendencias en la programación de microcontroladores:

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.

En la siguiente imagen observamos un mismo código tanto en lenguaje C como en lenguaje


ensamblador.

Arduino en el desarrollo de la Tecnología

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

• Utilizar dispositivos los puertos digitales de entrada y salida de Arduino como


interfaz de datos para controlar la información que aparece en un display.

• Analizar el bus de datos de Arduino como instrumento de análisis para el envió de


información.

• Comprender la dificultad de obtener resultados esperados si se desconocen las


características técnicas de los dispositivos.

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.

LiquidCrystal(rs, en, d4, d5, d6, d7)


Función constructor, crea una variable de la clase LiquidCrystal, con los pines indicados.

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.

createChar (num, datos)


Crea un carácter personalizado para su uso en la pantalla LCD. Se admiten hasta ocho caracteres
de 5x8 píxeles (numeradas del 0 al 7). Dónde: num es el número de carácter y datos es una matriz
que contienen los pixeles del carácter. Se verá un ejemplo de esto más adelante.

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

Por lo tanto esto condiciona el número de columnas a 5 y el número de filas a 7 (5 x 7)

CÓDIGO PARA FORMAR UNA CARA.

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:

1.- Abrir Proteus ISIS


2.- Ubicar el menú DEVICES (P)

3.- Agregar Arduino

4.- Agregar un display LM016L


5.- Agregar un potenciómetro (Resistencia Variable): POT DEVICES

6.- Armar el circuito


7.- Abrir programa Arduino y crear un letrero con Arduino
COMPILAR Y ACTIVAR SALIDA DETALLADA DE COMPILACIÓN

8.- Guardar el archivo como: practica 2 letrero arduino


9.- Regresar al circuito del letrero en Arduino y abrir las propiedades

10.- Ubicar la opción Program File y buscar en la carpeta temporales el archivo

practica_2_letrero_arduno.ino.hex, abrimos el archivo y posterior damos OK.


11.- Ejecutamos play en Proteus, debe aparecer la siguiente pantalla de simulación.
12- Llenar la siguiente tabla para determinar el tiempo de ejecución del programa.

No. operaciones No. Ciclos Frecuencia Tiempo de Ejecución

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:

1.- ¿Qué quiere decir Arquitectura de 8 bit, 16 bit o 32 bit?

2.- ¿Qué consecuencia práctica tiene la cantidad de bits en una arquitectura?

3.- ¿Cuántos tipos de interfaces de comunicación tiene Arduino?

4.- ¿Cuál es la diferencia entre un microcontrolador y un AVR?

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:

S-ar putea să vă placă și