Está en la página 1de 14

UNIVERSIDAD TÉCNICA DEL NORTE

FACULTAD DE INGENIERÍA EN
CIENCIAS APLICADAS
ELECTRICIDAD

TALLER
MICROCONTROLADORES

Semana 24 – 28 de Abril de 2023


Taller #: 4 Tema:

Fecha de inicio:
2023 Abril 24
año mes día

Observaciones:

Fecha de entrega del


Trabajo: 2023 Abril 28
año mes día

Observaciones:

Periodo: Abril – Agosto


Octubre – Febrero
Trabajo de Microcontroladores
Taller 4

1. Tema: Sensor LM35 (Mega 2560)

2. Objetivo General.

Desarrollar habilidades en la programación y uso de la plataforma de prototipado electrónico


Arduino Mega 2560 con el objetivo de comprender el uso de entradas analíticas, la técnica de
modulación por ancho de pulsos (PWM) y cómo interactúa la programación con dispositivos
de salida como los LED. Además, se pretende demostrar cómo se pueden aplicar estos
conocimientos al desarrollo de proyectos prácticos y aplicaciones que utilicen
microcontroladores.
3. Objetivos Específicos.

 Analizar el código de control PWM para regular el brillo de los LEDs.


 Describir el proceso de lectura de una entrada analítica y su conversión a milivoltios.
 Evaluar el uso de la comunicación serie para la recogida de datos y la monitorización del
potenciómetro.
 Programar el Arduino Mega 2560 utilizando el lenguaje de programación de Arduino (basado
en C++) para controlar lo pines PWM de Arduino

4. Marco Teórico

4.1. Introducción
En este taller práctico de laboratorio se explorará el uso de la tarjeta de desarollo Arduino Mega
2560, una herramienta ampliamente utilizada en la industria y la educación para el desarrollo de
proyectos electrónicos y robóticos. Se simulará una baliza policial en una protoboard, lo que
permitirá a los participantes adquirir habilidades en la programación y uso de esta plataforma, así
como en la comprensión de los principios físicos fundamentales que la sustentan.
En este taller, se profundizará en conceptos fundamentales de la electrónica y la programación
para la simulación de una baliza policial con Arduino Mega 2560. Para alcanzar los objetivos
específicos, se utilizarán diversas técnicas y herramientas como el diseño y construcción de
circuitos en una protoboard, la programación en el lenguaje de programación de Arduino (C++),
la simulación y análisis de resultados. El uso de componentes electrónicos como resistencias,
diodos led y cables dupond, será necesario para el correcto funcionamiento del circuito, mientras
que el software de programación Arduino IDE permitirá la interacción con el microcontrolador
ATmega2560 presente en la placa de desarrollo Arduino Mega 2560.

4.2. ¿Qué es Arduino?


Arduino fue creado en Ivrea, Italia en 2005 por un equipo de estudiantes de diseño y programación
de la Escuela de Diseño de Interacción de Ivrea. Los fundadores del proyecto son Massimo Banzi,
David Cuartielles, Tom Igoe, Gianluca Martino y David Mellis. El primer Arduino, el Arduino Uno,
fue lanzado en 2005 y desde entonces ha sido ampliamente utilizado en todo el mundo para una
amplia gama de aplicaciones, desde proyectos educativos hasta sistemas de automatización del
hogar y robótica.
Arduino es una plataforma de hardware y software de código abierto para la creación de proyectos
interactivos basados en la electrónica y la programación. Esta plataforma está compuesta por una
serie de placas electrónicas, sensores, actuadores, módulos y periféricos que se conectan entre
sí para formar circuitos electrónicos. Además, cuenta con un lenguaje de programación propio y
un entorno de desarrollo integrado (IDE) que permite la creación y carga de programas en las
placas de desarrollo.
La plataforma Arduino es especialmente conocida por su facilidad de uso y accesibilidad, lo que
la ha convertido en una herramienta popular para la enseñanza y aprendizaje de la electrónica y
la programación. Además, la comunidad de usuarios de Arduino es muy activa y colaborativa, lo
que ha llevado a la creación de una gran cantidad de proyectos y recursos educativos que están
disponibles de forma gratuita en línea. Con Arduino es posible desarrollar proyectos en diversas
áreas como robótica, domótica, automatización, arte, música, entre otras. Con el paso del tiempo,
Arduino ha evolucionado para incluir una variedad de placas y herramientas de desarrollo, como
el Arduino Mega 2560 utilizado en este trabajo.

