0% encontró este documento útil (0 votos)
62 vistas15 páginas

Practica 3

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 15

Practica 3

MATERIA: Microcontroladores FECHA DE LA PRÁCTICA: (día, mes y año)

UNIDAD: (número y nombre) 5 y 6 No. DE PRÁCTICA: 3

Nombre de la práctica:

Configuración de elementos como Lcd, teclado matricial, lectura de puertos


analógicos, escritura en puertos de pwm, comunicación serial.
• Objetivo:

• Utilizar los puertos de entrada analógicos para la lectura de sensores, así


como los puertos de salida de pww para el control de velocidad, iluminación
led y posicionamiento de motores de radiocontrol, comunicación serial y
manejo de componentes como el lcd y teclado matricial, buscando que el
alumno adquiera mayor número de herramientas que le sirvan de ayuda al
proyecto final de la materia.

Competencias a desarrollar:
5. Capacidad de comunicación oral y escrita.

6. Habilidades en el uso de las tecnologías de la información y de la


comunicación.

13. Capacidad para identificar, plantear y resolver problemas.

14. Capacidad de trabajo en equipo.

Fundamento teórico o Introducción:


¿Qué es arduino?
Arduino es una herramienta para hacer que los ordenadores puedan sentir y controlar el
mundo físico a través de tu ordenador personal. Es una plataforma de desarrollo de
computación física (physical computing) de código abierto, basada en una placa con un
sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para
la placa. Puedes usar Arduino para crear objetos interactivos, leyendo datos de una gran
variedad de interruptores y sensores y controlar multitud de tipos de luces, motores y otros
actuadores físicos. Los proyectos con Arduino pueden ser autónomos o comunicarse con
un programa (software) que se ejecute en tu ordenador.
Bien alimentemos al arduino mediante la conexión USB o mediante una fuente externa
(recomendada de 7-12V), vamos a tener unas salidas de tensión continúa debido a unos
reguladores de tensión y condensadores de estabilización. Estos pines son:

• VIN: se trata de la fuente tensión de entrada que contendrá la tensión a la que estamos
alimentando al Arduino mediante la fuente externa.
• 5V: fuente de tensión regulada de 5V, esta tensión puede venir ya sea de pin VIN a
través de un regulador interno, o se suministra a través de USB o de otra fuente de 5V
regulada.
• 3.3V: fuente de 3.3 voltios generados por el regulador interno con un consumo máximo
de corriente de 50mA.
• GND: pines de tierra.
Cada uno de los 14 pines digitales se puede utilizar como una entrada o salida. Cada pin
puede proporcionar o recibir un máximo de 40 mA y tiene una resistencia de pull-up
(desconectado por defecto) de 20 a 50 kohm. Además, algunos pines tienen funciones
especializadas como:

• Pin 0 (RX) y 1 (TX). Se utiliza para recibir (RX) y la transmisión (TX) de datos serie
TTL.
• Pin 2 y 3. Interrupciones externas. Se trata de pines encargados de interrumpir el
programa secuencial establecido por el usuario.
• Pin 3, 5, 6, 9, 10 y 11. PWM (modulación por ancho de pulso). Constituyen 8 bits de
salida PWM con la función analogWrite ().
• Pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estos pines son de apoyo a la
comunicación SPI.
• Pin 13. LED. Hay un LED conectado al pin digital 13. Cuando el pin es de alto valor, el
LED está encendido, cuando el valor está bajo, es apagado
El Arduino posee 6 entradas analógicas, etiquetadas desde la A0 a A5, cada una de las
cuales ofrecen 10 bits de resolución (es decir, 1024 estados). Por defecto, tenemos una
tensión de 5V, pero podemos cambiar este rango utilizando el pin de AREF y utilizando la
función analogReference (), donde le introducimos una señal externa de continua que la
utilizara como referencia.

¿Qué es un teclado matricial?


Un teclado matricial, independientemente del número de teclas, se divide en filas y en
columnas. Cuando una tecla específica se presiona, se une la columna con la fila respectiva
en una coordenada única. El teclado más común es el de 4 x 4 (16 teclas) con 8 pines base:
4 para las columnas y 4 para las filas (en ocasiones, se encuentran teclados matriciales con
más pines redundantes a un mismo pin base).

Representación del teclado matricial

El circuito controlador de teclado matricial se divide en dos partes: el circuito de escaneo,


que permite identificar qué tecla se presionó y el circuito del encoder, cuya función es
codificar el valor binario de una tecla hacia una conversión particular (por ejemplo, un
display a 7 segmentos). El algoritmo de escaneo más simple es utilizar un contador de anillo
con un demultiplexor que “barre” cada una de las columnas (o filas) en un tiempo. El valor
binario correspondiente a una tecla presionada se almacena en un registro de datos con
salida hacia el módulo del encoder

Lo más práctico es conectar el teclado a Arduino directamente, podemos usar cables de


protoboard, o bien con un peine de pines para que no se suelte nada.
¿Qué es un LCD?
Las pantallas de cristal líquido LCD o display LCD para mensajes (Liquid Cristal Display)
tienen la capacidad de mostrar cualquier carácter alfanumérico, permitiendo representar la
información que genera cualquier equipo electrónico de una forma fácil y económica.

