LAB 12 - Lenguaje de Programacion Arduino - Estructuras Decisivas
LAB 12 - Lenguaje de Programacion Arduino - Estructuras Decisivas
CÓDIGO C33529
LABORATORIO N° 12
I. OBJETIVOS:
Utilizar el IDE de Arduino usando el módulo de programación IOT Arduino.
Hacer uso del hardware de Arduino Mega 2560 (Atmega 2560) o Arduino UNO (Atmega 328p).
Realizar la implementación y desarrollo de cada uno de los programas propuestos en la guía de
laboratorio
III. PREPARACION:
El estudiante debe haber revisado la información de clase, el texto de la SESION 11 y haber leído la
parte introductoria de la guía de laboratorio.
V. PROCEDIMIENTO
REQUERIEMINTOS
a) Colocar imágenes como fotográficas, capturas de pantalla, etc., que corresponde a la
implementación de cada uno de los códigos de programa a desarrollar.
b) Colocar las imágenes de la implementación terminada indicando los nombres de los componentes
utilizados y su respectiva función.
c) Debe de colocar un comentario breve explicando el funcionamiento de cada línea de instrucción
o código de programa desarrollado en IDE Arduino
Desarrollar los siguientes códigos de programa haciendo usando del IDE de Arduino y modulo
IOT de Arduino.
Laboratorio Nro. 12: Lenguaje de programación Arduino – Nro. DD-107
Estructuras Decisivas Página 4
Para su evaluación:
Colocar evidencia del código de programa desarrollado con su respectivo comentario y
análisis.
Adjuntar el diagrama esquemático del circuito electrónico.
Colocar evidencia del código realizado e implementado haciendo uso del módulo IOT
Arduino. (Adjuntar imágenes fotografías y una captura de pantalla como evidencia)
// Definición de pines
const int ledPin1 = 12; // LED 01 conectado al pin 12
const int ledPin2 = 11; // LED 02 conectado al pin 11
// Configuración inicial
void setup() {
// Inicializar los pines como salidas
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
Serial.begin(9600);
// Bucle principal
void loop() {
// Verificar si hay datos disponibles en el puerto serie
if (Serial.available() > 0) {
// Leer el carácter ingresado
char input = Serial.read();
case '0':
// Parpadear LED 02 2 veces
Serial.println("Opción 04: Encendido");
for (int i = 0; i < 2; i++) {
digitalWrite(ledPin2, HIGH);
delay(500); // Esperar 500 ms
digitalWrite(ledPin2, LOW);
delay(500); // Esperar 500 ms
}
Serial.println("Opción 04: Terminado");
break;
default:
// Si se ingresa un carácter no reconocido
Serial.println("Opción no reconocida");
break;
}
}
}
Comentarios:
1. Configuración del Hardware:
o La explicación sobre cómo conectar los LEDs y las resistencias al Arduino MEGA
2560 fue clara y detallada. La visualización del esquema de conexiones, con los
LEDs conectados a los pines digitales 12 y 11 a través de resistencias de 220Ω,
hizo que el proceso de ensamblaje fuera más sencillo.
2. Código para el Arduino:
o El código proporcionado para el Arduino cubre todas las funcionalidades
requeridas, incluyendo el encendido y apagado de LEDs y la implementación del
parpadeo cíclico. Los comentarios en el código también ayudaron a entender la
lógica detrás de cada sección, facilitando su personalización y depuración.
3. Uso del Monitor Serie:
o La instrucción para utilizar el monitor serie de Tinkercad para enviar comandos al
Arduino fue útil. Esto permite una interacción dinámica con el circuito, observando
en tiempo real cómo responde a diferentes entradas.
4. Simulación en Tinkercad:
o Las indicaciones paso a paso sobre cómo configurar la simulación en Tinkercad
fueron muy completas. La guía incluyó todos los detalles necesarios, desde la
adición de componentes hasta la interacción con el monitor serie, asegurando una
experiencia de simulación sin problemas.
Laboratorio Nro. 12: Lenguaje de programación Arduino – Nro. DD-107
Estructuras Decisivas Página 7
Análisis de la Información:
La información proporcionada para configurar y simular un circuito en Tinkercad con un Arduino
MEGA 2560 cubre todos los aspectos fundamentales necesarios para llevar a cabo el proyecto
con éxito.
La interacción con el monitor serie es una parte esencial del proyecto, ya que permite
controlar el circuito sin necesidad de hardware adicional (como botones físicos). La
capacidad de enviar comandos desde la computadora y recibir retroalimentación en tiempo
real facilita la prueba y la verificación de las funcionalidades implementadas.
4. Simulación en Tinkercad:
El semáforo
Debemos conseguir que los tres leds se enciendan en bucle alternativamente, como si de un
semáforo se tratase, según esta secuencia: rojo (2 seg.), verde (2 seg.), amarillo (500 ms). Para ello,
conectaremos el ánodo del led rojo al PIN 13, el ánodo del led amarillo al PIN 11 y el ánodo del
led verde al PIN 09
Para su evaluación:
Colocar evidencia del código de programa desarrollado con su respectivo comentario y
análisis.
Adjuntar el diagrama esquemático del circuito electrónico.
Colocar evidencia del código realizado e implementado haciendo uso del módulo IOT
Arduino. (Adjuntar imágenes fotografías y una captura de pantalla como evidencia)
void loop()
{
digitalWrite(rojo,HIGH);
Laboratorio Nro. 12: Lenguaje de programación Arduino – Nro. DD-107
Estructuras Decisivas Página 9
delay(2000);//espera 2 segundos
digitalWrite(rojo,LOW);
delay(2000);//espera 2 segundos
digitalWrite(amarillo,HIGH);
delay(500);//espera 2 segundos
digitalWrite(amarillo,LOW);
delay(500);//espera 2 segundos
digitalWrite(verde,HIGH);
delay(2000);//espera 2 segundos
digitalWrite(verde,LOW);
delay(2000);//espera 2 segundos
}
Comentarios:
-Se pretende que el alumnado de esta etapa asimile los componentes básicos
de la electrónica, que les servirá por un lado la adquisición de competencias
básicas.
- Diodo Led (electroluminiscente): diodo que da luz al pasar la corriente en un
sentido (polarización directa), y no al contrario, de bajo consumo, se emplea
como elemento señalizador.
- Resistencia: se coloca en los circuitos eléctricos y electrónicos para limitar
la corriente que pasará a los demás componentes. Su valor vendrá dado por
una serie de anillos según un código de colores, según una tabla, en concreto
tenemos cuatro anillos, que se leerán según un orden. Estos indicarán su
valor, poder multiplicador y tolerancia
Análisis de la Información:
-La guía de conexión del hardware es precisa y fácil de seguir. La elección de resistencias de
220Ω para los LEDs es adecuada para limitar la corriente y proteger tanto los LEDs
- El código presentado está bien estructurado y comentado, lo que facilita su comprensión. Cada
caso en el switch corresponde a una funcionalidad específica (encender, apagar, parpadear), y el
uso de la función Serial.println proporciona retroalimentación clara en el monitor serie.
-La plataforma Tinkercad es ideal para simular proyectos de Arduino debido a su interfaz intuitiva
y la capacidad de emular tanto el hardware como el software. La guía detalla cómo agregar
componentes, configurar conexiones y cargar el código
Para su evaluación:
Laboratorio Nro. 12: Lenguaje de programación Arduino – Nro. DD-107
Estructuras Decisivas Página 10
void loop()
{
digitalWrite(verde,HIGH);
delay(1000);//espera 1 segundos
digitalWrite(verde,LOW);
delay(1000);//espera 1 segundos
digitalWrite(amarillo,HIGH);
delay(1000);//espera 1 segundos
digitalWrite(amarillo,LOW);
delay(1000);//espera 1 segundos
Laboratorio Nro. 12: Lenguaje de programación Arduino – Nro. DD-107
Estructuras Decisivas Página 11
digitalWrite(rojo,HIGH);
delay(1000);//espera 1 segundos
digitalWrite(rojo,LOW);
delay(1000);//espera 1 segundos
digitalWrite(verde,HIGH);
delay(900);//espera 0.9 segundos
digitalWrite(verde,LOW);
delay(900);//espera 0.9 segundos
digitalWrite(amarillo,HIGH);
delay(900);//espera 0.9 segundos
digitalWrite(amarillo,LOW);
delay(900);//espera 0.9 segundos
digitalWrite(rojo,HIGH);
delay(900);//espera 0.9 segundos
digitalWrite(rojo,LOW);
delay(900);//espera 2 segundos
digitalWrite(verde,HIGH);
delay(800);//espera 0.8 segundos
digitalWrite(verde,LOW);
delay(800);//espera 0.8 segundos
digitalWrite(amarillo,HIGH);
delay(800);//espera 0.8 segundos
digitalWrite(amarillo,LOW);
delay(800);//espera 0.8 segundos
digitalWrite(rojo,HIGH);
delay(800);//espera 0.8 segundos
digitalWrite(rojo,LOW);
delay(800);//espera 0.8 segundos
digitalWrite(verde,HIGH);
delay(700);//espera 0.7 segundos
digitalWrite(verde,LOW);
delay(700);//espera 0.7 segundos
digitalWrite(amarillo,HIGH);
delay(700);//espera 0.7 segundos
digitalWrite(amarillo,LOW);
delay(700);//espera 0.7 segundos
digitalWrite(rojo,HIGH);
delay(700);//espera 0.7 segundos
Laboratorio Nro. 12: Lenguaje de programación Arduino – Nro. DD-107
Estructuras Decisivas Página 12
digitalWrite(rojo,LOW);
delay(700);//espera 0.7 segundos
digitalWrite(verde,HIGH);
delay(600);//espera 0.6 segundos
digitalWrite(verde,LOW);
delay(600);//espera 0.6 segundos
digitalWrite(amarillo,HIGH);
delay(600);//espera 0.6 segundos
digitalWrite(amarillo,LOW);
delay(600);//espera 0.6 segundos
digitalWrite(rojo,HIGH);
delay(600);//espera 0.6 segundos
digitalWrite(rojo,LOW);
delay(600);//espera 0.6 segundos
digitalWrite(verde,HIGH);
delay(500);//espera 0.5 segundos
digitalWrite(verde,LOW);
delay(500);//espera 0.5 segundos
digitalWrite(amarillo,HIGH);
delay(500);//espera 0.5 segundos
digitalWrite(amarillo,LOW);
delay(500);//espera 0.5 segundos
digitalWrite(rojo,HIGH);
delay(500);//espera 0.5 segundos
digitalWrite(rojo,LOW);
delay(500);//espera 0.5 segundos
digitalWrite(verde,HIGH);
delay(400);//espera 0.4 segundos
digitalWrite(verde,LOW);
delay(400);//espera 0.4 segundos
digitalWrite(amarillo,HIGH);
delay(400);//espera 0.4 segundos
digitalWrite(amarillo,LOW);
delay(400);//espera 0.4 segundos
digitalWrite(rojo,HIGH);
delay(400);//espera 0.4 segundos
digitalWrite(rojo,LOW);
delay(400);//espera 0.4 segundos
digitalWrite(verde,HIGH);
Laboratorio Nro. 12: Lenguaje de programación Arduino – Nro. DD-107
Estructuras Decisivas Página 13
digitalWrite(verde,HIGH);
delay(200);//espera 0.2 segundos
digitalWrite(verde,LOW);
delay(200);//espera 0.2 segundos
digitalWrite(amarillo,HIGH);
delay(200);//espera 0.2 segundos
digitalWrite(amarillo,LOW);
delay(200);//espera 0.2 segundos
digitalWrite(rojo,HIGH);
delay(200);//espera 0.2 segundos
digitalWrite(rojo,LOW);
delay(200);//espera 0.2 segundos
digitalWrite(verde,HIGH);
delay(100);//espera 0.1 segundos
digitalWrite(verde,LOW);
delay(100);//espera 0.1 segundos
digitalWrite(amarillo,HIGH);
delay(100);//espera 0.1 segundos
digitalWrite(amarillo,LOW);
delay(100);//espera 0.1 segundos
digitalWrite(rojo,HIGH);
delay(100);//espera 0.1 segundos
digitalWrite(rojo,LOW);
delay(100);//espera 0.1 segundos
while(true){
digitalWrite(verde,HIGH);
delay(100);//espera 0.1 segundos
digitalWrite(verde,LOW);
Laboratorio Nro. 12: Lenguaje de programación Arduino – Nro. DD-107
Estructuras Decisivas Página 14
Comentarios:
- Diodo Led (electroluminiscente): diodo que da luz al pasar la corriente en un
sentido (polarización directa), y no al contrario, de bajo consumo, se emplea
como elemento señalizador.
- Resistencia: se coloca en los circuitos eléctricos y electrónicos para limitar
la corriente que pasará a los demás componentes. Su valor vendrá dado por
una serie de anillos según un código de colores, según una tabla, en concreto
tenemos cuatro anillos, que se leerán según un orden. Estos indicarán su
valor, poder multiplicador y tolerancia
-En este circuito se quiere realizar un bucle de luces led en el tiempo de vaya
haciendo más rápido el parpadeo de los leds
Análisis de la Información:
-La guía de conexión del hardware es precisa y fácil de seguir. La elección de resistencias de
220Ω para los LEDs es adecuada para limitar la corriente y proteger tanto los LEDs
- El código presentado está bien estructurado y comentado, lo que facilita su comprensión. Cada
caso en el switch corresponde a una funcionalidad específica (encender, apagar, parpadear), y el
uso de la función Serial.println proporciona retroalimentación clara en el monitor serie.
-La plataforma Tinkercad es ideal para simular proyectos de Arduino debido a su interfaz intuitiva
y la capacidad de emular tanto el hardware como el software. La guía detalla cómo agregar
componentes, configurar conexiones y cargar el código
Laboratorio Nro. 12: Lenguaje de programación Arduino – Nro. DD-107
Estructuras Decisivas Página 15
VI. OBSERVACIONES
Durante la implementación de los programas es fundamental asegurarse de que todos los componentes
estén correctamente conectados según el esquema electrónico.
Errores en la asignación de pines pueden causar fallos en los leds, como incorrectos encendidos o
apagados en los leds.
Los comentarios detallados en cada línea de código ayudan a entender mejor el funcionamiento del
programa.
El monitor serie es importante para verificar que las entradas se estén leyendo correctamente y que las
acciones se estén ejecutando según lo esperado.
Es importante ajustar estos retardos para asegurar que las luces del "semáforo" funcionen en los
tiempos correctos.
VII. CONCLUSIONES.
La planificación del cableado ha sido esencial para evitar errores de conexión que pueden provocar
fallas en el circuito.
La estructura del código como la utilización de comentarios, es fundamental para desarrollar
programas de Arduino que sean fáciles de entender y modificar.
El laboratorio demostró la importancia de los controles precisos de temporización y las secuencias de
leds, como la simulación de un semáforo.
La implementación de los retardos como la función delay ( ) fue efectiva para controlar las secuencias
de encendido y apagado de los LEDs.
Este laboratorio proporcionó una excelente oportunidad para aprender conceptos fundamentales de
programación en Arduino.