4.2.1. IDE de Arduino


El IDE de Arduino es un entorno de desarrollo integrado que se utiliza para escribir y cargar
programas en las placas de desarrollo de Arduino. Es una aplicación que se instala en un
ordenador y proporciona un editor de texto para escribir el código fuente, un compilador que
convierte el código en lenguaje de máquina y un cargador de programas que carga el código
compilado en la placa de desarrollo. Además, el IDE de Arduino incluye herramientas de
depuración para identificar y solucionar errores en el código. Es una herramienta muy útil para los
desarrolladores y aficionados que quieren crear proyectos con Arduino, ya que les permite escribir
y probar el código en un entorno amigable y fácil de usar. El IDE de Arduino es de código abierto
y está disponible para su descarga en el sitio web oficial de Arduino.
4.2.2. Programación en Arduino
La programación en Arduino se realiza utilizando el lenguaje de programación C/C++, aunque
con algunas simplificaciones y modificaciones para facilitar su uso. El proceso de programación
se realiza a través del IDE de Arduino, donde se pueden crear y editar programas, compilarlos y
cargarlos en la placa de desarrollo.
Los programas en Arduino se denominan "sketches" y están compuestos por dos funciones
principales: setup() y loop(). La función setup() se ejecuta una vez al inicio del programa y se
utiliza para inicializar variables, configurar los pines de entrada/salida y otros parámetros
necesarios para el correcto funcionamiento del programa. Por otro lado, la función loop() se
ejecuta continuamente después de que la función setup() haya terminado y se utiliza para definir
las acciones que el programa debe realizar en bucle.
La sintaxis de programación en Arduino es muy similar a la del lenguaje C/C++, pero se han
agregado algunas funciones y librerías específicas para trabajar con los periféricos de la placa de
desarrollo, como sensores, actuadores y pantallas. Además, Arduino cuenta con una amplia
comunidad de usuarios que han creado y compartido una gran cantidad de ejemplos y recursos
educativos en línea para facilitar el aprendizaje y la programación en esta plataforma.
4.2.3. Arduino Mega 2560
El Arduino Mega 2560 es una placa de desarrollo de la familia Arduino que se lanzó en el año
2010. Fue creada por un equipo de diseñadores y programadores liderados por Massimo Banzi.
El Arduino Mega 2560 es una placa potente y versátil que cuenta con un microcontrolador de la
familia AVR de 8 bits, el ATmega2560, que opera a una velocidad de 16 MHz. Esta placa tiene
54 pines digitales de entrada/salida, 16 pines analógicos, cuatro UARTs (puertos serie), una
conexión USB, una toma de alimentación, una conexión ICSP y un botón de reinicio. Además, el
Arduino Mega 2560 es compatible con la mayoría de los shields de Arduino y tiene capacidad
para manejar proyectos más complejos y demandantes que el Arduino UNO u otras placas más
básicas de la familia Arduino.
4.2.4. Entradas y salidas analógicas
Las entradas analíticas son variables en el tiempo que tienen valores que caen dentro de un rango
específico. Las entradas analíticas de los microcontroladores permiten leer señales analíticas de
sensores o medidores de potencial. La resolución se refiere a la precisión de la medición, que
viene determinada por el número de bits del ADC. La conversión analógico-digital mide y
transforma la señal en un valor digital.
4.2.5. Modulación por ancho de pulso
El PWM regula la relación entre los estados alto (activado) y bajo (abandonado) de una señal en
el transcurso de un tiempo. permite reproducir análisis estadísticos análogos en dispositivos
digitales. El porcentaje de tiempo que se pasa en un estado activo es el ciclo de trabajo. La
frecuencia determina la rapidez con la que se repetirá el ciclo completo. El número de bits
utilizados para indicar el ciclo de trabajo sirve de base para la resolución.
4.2.6. Comunicación serial
Es un método de transmisión secuencial de datos a través de cables de transmisión y recepción
(TX y RX). El número de bits transmitidos por segundo se mide como la velocidad de transmisión
en baudios. El número de bits utilizados para transmitir cada carácter se representa mediante bits
de datos, que suelen ser 8 bits. Los últimos bits de un carácter transmitido se conocen como bits
de paridad. Para evitar pérdidas, el control de flujo regula el flujo de datos en la comunicación
serie.