La pantalla consta de una matriz de caracteres (normalmente de 5x7 o 5x8 puntos)


distribuidos en una, dos, tres o cuatro líneas de 16 hasta 40 caracteres cada línea. El
proceso de visualización es gobernado por un microcontrolador incorporado a la pantalla,
siendo el Hitachi 44780 el
modelo de controlador más
utilizado.
DDRAM

El módulo LCD posee una zona de memoria RAM llamada DDRAM (Data Display RAM)
donde se almacenan los caracteres que se van a mostrar en la pantalla.
Tiene una capacidad de 80 bytes, 40 por cada línea, de los cuales sólo 32 se pueden
visualizar a la vez (16 bytes por línea).
Ingeniería de Sistemas y Automática Prácticas de Microcontroladores PIC
De las 80 posibles, las dos direcciones más importantes de la DDRAM son:
· Dirección 00h, que es el comienzo de la primera línea
· Dirección 40h, que el comienzo de la segunda línea
¿Qué es el sensor LM35?
El LM35 es un sensor de temperatura de propósito general de bajo costo que tiene una
salida de voltaje linealmente proporcional a la temperatura circundante en grados Celsius
(10mV/°C). Este sensor no requiere calibración externa y puede ser utilizado en el modo de
medición básico para temperaturas entre +2°C a +150°C y en modo de medición de rango
completo para temperaturas entre -55°C a +150°C. La figura 2 muestra cómo fue conectado
el LM35 en este proyecto para operar en el modo básico de medición de temperaturas.

· Por lo tanto, en el rango


de temperatura indicado la salida de voltaje puede describirse mediante la siguiente
expresión:
· Vo = 0.01T
· Donde Vo está dado en Voltios y T en grados Celsius. La señal de salida del sensor
de temperatura no requiere ser acondicionada por las razones que se explican a
continuación, porlotanto este sensor puede ser conectado directamente a la entrada
de voltaje análogo Vin del ADC0804.Servomotor

Servomotor.
Por un lado, nos permite mantener una posición que indiquemos, siempre que esté dentro
del rango de operación del propio dispositivo (de 0° a 180°). Por otro lado, nos permite
controlar la velocidad de giro, podemos hacer que antes de que se mueva a la siguiente
posición espere un tiempo.

Estos motores funcionan con una señal PWM, con un pulso de trabajo entre 1 ms y 2 ms y
con un periodo de 20 ms (50 Hz). ¿Qué quiere decir todo esto? Este dato nos indica la
velocidad máxima a la que podemos mover el servomotor con Arduino. Solo podremos
cambiar de posición cada 20 ms. Esto dependerá del tipo y marca de nuestro servo.
El elegir una salida PWM u otra da lo mismo, todas las salidas de este tipo funcionan igual.

Todos deben tener 3 cables. Uno irá a tierra, otro a la alimentación de 5 Voltios y el tercero

a un pin PWM. También puedes utilizar un shield para controlar servomotores.

¿Como funciona el sensor ultrasónico hc-sr04?


El funcionamiento es simple, envía una señal ultrasónica inaudible y nos entrega el tiempo
que demoro en ir y venir hasta el obstáculo más cercano que detecto.

Generalmente están conformados por dos cilindros puestos uno al lado del otro, uno de
ellos es quien emite la señal ultrasónica, mientras que el otro es quien la recibe, es un
sistema muy simple pero no por eso deja de ser efectivo.

El sensor hc-sr04 en particular tiene una sensibilidad muy buena del orden de los 3mm,
teniendo en cuenta que la mayoría de las aplicaciones donde este sensor es utilizado es
para medir o detectar obstáculos o distancias mayores a varios centímetros, podemos decir
que su sensibilidad es muy buena.
¿Que nos entrega el sensor hc-sr04?
Nos entrega tiempo, como dijimos al comienzo el sensor hc-sr04 cuenta el tiempo que
transcurre entre la emisión y la recepción de la señal ultrasónica, claramente podemos
deducir que el tiempo es dependiente de la distancia, la señal tardara más en ir y volver si
el objeto está lejos que si está cerca.

Recordando algunas ecuaciones básicas de física sabemos que d = v.t (la distancia
recorrida es igual a la velocidad del objeto en movimiento por el tiempo que transcurre en
llegar).

Tenemos el tiempo, pero ¿cuál es la velocidad de la señal? Para responder esa pregunta
tenemos que tener en claro que el sensor emite una señal ultrasónica y esta viaja a la
velocidad del sonido, aproximadamente a 340 m/s.

Ya tenemos todo listo, si el sensor hc-sr04 nos entrega una lectura de 1,47 mili segundos y
aplicamos la formula anterior nos queda d = 340 x 1,47 = 341 milímetros, pero como este
tiempo es el de ida y vuelta, la distancia real al objeto será la mitad, por eso es que dividimos
el resultado por dos, lo que nos da un resultado final de 170 milímetros (17 centímetros).

