0% encontró este documento útil (0 votos)
24 vistas12 páginas

Des A Rollo Sensor Es

El proyecto consiste en la construcción de una maqueta de semáforos controlados por Arduino, donde se realizaron pruebas iniciales con LEDs y se utilizó Tinkercad para simular el circuito. Se programaron cuatro semáforos para gestionar el tráfico en un cruce, asegurando que no haya conflictos entre luces verdes. Además, se presenta un segundo proyecto de automatización de una puerta de garaje controlada por Bluetooth, que incluye la recolección de materiales, conexiones eléctricas y programación del Arduino para el control del servo motor.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
24 vistas12 páginas

Des A Rollo Sensor Es

El proyecto consiste en la construcción de una maqueta de semáforos controlados por Arduino, donde se realizaron pruebas iniciales con LEDs y se utilizó Tinkercad para simular el circuito. Se programaron cuatro semáforos para gestionar el tráfico en un cruce, asegurando que no haya conflictos entre luces verdes. Además, se presenta un segundo proyecto de automatización de una puerta de garaje controlada por Bluetooth, que incluye la recolección de materiales, conexiones eléctricas y programación del Arduino para el control del servo motor.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Desarrollo del Proyecto: Maqueta de Cuatro Semáforos

Lo primero que hicimos fue realizar algunas pruebas utilizando una protoboard,
con el objetivo de darnos una idea de cómo podríamos construir el semáforo.
Empezamos probando con un solo semáforo, conectando tres LEDs (rojo, amarillo
y verde), cada uno con su resistencia correspondiente, para entender cómo
controlar el encendido y apagado desde el Arduino. Esto nos permitió
familiarizarnos con el uso de los componentes y detectar errores comunes, como
la mala conexión de los pines o la ausencia de resistencias.

Además, utilizamos la aplicación Tinkercad para diseñar virtualmente la


disposición de los componentes electrónicos. Esta herramienta fue clave para
prever cómo organizaríamos los elementos en el montaje final, y nos permitió
simular el código sin necesidad de armar el circuito físico desde el principio.
Gracias a Tinkercad, pudimos validar el funcionamiento de nuestro código y
optimizar el uso de los pines del Arduino.

Durante el proceso de diseño e implementación, también nos apoyamos en


videos, diagramas e imágenes como referencia, lo que nos ayudó a comprender
cómo funcionan los sistemas de semáforos reales, así como las mejores prácticas
en el manejo de Arduino. Estos recursos visuales fueron útiles para aclarar dudas
sobre la lógica de sincronización entre los diferentes semáforos.

Para la parte de programación, utilizamos el entorno de desarrollo Arduino IDE,


donde escribimos el código que define la lógica del semáforo. Inicialmente
programamos un semáforo simple, pero luego escalamos el proyecto para incluir
cuatro semáforos, como los que se encuentran en un cruce de cuatro vías.

(Foto de prueba en tinkercad)


Los materiales que utilizamos fueron los siguientes:

• 1 placa Arduino UNO

• 1 protoboard grande (o varias pequeñas)

• 12 LEDs (4 semáforos × 3 colores: rojo, amarillo y verde)

• 12 resistencias de 220 ohmios

• Cables de conexión (jumpers)

• Cable USB para alimentar el Arduino

• PC con Arduino IDE instalado

• Aplicación Tinkercad (para simulación previa)

Montaje y Conexión

Cada semáforo se compone de 3 LEDs. Los LEDs se conectan en serie con resistencias
para evitar que se quemen. Los pines digitales del Arduino controlan el encendido y
apagado de cada LED. El montaje se hace en una protoboard, y se pueden usar cables
de diferentes colores para diferenciar cada semáforo y facilitar el cableado.

Pruebas y Validación

Una vez que conectamos todos los componentes, realizamos diversas pruebas para
asegurarnos de que la lógica de los semáforos funcionara correctamente. Verificamos
los tiempos de encendido, las transiciones entre colores y que nunca hubiera conflicto
entre calles (es decir, que dos calles no tuvieran luz verde al mismo tiempo).
El código utilizado para la maqueta fue el siguiente:

int semaforo1[] = {2, 3, 4}; // Norte (Rojo, Amarillo, Verde)

int semaforo2[] = {5, 6, 7}; // Sur (Rojo, Amarillo, Verde)

int semaforo3[] = {8, 9, 10}; // Este (Rojo, Amarillo, Verde)