5. Trabajo Preparatorio.
El trabajo de preparación de esta práctica de laboratorio implica varios pasos cruciales. En primer
lugar, es necesario investigar a fondo las nociones teóricas relativas a los puntos analíticos de entrada
y salida, la modulación por ancho de pulsos (PWM) y la comunicación serie. Esto permitirá una sólida
comprensión de los fundamentos teóricos y las aplicaciones prácticas de estos conceptos en el
contexto de los microcontroladores.Además, se requiere una revisión exhaustiva de la
documentación del microcontrolador utilizado en la práctica. Para ello es necesario investigar los
pines, así como las funciones específicas relacionadas con los puntos de entrada y salida analíticos,
PWM y comunicación serie. Esta revisión permitirá una comprensión completa de las capacidades y
limitaciones del microcontrolador, garantizando una programación y diseño adecuados.
Una vez finalizada la investigación y la revisión de documentos, comienza el diseño del circuito y la
configuración del entorno de desarrollo. Esto incluye elegir y conectar los componentes necesarios,
así como configurar el software de programación apropiado. Es fundamental seguir las instrucciones
y conexiones sugeridas en la documentación del microcontrolador para garantizar el correcto
funcionamiento del circuito.
Tras el diseño y la configuración, es posible pasar a la programación y prueba del circuito. Es crucial
escribir el código apropiado para gestionar las entradas y salidas analíticas, implementar PWM y
establecer la comunicación serie. Se realizarán pruebas exhaustivas para garantizar que el circuito
funciona correctamente y que los resultados son coherentes con las expectativas teóricas.
6. Equipos y Materiales.

 Arduino Mega 2560

 Computador portátil / Laptop

 Software de programación para Arduino (Arduino IDE)

 Protoboard

 USB tipo B

 Cables dupond

 Potenciómetro 5k

 Diodos emisores de luz (LEDs)

7. Datos y Observaciones.
La recogida de datos y las observaciones pertinentes se realizaron durante la práctica de laboratorio.
Algunos de los datos recogidos incluían lecturas de la tensión analítica utilizando un potenciómetro.
Estas lecturas permitieron verificar el rango de valores obtenidos y su relación con la ubicación del
potenciómetro.
Además, se realizaron mediciones de la intensidad de salida de los LEDs controlados por PWM.
Estas mediciones permitieron evaluar la precisión del sistema de control de intensidad basado en
PWM y compararla con los valores teóricamente previstos.
Además, se descubrió que la comunicación serie funcionaba bien para transmitir datos desde el
microcontrolador a un dispositivo externo como un ordenador, lo que permitía visualizar y registrar
los valores de tensión y otros datos obtenidos durante la práctica.
En conclusión, los datos y observaciones recogidos durante las prácticas de laboratorio confirmaron
el correcto funcionamiento de los puntos de entrada y salida analíticos, la técnica PWM y la
comunicación serie. Estos hallazgos apoyaron los conceptos teóricos estudiados e ilustraron cómo
pueden ser utilizados para el control y monitoreo de sistemas electrónicos.
8. Código, esquemas, simulaciones y resultados.

8.1. pwm_1

/*
UNIVERSIDAD TÉCNICA DEL NORTE
CIELE
MICROCONTROLADORES
Joshua Steven Montesdeoca Montesdeoca
PWM
24 de Abril de 2023
*/

// definir variables
// tiempo
unsigned long tiempoA = 0;
unsigned long tiempoB = 0;
int pausa = 20;
int intensidad = 0;
// definir pines
const int ledRojo = 5;
const int ledAzul = 11;

void setup() {
// configurar los pines
pinMode(ledRojo, OUTPUT);
pinMode(ledAzul, OUTPUT);
// configurar cominicación serial
Serial.begin(9600); //velocidad de conexión 9600 baudios por segundo
// timepo inicial
tiempoA = millis();

void loop() {
// segunda medidad de tiempo
tiempoB = millis();
if (tiempoB >= tiempoA + pausa)
{
if (intensidad == 256)
{
intensidad = 0;
}
intensidad = intensidad + 1;
analogWrite(ledRojo, intensidad);
Serial.println(intensidad);
tiempoA = tiempoB;
}

}
}

8.2. pwm_2

/*
UNIVERSIDAD TÉCNICA DEL NORTE
CIELE
MICROCONTROLADORES
Joshua Steven Montesdeoca Montesdeoca
PWM
24 de Abril de 2023
*/

//declaramos las variables a utilizar


unsigned long tiempoA = 0; //declaramos unsigned para aumentar la memoria
para tiempoA
unsigned long tiempoB = 0; //declaramos unsigned para aumentar la memoria para
tiempoB

int pausa = 30;


int intensidadR = 0;

//definimos los pines a usar


const int ledRojo = 5; //pin 5 para led rojo
const int ledAzul = 11; //pin 11 para led azul

void setup() {
//iniciamos configuracion de hadware para que se ejecute una sola vez
pinMode(ledRojo, OUTPUT); //configura el modo de trabajo del pin pudiendo ser
salida o entrada
pinMode(ledAzul, OUTPUT);
//comunicacion serial
Serial.begin(9600); //iniciamos la comunicacion seria a una velocidad de conexion
9600 baudios por segundo

//tomamos el tiempo inicial con millis


tiempoA = millis(); //tomamos el tiempo en que el arduino esta encendido
}