Diagrama de conexiónEl sensor tiene 4 pines, uno es VCC otro GND un pin de triger donde
enviamos un pulso al sensor para inicializarlo y de alguna manera decirle (comenzar a
enviar información) y otro pin más Echo donde nos viene el resultado final a la placa de
arduino.
Lugar de la práctica:

• Laboratorio Electrónica

Equipo y/o material a utilizar:

Material Equipo

1 Arduino uno o Mega2560 1 Multímetro.

1 Lcd 16x2 1 Computadora.

1 Teclado matricial 4x4 1 Protoboard.

1 Potenciometro 10kΩ. 1 Punta lógica.

1 Sensor de temperatura Lm35 Software Arduino

1 Motor de radiocontrol. Software proteus

Cable para protoboard.

Sensor ultrasónico hc-sr04

Desarrollo:

Actividad 1: Mensaje en LCD.


1.- Realizar las conexiones entre LCD y arduino, desarrollar el programa que imprima un
mensaje haciendo uso de comandos básicos, como lo son lcd.begin, lcd.print,
lcd,setCursor() y otros, todos estos incluidos en la librería LiquidCrystal.
Actividad 2: Autoscroll.
Realizar las conexiones entre lcd y arduino, desarrollar el programa que incluya nuevos
comandos y los usados durante el programa anterior, el nuevo comando es el autoscroll, el
cual imprimía un texto recorriéndose de uno en uno hacia un solo sentido.

Actividad 3: Mensaje en lcd izquierda-derecha.


Desarrollar un programa haciendo uso del comando scrollDisplayRight(),
scrollDisplayLeft(), como el mostrado anteriormente pero ahora introduciremos una
condición para que el texto corra hacia la derecha y cuando llegue hasta la última columna
se regrese hacia donde empezó.

Nota: para los tres programas anteriores se requiere las mismas conexiones en el circuito
entre arduino y lcd.
Actividad 4: Teclado matricial y Lcd

Hacer uso de un teclado matricial de 4X4 en el que se utiliza la librería Keypad y de los
comandos incluidos en esta librería. El programa tiene que imprimir en el LCD la tecla que
se presione en el teclado matricial y al presionar #, limpiar el lcd.

Actividad 5: Calculadora(+,-,x,÷).
Desarrollar el programa que realice la función de una calculadora con operaciones básicas
(+,-,x,/) y una tecla para borrar pantalla

Nota: En los dos programas anteriores (4 y 5) se requiere las mismas conexiones en el


circuito entre arduino y lcd.

Actividad 6: Sensor de temperatura en °C, °F, y K


Desarrollar un programa que calcule la temperatura ambiente haciendo la lectura de los
pines análogo digitales del arduino y permita visualizar en un LCD, haciendo uso del sensor
lineal LM35 y el comando analogRead(), la temperatura la deberá mostrar en Centígrados,
Fahrenheit y Kelvin.
Actividad 7: Comunicación serial y uso de tarjeta bluetooth hc-05 ó 06.
Realizar un programa que haga uso de la comunicación serial por medio del celular y de
una tarjeta de bluetooth (hc-05 ó hc-06), utilizando algunas letras como comandos, logrando
activar y desactivar cuatro aparatos de CA.

Actividad 8: Control de motor Sg-90 (de 0° a 180° y de 180° a 0°).


Realizar un programa que permita controlar el posicionamiento de un servo sg-90, el cual
únicamente gira de 0° a 180°, el programa deberá mover el motor de 0° a 180° al presionar
un botón y de 180° a 0° al presionar otro botón, el desplazamiento lo tendrá que hacer con
una velocidad controlada.
Actividad 9: Control de posición de servo sg-90 haciendo uso de potenciómetro.
Haciendo uso de un potenciómetro, controlar la posición de un servo sg-90, el
potenciómetro debe ser conectado a un pin análogo digital del arduino, el cual dará un valor
de 0-1023 y se deberá sacar una proporciona de 0-180, que permita posicionar el servo de
forma correcta.

Actividad 10: Posicionamiento de servo con teclado matricial y mostrar en lcd.


Haciendo uso del teclado, lcd y servo, realizar un programa que por medio del teclado se
pueda ingresar un valor de 0-180, la información se muestre en el lcd y el servo tome la
posición mandada por el teclado, este desplazamiento lo deberá realizar a una velocidad
controlada, evitando movimientos bruscos por parte del servo.
Actividad 11: Medición de distancia con sensor HC-SR04.
Haciendo uso del sensor ultrasónico HC-SR04, realizar la medición de distancia y
visualizar el resultado en un lcd.

Cuestionario.

1.- ¿Cuál es la resolución de una entrada análogo digital en el Arduino y como se calcula?

2.- ¿Indique los cálculos y procedimientos necesarios para la lectura correcta de un


sensor análogo, diferente al lm35 y ultrasónico?

3.- ¿Cuál es el funcionamiento y las frecuencias y el ciclo útil requerido para que un
servomotor se posiciones a 0°, 90° y 180°?

4.- ¿Cuál es el procedimiento para realizar mediciones con el sensor ultrasónico del orden
de milímetros?

También podría gustarte