Practica 2
Practica 2
Practica 2
Practica No.2:
Puertos Analógicos
Alumno(a): ________________________________________
Grupo: ________
#Ejercicio 1 2 3 4 5 Total
Calificación
Introducción:
Los puertos analógicos son una herramienta que nos permite hacer mediciones de
voltaje y convertirlas a valores digitales y manipularlas para realizar diversas
aplicaciones. En esta práctica utilizaremos programación orientada a objetos para
crear una librería que nos proporcione la lectura de un puerto analógico ya sea con
un valor entero o ya convertido a su equivalente en voltaje.
Objetivo:
El alumno aprenderá a utilizar los puertos analógicos de Arduino empleando
librerías elaboradas por sí mismo y a realizar la conversión entre valor digital y valor
analógico.
Material y Equipo:
• 1 placa de desarrollo Arduino.
• 1 protoboard.
• 1 potenciómetro de 10KΩ.
• 1 resistencia de 330Ω.
• 1 fotorresistencia.
• 1 joystick analógico.
• 4 jumpers Macho-Macho.
• 4 jumpers Macho-Hembra
Marco Teórico:
Potenciómetro.
El potenciómetro es un componente electrónico que hace de resistencia variable,
es decir, un potenciómetro es una resistencia cuyo valor se puede modificar
mientras que el valor de una resistencia convencional es fijo.
Fotorresistencia.
La fotorresistencia es un componente electrónico muy utilizado y visto en la materia
de optoelectrónica, este pequeño componente posee una resistencia interna
variable la cual aumenta o disminuye dependiendo de la luz que este incidiendo en
él. La resistencia de una foto resistor disminuye si hay un aumento en la intensidad
de luz, por el caso contrario si la intensidad de luz disminuye la resistencia aumenta.
A este componente también se le conoce como: Fotoconductor, célula fotoeléctrica
o resistor dependiente de la luz.
Joystick Analógico.
Un joystick elemento de entrada para programas digitales. Esté en particular está
construido mediante un conjunto de resistencias variables. También es una
herramienta muy útil, que nos ayuda a dar dirección a lo que queremos, por ejemplo,
a un carro por control remoto, también están presentes en los controles de nuestros
videojuegos, etc. El funcionamiento está basado en el movimiento en dos
dimensiones de una palanca, este movimiento es capturado por dos potenciómetros
(uno para cada eje). Este módulo de joystick cuenta con cinco pines los cuales se
enumeran tomando de referencia de izquierda a derecha:
GND: Pin conectado a tierra.
+5V: pin de alimentación(5v).
VRx: pin de lectura de potenciómetro para el eje de x.
VRy: pin de lectura de potenciómetro para el eje de y.
SW: es un pin adicional que se utiliza para un push button central.
Funciones de Arduino:
delayMicroseconds(Tiempo en microsegundos): Tiene la misma función que la
instrucción delay pero el tiempo es en microsegundos en lugar de milisegundos.
analogRead(puerto): Esta función hace una lectura de voltaje en el puerto
especificado dentro de sus paréntesis. Hace una conversión del valor analógico del
voltaje a un valor entero digital de 0 a 1023. Los puertos analógicos son aquellos
nombrados con la letra A del lado izquierdo de la placa Arduino, y tal cuál escribe
su nombre dentro de los paréntesis. Ejemplo:
analogRead(A1);
PWM:
PWM significa Modulación de Ancho de Pulso y es una técnica usada para controlar
el brillo del LED, el control de velocidad del motor DC, el control de un servomotor
o donde usted tiene que obtener salida analógica con medios digitales.
Los pines digitales Arduino nos dan 5V (cuando están en ALTO) o 0V (cuando están
en BAJO) y la salida es una señal de onda cuadrada. Así que, si queremos atenuar
un LED, no podemos obtener el voltaje entre 0 y 5V del pin digital, pero podemos
cambiar la hora de encendido y apagado de la señal.
Antes de seguir adelante, veamos algunos términos asociados con PWM.
• TON (On-Time, Tiempo de encendido): Es el momento en que la señal es
alta.
• TOFF (Off-Time, Hora de apagado): Es el momento en que la señal está
baja.
• Ciclo de trabajo: Es el porcentaje de tiempo en que la señal estuvo alta
durante el período.
Por lo tanto, con un ciclo de trabajo del 50% y una frecuencia de 50Hz entonces el
led se verá iluminado a media luz por el ojo humano.
Modulación de brillo con PWM.
El efecto de cambio de brillo del LED viene dado por no el voltaje aplicado, que será
constante, 5V, sino por el tiempo que ese voltaje es aplicado al LED.
El LED estará siendo alimentado por pulsos, y de acuerdo al ancho de estos pulsos
variará el brillo. Si el ciclo de trabajo es bajo, el brillo será bajo y tenue. Si el ciclo
de trabajo es alto, el brillo será intenso.
Desarrollo:
• Abra Visual Studio Code y tal como realizó en la práctica 1 con la librería LED
cree los archivos necesarios para la librería AnalogPort guárdelos en la
ubicación que les corresponde.
• Coloque los encabezados necesarios de cada archivo (Revisar teoría de
práctica anterior si lo necesita).
• Declare el constructor de la clase, este recibe como parámetro el puerto
analógico al que se va a conectar. Nota: El tipo de dato que se recibe es
entero (int) ya que los nombres de los puertos analógicos son macros que
hacen referencia al número entero al que pertenece el pin.
• Declare los siguientes métodos de clase en la sección public:
o Read: Lee el valor de voltaje del puerto y regresar el valor entero que
proporciona la función nativa de Arduino (analogRead).
o ReadVoltage: Lee y convierte a valor flotante la lectura del voltaje del
puerto. Considere que el voltaje de referencia máximo es 5v. Por lo
que deberá multiplicar el valor de lectura por 5 y dividirlo entre 1023.0
para hacer la conversión a flotante.
• Esas son las lecturas de voltaje de ambos ejes del joystick, tome los valores
superior e inferior de cada lectura como filtro de ruido, para evitar que al más
mínimo cambio de voltaje tengamos errores.
• En el caso del ejemplo los valores serían 2.55 y 2.53 para el valor 1 (Eje x) y
para el valor 2 (Eje y) serían 2.60 y 2.58.
• Analice cómo cambian los valores de cada lectura al mover el joystick en una
dirección u otra y en base a eso elabore el programa con las condicionales
necesarias para prender 4 leds (Arriba, Abajo, Izquierda y Derecha) acorde
a el movimiento del Joystick. Si no hay movimiento, todos deben de estar
apagados.
• Haga las siguientes conexiones de su placa al protoboard sin desconectar el
Joystick y pruebe el programa que elaboró: