Montesdeoca.J ParpadeoSemáforoArduino MICRO
Montesdeoca.J ParpadeoSemáforoArduino MICRO
Montesdeoca.J ParpadeoSemáforoArduino MICRO
FACULTAD DE INGENIERÍA EN
CIENCIAS APLICADAS
ELECTRICIDAD
Fecha de realización
de la práctica: 2023 Abril 17 - 21
año mes día
2. Objetivo General.
3. Objetivos Específicos.
Comprender los principios básicos del funcionamiento de la plataforma Arduino Mega 2560 y
su entorno de programación (IDE).
Diseñar y construir un circuito en una protoboard que permita simular el encendido y apagado
de un diodo emisor de luz (LED) y, de luces en secuencia de luces, como una semáforo,
utilizando componentes electrónicos y Arduino Mega 2560.
Programar el Arduino Mega 2560 utilizando el lenguaje de programación de Arduino (basado
en C++) para controlar el encendido y apagado de los LED y la secuencia de un semáforo.
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á el encendido y apagado de un LED, además de
la simulación de un semáforo 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 los casos mencionados anteriormente 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.
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.3.1. 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.4. 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.
5. Trabajo Preparatorio.
El trabajo preparatorio para la realización de este taller práctico de laboratorio incluiría una serie de
tareas que permitirían a los estudiantes de la materia de Microcontroladores adquirir los
conocimientos necesarios para llevar a cabo la simulación de encendido y apagado de un LED y la
simulación y secuencia de un semáforo en una protoboard utilizando la plataforma Arduino Mega
2560.
En primer lugar, se requeriría una familiarización con la plataforma Arduino Mega 2560, su
funcionamiento, características, y herramientas de programación asociadas. Se recomienda la
consulta de documentación oficial, tutoriales y recursos en línea para adquirir estos conocimientos.
Posteriormente, se debería profundizar en los conceptos y principios físicos que fundamentan la
simulación de una baliza policial, tales como la secuencia de encendido y apagado de luces y el
control de LED mediante programación, así como en la utilización de componentes electrónicos como
resistencias y otros.
Finalmente, se debería realizar un diseño previo de dichos circuitos en una protoboard, y una
programación básica que permita el encendido y apagado secuencial de los LEDs los mismos.
Este diseño y programación previa permitirá ahorrar tiempo en la realización del taller práctico de
laboratorio y obtener mejores resultados.
6. Equipos y Materiales.
Arduino Mega 2560
Protoboard
USB tipo B
Cables dupond
Resistencias de 330 Ω
7. Datos y Observaciones.
/*
UNIVERSIDAD TÉCNICA DEL NORTE
CIELE
MICROCONTROLADORES
Joshua Steven Montesdeoca Montesdeoca
Parpadeo
17 de Abril de 2023
*/
//Definir Variables
int tiempo = 500; // variable que controla el tiempo de encendido y apagado de un
led
//Definir pines
const int pinLed = 7; // pin conectado al led
void setup() {
// configurar los pines
pinMode(pinLed,OUTPUT); // Configurar pin de salidad
void loop() {
// Ejecución continua
// Encender el led
digitalWrite(pinLed,HIGH);
// Pausa
delay(tiempo); // Tiempo que permanece encedido el led
// Apagar led
digitalWrite(pinLed,LOW);
// Pausa
delay(tiempo);
}
8.3. Código en IDE Arduino (parpadeo_2_sin_delay)
/*
UNIVERSIDAD TÉCNICA DEL NORTE
CIELE
MICROCONTROLADORES
Joshua Steven Montesdeoca Montesdeoca
Parpadeo sin delay
18 de Abril de 2023
*/
//declarar variables
bool estado = 0;
unsigned long tiempoA = 0; // "unsigned long" dulpica el número de bits y elimina el
signo
unsigned long tiempoB = 0;
int pausa = 300;
void setup() {
// configuración de hardware
pinMode(lRojo, OUTPUT);
//tomar el tiempo del procesador
tiempoA = millis(); //guardo los milisegundos que tiene el arduino encendido
void loop() {
// leer tiempo transcurrido
tiempoB = millis();
// verifico que se cumplio el tiempo requerido
if(tiempoB >= tiempoA + pausa)
{
estado = !estado;
digitalWrite(lRojo, estado);
tiempoA = tiempoB;
}
/*
UNIVERSIDAD TÉCNICA DEL NORTE
CIELE
MICROCONTROLADORES
Joshua Steven Montesdeoca Montesdeoca
Semaforo
18 de Abril de 2023
*/
//declarar variables
int tAmarillo = 500; // tiempo que permanece encendido la luz amarilla
int tRojo = 2000; // tiempo que permanece encendido la luz roja
int tVerde = 1500; // tiempo que permanece encendido la luz verde
//declarar pines
const int Lrojo = 2; //pin al que se conecta el led rojo
const int Lamarillo = 3; //pin al que se conecta el led amarillo
const int Lverde = 4; //pin al que se conecta el led verde
void setup() {
// configuración de hardware
// modo de funcionamiento de cada uno de los pines
pinMode(Lrojo, OUTPUT);
pinMode(Lamarillo, OUTPUT);
pinMode(Lverde, OUTPUT);
// parpadeo de encendido
bool estado =0;
for(int i = 0; i < 6; i++)
{
estado = !estado;
digitalWrite(Lamarillo, estado);
delay(200);
}
}
void loop() {
// secuencia semaforo
// encendido led rojo
digitalWrite(Lrojo, HIGH);
delay(tRojo);
// apagado led rojo
digitalWrite(Lrojo, LOW);
}
8.5. Esquemas y simulaciones en Fritzing
Figura 8. Montaje del circuito parpadeo sin delay y conexión con Arduino.
Figura 9. Montaje del circuito semáforo y conexión con Arduino.
Enlaces video
Parpadeo: parpadeo_1.mp4
Parpadeo sin delay: parpadeo_sin_delay_1.mp4
Semáforo: semáforo_1.mp4
9. Análisis de resultados
En este código, se está utilizando un bucle principal loop() para hacer parpadear LED rojos y azules
y un LED blanco. El LED blanco parpadea a intervalos regulares utilizando la función millis() y se
cambia su estado utilizando una variable booleana y la función digitalWrite(). Los LED rojos y azules
también parpadean alternadamente, utilizando un par de bucles anidados y las funciones
digitalWrite() y delay() para establecer el tiempo de encendido y apagado. Se utilizan arreglos para
los pines de los LED y se establecen como salidas en la función setup(). En general, este código es
una demostración simple de cómo controlar varios LED con un Arduino utilizando la función
digitalWrite() y los tiempos de retardo.
Se consiguió un resultado favorable al momento del cargar el código a la tarjeta de desarrollo Arduino
Mega 2560. El parpadeo LED y el semáforo tuvieron un correcto funcionamiento y cumplió con mis
expectativas.
10.2. Conclusiones
El buen uso de Arduino puede llevar a una mayor comprensión y habilidad en la electrónica
y la programación, lo que puede ser beneficioso tanto para la educación como para el
desarrollo profesional.
10.3. Recomendaciones
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/