int semaforo4[] = {11, 12, 13}; // Oeste (Rojo, Amarillo, Verde)

creamos cuatro arreglos que representan los pines asignados a cada semáforo. Cada
arreglo tiene tres elementos que corresponden a las luces: Rojo, Amarillo y Verde.

void setup() {

for (int i = 2; i <= 13; i++) {

pinMode(i, OUTPUT);

El ciclo for recorre todos los pines del 2 al 13 y los configura como salida (OUTPUT).
Esto permite que esos pines envíen señales eléctricas para controlar las luces

void loop() {

// Fase 1: Norte-Sur en Verde, Este-Oeste en Rojo

cambiarSemaforo(semaforo1, semaforo2, true);

cambiarSemaforo(semaforo3, semaforo4, false);

delay(4000); // 4s luz verde

cambiarAmarillo(semaforo1, semaforo2);

delay(2000); // 2s luz amarilla

cambiarSemaforo(semaforo1, semaforo2, false); // Norte-Sur en Rojo

delay(4000); // 4s luz roja

// Fase 2: Este-Oeste en Verde

cambiarSemaforo(semaforo3, semaforo4, true);

delay(4000); // 4s luz verde

cambiarAmarillo(semaforo3, semaforo4);
delay(2000); // 2s luz amarilla

cambiarSemaforo(semaforo3, semaforo4, false); // Este-Oeste en Rojo

delay(4000); // 4s luz roja

En este bucle se repiten las fases del semaforo

void cambiarSemaforo(int sem1[], int sem2[], bool estadoVerde) {

if (estadoVerde) {

// Luz verde encendida

digitalWrite(sem1[0], LOW); // Rojo apagado

digitalWrite(sem1[1], LOW); // Amarillo apagado

digitalWrite(sem1[2], HIGH); // Verde encendido

digitalWrite(sem2[0], LOW);

digitalWrite(sem2[1], LOW);

digitalWrite(sem2[2], HIGH);

} else {

// Luz roja encendida

digitalWrite(sem1[0], HIGH); // Rojo encendido

digitalWrite(sem1[1], LOW); // Amarillo apagado

digitalWrite(sem1[2], LOW); // Verde apagado

digitalWrite(sem2[0], HIGH);

digitalWrite(sem2[1], LOW);

digitalWrite(sem2[2], LOW);

Esta función se encarga de encender la luz verde o la luz roja en función del parámetro

void cambiarAmarillo(int sem1[], int sem2[]) {


digitalWrite(sem1[2], LOW); // Apagar luz verde

digitalWrite(sem1[1], HIGH); // Encender luz amarilla

digitalWrite(sem2[2], LOW);

digitalWrite(sem2[1], HIGH);

apaga la luz verde y enciende la luz amarilla, avisando a los conductores que pronto
deben

detenerse.

FIN DEL CODIGO

Una vez que terminamos nuestro código seguimos con la realización de nuestra
maqueta a la cual le agregamos 2 intersecciones viales, ya cuando terminamos de
realizar nuestra maqueta comenzamos a soldar todos los componentes y a empezar a
crear los semáforos y acomodarlos en la posición que le corresponden
Proyecto: Puerta de Garaje Automatizada Controlada por Bluetooth con Arduino

Este proyecto consiste en automatizar la apertura y cierre de una puerta de garaje


utilizando un servo motor controlado remotamente desde un dispositivo móvil,
mediante conexión Bluetooth. El sistema es de bajo costo, fácil implementación y
escalable. Es ideal para aprender sobre automatización, comunicación inalámbrica y
programación con Arduino.

Fase 1: Preparación y Recolección de Materiales

Antes de comenzar la construcción del sistema, es importante contar con todos los
materiales necesarios:

Materiales y Componentes Electrónicos

Cantidad Componente Función

1 Arduino UNO Microcontrolador principal del sistema

Módulo Bluetooth HC-


1 Comunicación inalámbrica con el celular
05

1 Servo motor SG90 Simula la apertura y cierre de la puerta

2 LEDs (rojo y verde) Indicadores visuales del sistema

2 Resistencias de 220Ω Protección para los LEDs

1 Protoboard Conexiones sin soldadura

1 Cable USB Para alimentar y programar el Arduino

Fuente externa Si se necesita más potencia para motores


1
(opcional) reales

Varios Cables macho-macho Conexiones entre los componentes


Fase 2: Conexiones del Circuito

Conecta los componentes a la placa Arduino según el siguiente esquema:

Conexiones Eléctricas

Módulo Bluetooth HC-05

• VCC → 5V

• GND → GND

• TX → Pin 10 de Arduino

• RX → Pin 11 de Arduino

Nota: El RX del HC-05 trabaja con 3.3V, por lo que se recomienda usar un divisor de
voltaje entre el Pin 11 del Arduino (5V) y el RX del módulo.

Servo Motor SG90

• Señal (cable naranja) → Pin 5

• VCC (cable rojo) → 5V

• GND (cable marrón) → GND

LEDs

• LED rojo → Pin 3 (con resistencia de 220Ω a GND)

• LED verde → Pin 4 (con resistencia de 220Ω a GND)


Fase 3: Programación del Arduino

A continuación, se muestra el código necesario para controlar el sistema mediante


comandos enviados por Bluetooth:

Código Arduino

#include <Servo.h>

#include <SoftwareSerial.h>

Servo myServo;

SoftwareSerial miBT(10,11);

char dato;

void setup() {

[Link](9600);

[Link]("listo");

[Link](9600);

pinMode(3,OUTPUT);

pinMode(4,OUTPUT);

[Link](5);

onOffLeds();

}
void loop() {

if([Link]()){

onOffLeds();

dato = [Link]();

if(dato == 'a')

abrirPuerta();

if(dato == 'c')

cerrarPuerta();

void onOffLeds(){

digitalWrite(3 ,HIGH);

digitalWrite(4,HIGH);

delay(100);

digitalWrite(3 ,LOW);

digitalWrite(4,LOW);

delay(100);

digitalWrite(3 ,HIGH);

digitalWrite(4,HIGH);

delay(100);

digitalWrite(3 ,LOW);

digitalWrite(4,LOW);

void cerrarPuerta(){

digitalWrite(3,LOW);
digitalWrite(4,HIGH);

int angulo = 0;

do {

angulo += 1;

[Link](angulo);

delay(50);

} while(angulo < 90);

digitalWrite(3 ,LOW);

digitalWrite(4,LOW);

void abrirPuerta(){

digitalWrite(3 ,HIGH);

digitalWrite(4,LOW);

int angulo = 90;

do {

angulo -= 1;

[Link](angulo);

delay(50);

} while(angulo > 0);

digitalWrite(3 ,LOW);

digitalWrite(4,LOW);

}
Explicación del Código

• Se crea una comunicación serial con el módulo Bluetooth usando SoftwareSerial.

• Se configura el servo motor y los pines de los LEDs como salida.

• Cuando se recibe un dato por Bluetooth, se evalúa su contenido:

o Si es 'o', se abre la puerta moviendo el servo de 90° a 0°.

o Si es 'c', se cierra la puerta moviéndolo de 0° a 90°.

• La función onOffLeds hace parpadear los LEDs cada vez que se recibe un comando
como confirmación visual.

Fase 4: Aplicación Móvil con App Inventor

Se desarrolla una aplicación sencilla usando la plataforma MIT App Inventor.

Interfaz de Usuario

• Botón para conectarse al dispositivo Bluetooth HC-05.

• Botón para abrir la puerta.

• Botón para cerrar la puerta.

• Etiquetas de estado que indican conexión y comandos enviados.

Lógica de Funcionamiento

• Al iniciar la aplicación, se escanean los dispositivos Bluetooth disponibles.

• Al seleccionar el módulo HC-05, se establece la conexión.

• Al presionar el botón "Abrir", se envía el carácter 'o' por Bluetooth.

• Al presionar el botón "Cerrar", se envía el carácter 'c'.

Componentes Usados

• ListPicker para elegir el módulo Bluetooth.

• BluetoothClient para manejar la conexión.

• Botones para enviar comandos.

• Etiquetas para mostrar mensajes de estado.


Fase 5: Funcionamiento del Sistema

1. Se enciende el sistema y se activa el módulo Bluetooth.

2. El usuario abre la aplicación móvil y se conecta al módulo HC-05.

3. La aplicación envía un comando al Arduino ('o' para abrir, 'c' para cerrar).

4. El Arduino recibe el dato, hace parpadear los LEDs y mueve el servo en


consecuencia.

5. El sistema queda en espera de un nuevo comando.

También podría gustarte