¡Bienvenidos al Centro de Educación para el Trabajo (CET)! Hoy vamos a explorar el fascinante mundo de la robótica y la programación a través de una actividad práctica y emocionante: controlar una puerta de garaje usando Arduino. En esta actividad, aprenderán cómo utilizar un servomotor, un botón y dos LEDs para simular el funcionamiento de una puerta de garaje automatizada.
Descripción de la Actividad
Objetivo: Desarrollar una comprensión básica de cómo se puede controlar un servomotor mediante un botón y cómo utilizar LEDs para indicar el estado de la puerta (abierta o cerrada).
Materiales Necesarios:
1 placa Arduino (UNO, Mega, etc.)
1 servomotor
1 botón pulsador
2 LEDs (uno rojo y uno verde)
2 resistencias (220 ohmios para los LEDs)
1 resistencia (10k ohmios para el botón)
Cables de conexión
Protoboard (placa de pruebas)
Software de Tinkercad (offline si es posible) para simulación
Pasos de la Actividad:
Introducción a los Componentes:
Arduino: Explicación básica sobre la placa y sus pines.
Servomotor: Cómo funciona y su uso en aplicaciones reales.
Botón Pulsador: Comportamiento del botón y su uso en circuitos.
LEDs: Uso de LEDs para indicar estados.
Diseño del Circuito:
Montaje en Protoboard:
Conectar el servomotor a los pines de la placa Arduino.
Conectar el botón pulsador con una resistencia pull-down al pin digital.
Conectar los LEDs (rojo y verde) a través de resistencias a los pines digitales de la placa Arduino.
Programación en Arduino:
Escribir el Código:
Control del servomotor para abrir y cerrar la puerta.
Encender el LED verde cuando la puerta esté abierta y el LED rojo cuando esté cerrada.
ACTIVIDAD EN CLASE
Simulación en Tinkercad:
Utilizar Tinkercad para simular el circuito y verificar el correcto funcionamiento del código.
Prueba y Ajustes:
Ejecutar el código y realizar pruebas del circuito.
Realizar ajustes si es necesario y solucionar posibles errores.
AYUDAS
#include <Servo.h> // Se incluye la librería Servo
#define Boton 6 // Se define el pin del botón
#define LedRojo 4 // Se define el pin del LED rojo
#define LedVerde 5 // Se define el pin del LED verde
boolean EstadoPuerta = 0; // Variable booleana para controlar el estado de la puerta
Servo motor; // Se crea un objeto de clase Servo para controlar el motor de la puerta
void setup() {
pinMode(LedRojo, OUTPUT); // Se configura el pin del LED rojo como salida
pinMode(LedVerde, OUTPUT); // Se configura el pin del LED verde como salida
pinMode(Boton, INPUT_PULLUP); // Se configura el pin del botón como entrada internamente pull-up
motor.attach(3); // Se asigna el pin 3 al servo motor
motor.write(9); // Se establece una posición inicial del motor
}
void loop() {
if (digitalRead(Boton) == 0) { // Si el botón es presionado
EstadoPuerta = !EstadoPuerta; // Se invierte el estado actual de la puerta
if (EstadoPuerta) { // Si la puerta debe abrirse
AbrirPuerta(); // Se llama a la función AbrirPuerta()
} else { // Si la puerta debe cerrarse
CerrarPuerta(); // Se llama a la función CerrarPuerta()
}
delay(200); // Se espera un tiempo para evitar rebote del botón
}
}
void AbrirPuerta() {
digitalWrite(LedVerde, LOW); // Se apaga el LED verde
digitalWrite(LedRojo, HIGH); // Se enciende el LED rojo
motor.write(9); // Se configura una posición inicial del motor
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(20); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(30); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(40); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(50); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(60); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(70); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(80); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(90); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(100); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(110); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(120); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(130); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
digitalWrite(LedVerde, HIGH); // Se enciende el LED verde
digitalWrite(LedRojo, LOW); // Se apaga el LED rojo
}
void CerrarPuerta() {
digitalWrite(LedVerde, LOW); // Se apaga el LED verde
digitalWrite(LedRojo, HIGH); // Se enciende el LED rojo
motor.write(130); // Se configura una posición inicial del motor
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(120); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(110); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(100); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(90); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(80); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(70); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(60); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(50); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(40); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(30); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(20); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
motor.write(10); // Se mueve el motor a una nueva posición
delay(500); // Se espera un tiempo para que se mueva el motor
digitalWrite(LedVerde, LOW); // Se apaga el LED verde
digitalWrite(LedRojo, HIGH); // Se enciende el LED rojo
}
Objetivo de la Tarea: Aplicar los conocimientos adquiridos para mejorar el proyecto de la puerta de garaje.
Descripción:
Mejorar el Proyecto:
Añadir un sensor de proximidad (por ejemplo, un sensor ultrasónico) para que la puerta se abra automáticamente cuando detecte la presencia de un objeto cercano.
Implementar un sistema de cierre automático que cierre la puerta después de un determinado periodo de tiempo si no se detecta ningún objeto.
Documentación:
Escribir un breve informe utilizando el formato IEEE " DESCARGAR FOMATO EN LA WEB" sobre las mejoras realizadas, incluyendo el nuevo código, un diagrama del circuito y una explicación de cómo funciona.
Preparación para la Presentación:
Preparar una breve presentación (puede ser escrita o visual) para compartir con la clase sobre el trabajo realizado y los desafíos encontrados.
FORMATO IEEE
LINK DE DESCARGA : https://normas-apa.com/descargar-plantilla-formato-ieee-word/
Título: Mejora del Proyecto de Control de Puerta de Garaje con Arduino
Autores: [Nombre del Estudiante], [Centro de Educación para el Trabajo (CET)]
Resumen
En esta tarea, se mejorará el proyecto de la puerta de garaje automatizada mediante la adición de un sensor de proximidad y la implementación de un sistema de cierre automático. Se documentarán los procedimientos, los componentes utilizados, el código y los resultados obtenidos.
I. Introducción
Esta sección debe proporcionar una breve descripción del proyecto original y el objetivo de la mejora.
Ejemplo:
El proyecto original consiste en controlar una puerta de garaje utilizando un servomotor, un botón y dos LEDs para indicar el estado de la puerta (abierta o cerrada). El objetivo de esta tarea es mejorar el proyecto añadiendo un sensor de proximidad para que la puerta se abra automáticamente cuando detecte la presencia de un objeto cercano y se cierre después de un periodo de tiempo si no se detecta ningún objeto.
II. Materiales y Métodos
Describa los materiales adicionales utilizados para la mejora y los métodos implementados.
Materiales Adicionales:
1 sensor ultrasónico (HC-SR04)
Cables de conexión
Protoboard (placa de pruebas)
Métodos:
Montaje del Sensor de Proximidad: Cómo conectar el sensor ultrasónico al Arduino.
Código Modificado: Presentar y explicar el nuevo código que incluye el control del sensor y el temporizador para el cierre automático.
Código de Ejemplo:
III. Resultados
En esta sección, describa los resultados obtenidos tras implementar las mejoras. Incluya imágenes o capturas de pantalla del circuito y el simulador, si es posible.
Ejemplo:
Tras implementar el sensor ultrasónico y el código modificado, el sistema de la puerta de garaje respondió correctamente a la proximidad de un objeto, abriendo y cerrando la puerta según lo esperado. Los LEDs indicaron correctamente el estado de la puerta.
IV. Discusión
Analice los resultados obtenidos y cualquier desafío encontrado durante el proceso. Comente sobre cómo se podrían realizar futuras mejoras.
Ejemplo:
El sistema funcionó como se esperaba, sin embargo, se observó que la sensibilidad del sensor ultrasónico podría mejorarse ajustando la lógica del código o utilizando un sensor más preciso. Futuras mejoras podrían incluir la integración de un módulo WiFi para control remoto.
V. Conclusiones
Resuma los logros y aprendizajes obtenidos con la mejora del proyecto.
Ejemplo:
La mejora del proyecto de la puerta de garaje automatizada permitió a los estudiantes aplicar conocimientos avanzados de programación y electrónica. La adición del sensor de proximidad y el sistema de cierre automático proporcionaron una funcionalidad más realista y útil al sistema.
VI. Referencias
Incluya cualquier referencia utilizada para la realización de esta actividad, como manuales de Arduino, documentación de Tinkercad, etc.
Ejemplo:
Arduino. "Getting Started with Arduino." Arduino Documentation.
Tinkercad. "Introduction to Tinkercad." Tinkercad Documentation.