MICROCONTROLADORES
LABORATORIO 11
Programación de Arduino
- Capacidad Terminal
- Utilizar al microcontrolador en aplicaciones de control electrónico.
- Desarrollar y ejecutar programas en un microcontrolador PIC
- Programar y configurar interfaces básicas del microcontrolador.
2. Competencia Específica de la Sesión
IDE Arduino
Tarjeta ARDUINO UNO
Componentes y accesorios
- Programar la tarjeta Arduino UNO utilizando el lenguaje gráfico y comparar con lenguaje de texto.
- Recibir datos de la tarjeta arduino en el monitor serie.
- Realizar programación básica utilizando el software mencionado.
IDE Arduino
Tarjeta ARDUINO UNO
Componentes y accesorios
4. Fundamento teórico:
5. Desarrollo de actividades indicadas en el laboratorio:
PWM
- Arduino Uno tiene entradas analógicas que gracias a los conversores analógico digital puede entender ese valor el microcontrolador, pero no tiene salidas analógicas puras y para solucionar esto, usa la técnica de PWM.
- Las Salidas PWM (Pulse Width Modulation) permiten generar salidas analógicas desde pines digitales. Arduino Uno no posee salidas analógicas puras.
- La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de pulse-width modulation) de una señal o fuente de energía es una técnica en la que se modifica el ciclo de trabajo de una señal periódica (una senoidal o una cuadrada, por ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga.
- El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en relación con el período. duty cycle = (tiempo que la salida está a uno o HIGH)/ (periodo de la función).
- En Arduino la frecuencia de PWM es de 500Hz. Pero es un valor que puede modificarse en caso que lo necesitemos.
- En la actualidad existen muchos circuitos integrados en los que se implementa la modulación PWM, por ejemplo para lograr circuitos funcionales que puedan controlar fuentes conmutadas, controles de motores, controles de elementos termoeléctricos, choppers para sensores en ambientes ruidosos y algunas otras aplicaciones.
5. Desarrollo de actividades indicadas en el laboratorio:
- En el presente laboratorio se propone realizar la actividad mediante la visualización de los valores del voltaje en un rango de 0 a 25 en el monitor serie, para se requiere de utilizar cuatro led's y un potenciómetro; cada led se encenderá según la posición en la que se encuentre el potenciómetro, esto se puede interpretar a partir de los porcentajes de 10, 30, 70 y el 100% que sería cuando la perilla del potenciómetro se giró completamente.
- Se muestra en las siguientes imágenes la programación realizada la cual inicia con la declaración de los pines a usar tanto para los leds como para el potenciómetro, dentro de esta misma declaración ya se indica la configuración como salidas y entrada respectivamente; continuamos con la declaración de variables que en esta oportunidad serán de tipo flotante para así poder obtener valores con decimales y no solo enteros. Se declara ya valores destinados para posiciones del potenciómetro e intensidades correspondiente al brillo de los leds de acuerdo al porcentaje que se pide en el enunciado.
- En la parte de void Setup solo se introduce lo correspondiente para llevar a cabo la comunicación serial con el monitor serie de IDE Arduino. En void Loop se tiene que la lectura de los datos enviados del potenciómetro serán almacenados en la variable sensorValue que a su vez en la siguiente línea será multiplicado por 25 y dividido entre 1023 y guardado en la variable voltaje que al final será utilizado para mostrarse en el monitor serie. Continuando, se propone distintas condiciones que evalúa los valores de la variable sensorValue y de las posiciones ya previamente declarados anteriormente para obtener así cuatro estados que posteriormente serán evaluados en la parte de Switch Case.
- Una vez que se realiza lo anterior pasamos a la evaluación de las variables mencionadas anteriormente mediante la instrucción Switch Case; los estados que se determinaron a partir de las condiciones propuestas pasan a ser evaluados en cada case para que así se determine el led que se encenderá más el mensaje dando a conocer la intensidad de brillo en un correspondiente rango de voltaje, tal como se muestra a continuación:
- Finalmente se muestra la implementación y conexión realizada para demostrar el funcionamiento de la programación.
6. EVIDENCIA DE TRABAJO
7. OBSERVACIONES Y RECOMENDACIONES
OBSERVACIONES
- Se observó, que fue necesario declarar variables en formato de dato de tipo flotante para poder así mostrar los números decimales y tener más precisión en lo que respecta a la obtención de datos.
- Se observó que al modificar los valores de la intensidad de los leds utilizando la función map() el cambio de brillo se mostraba equitativo para todos y no cumplía con lo requerido en el presente ejercicio.
- Se observó que se tuvo que reemplazar la función map() por otra alternativa de aplicación ya que particularmente se presentaron varias dificultades para obtener estados que luego serían evaluados en la instrucción Switch Case.
- Se observó que para lograr el establecer la intensidad de brillo en el porcentaje indicado también fue necesario proponer los datos que muestren la posición del potenciómetro.
CONCLUSIONES
- Se concluye que para un mejor desarrollo de trabajo es recomendable intentar nuevas alternativas para llegar a lo requerido.
- Se concluye que en el monitor serie se pudo mostrar tanto el valor que incrementaba y disminuía como los mensajes destinados a mostrarse en ciertos valores que se indicaron en la programación realizada, para ello se utilizó las funciones Serial.print y Serial.println las cuales nos permiten escribir caracteres ASCII en el puerto Serial.
- Se concluye que la función de Arduino pinMode permite configurar a cada pin, de forma individual, como entrada o como salida; en la programación realizada se le configuró como entrada para recepcionar el cambio de señal ocasionada al presionar el pulsador.
8. BIBLIOGRAFÍA
- Marin, Francisco (2007) Diseño basado en microcontroladores. Málaga: Universidad de Málaga. (004.16/M26D)
- Pereira, Fabio (2007) Microcontroladores PIC. Sao Paulo:s.n. (005.13/P43)
- José María Angulo Usátegui [y otros]. (2007) Electrónica digital y microprogramable .Madrid: Thomson. (621.381/A37/I)
9. INTEGRANTE
Condori Ortíz, Daniel Agustín C5 - A