void loop() {
// comenzamos a configurar el programa para que se repita en bucles
tiempoB = millis(); // tambien se puede poner tiempoB = tiempoA;
if(tiempoB >= tiempoA + pausa){ //declaramos que si el tiempoB es mayor o igual
al tiempo A + pausa entra en el bucle if

intensidadR++; //tambien se puede poner intensidad = intensidada +1; si la


sentencia es verdadera nos cambia el estado del led
tiempoA = tiempoB; //y el tiempoA es el nuevo tiempo
analogWrite(ledRojo, intensidadR);
analogWrite(ledAzul, 255 - intensidadR);
Serial.print("intensidad rojo: ");
Serial.println(intensidadR);
Serial.print("intensidad azul: ");
Serial.println(255 - intensidadR);
Serial.println(intensidadR);
tiempoA = tiempoB;

if(intensidadR == 256){
intensidadR = 0;
}

}
8.3. potenciómetro_1

/*
UNIVERSIDAD TÉCNICA DEL NORTE
CIELE
MICROCONTROLADORES
Joshua Steven Montesdeoca Montesdeoca
Entrada Analógica
25 de Abril de 2023
*/
int valorPot = 0;
// definir pines
const int pinPot = A8;
void setup() {
// configuración de pines
pinMode(pinPot, INPUT);
//configuración comunicación serial
Serial.begin(9600);

void loop() {
// lectura del potenciometro
valorPot = analogRead(pinPot);
Serial.println(valorPot*(5000.0/1023.0));

8.4. potenciómetro_2

/*
UNIVERSIDAD TÉCNICA DEL NORTE
CIELE
MICROCONTROLADORES
Joshua Steven Montesdeoca Montesdeoca
Entrada Analógica
25 de Abril de 2023
*/
int valorPot = 0;
// definir pines
const int pinPot = A8;
const int pinLed = 6;

void setup() {
// configuración de pines
pinMode(pinPot, INPUT);
pinMode(pinLed, OUTPUT);
//configuración comunicación serial
Serial.begin(9600);

void loop() {
// lectura del potenciometro
valorPot = analogRead(pinPot);
analogWrite(pinLed, valorPot);
Serial.println(valorPot*(5000.0/1023.0));

8.5. Esquemas y simulaciones en Fritzing

Figura 1. Esquema 1 circuito pwm_1 y pwm2.

Figura 2. Esquema 2 circuito pwm_1 y pwm2


Figura 3. Esquema 1 circuito potenciómetro_1

Figura 4. Esquema 2 circuito potenciómetro_1


Figura 5 . Esquema 1 circuito potenciómetro_2

Figura 6 . Esquema 2 circuito potenciómetro_2

8.6. Resultados
Figura 7. Circuito montado pwm_1 y pwm_2

Figura 8. Circuito montado potenciómetro_1


Figura 9. Circuito montado potenciómetro_2

Enlace Imégenes y videos: Imágenes _Videos

9. Análisis de resultados

Se descubrió que la comunicación serie funcionaba bien para transmitir datos desde el
microcontrolador a un dispositivo externo como un ordenador, lo que permitía visualizar y registrar
los valores de tensión y otros datos obtenidos durante la práctica.

En conclusión, los datos y observaciones recogidos durante las prácticas de laboratorio confirmaron
el correcto funcionamiento de los puntos de entrada y salida analíticos, la técnica PWM y la
comunicación serie. Estos hallazgos apoyaron los conceptos teóricos estudiados e ilustraron cómo
pueden ser utilizados para el control y monitoreo de sistemas electrónicos.

Otro resultado significativo es la capacidad de regular el brillo de los LED mediante la tecnología
PWM. Esto permite ajustar con precisión y delicadeza la luminosidad de los LEDs, lo que resulta útil
en aplicaciones donde se requiere variar la intensidad de la iluminación.

10. Conclusiones y Recomendaciones

10.1. Conclusiones

 Las prácticas de laboratorio permitieron adquirir conocimientos prácticos sobre el


funcionamiento de los puntos de entrada y salida analíticos, la aplicación de la técnica de
modulación por ancho de pulsos (PWM) y la comunicación serie en microcontroladores. Se
comprendió cómo leer y procesar señales analíticas, ajustar el brillo de los LED y establecer
comunicación con dispositivos externos.
 Se confirmó la importancia de investigar y revisar la documentación del
microcontrolador antes de realizar la práctica. Esto permitió comprender las capacidades y
limitaciones del microcontrolador y garantizar una programación y un diseño adecuados.

 Los resultados obtenidos en la práctica demostraron la aplicabilidad y eficacia de los


conceptos teóricos investigados. Fue posible lograr un control preciso de las ejecuciones
analíticas, variaciones sutiles de la intensidad luminosa y una comunicación fiable.

10.2. Recomendaciones

 Las prácticas de laboratorio permitieron adquirir conocimientos prácticos sobre el


funcionamiento de los puntos de entrada y salida analíticos, la aplicación de la técnica de
modulación por ancho de pulsos (PWM) y la comunicación serie en microcontroladores. Se
comprendió cómo leer y procesar señales analíticas, ajustar el brillo de los LED y establecer
comunicación con dispositivos externos.

 Se confirmó la importancia de investigar y revisar la documentación del microcontrolador


antes de realizar la práctica. Esto permitió comprender las capacidades y limitaciones del
microcontrolador y garantizar una programación y un diseño adecuados.

 Los resultados obtenidos en la práctica demostraron la aplicabilidad y eficacia de los


conceptos teóricos investigados. Fue posible lograr un control preciso de las ejecuciones
analíticas, variaciones sutiles de la intensidad luminosa y una comunicación fiable.

11. Bibliografía y/o Linkografia.

 Arduino.cl. (s.f.). ¿Qué es Arduino? Recuperado el 21 de abril de 2023, de


https://arduino.cl/que-es-arduino/

 Arduino.cl. (s. f.). Programación. Recuperado de https://arduino.cl/programacion/

 Aprendiendo Arduino. (2017, enero 23). Programación Arduino (5) [Entrada de blog].
Recuperado el 21 de abril de 2023, de
https://aprendiendoarduino.wordpress.com/2017/01/23/programacion-arduino-5/

 Proyecto Arduino. (s.f.). Arduino Mega 2560. Recuperado el 21 de abril de 2023, de


https://proyectoarduino.com/arduino-mega-2560/

También podría gustarte