TECNOLÓGICO UNIVERSITARIO RUMIÑAHUI
CARRERA:
ELECTRICIDAD S2MQ-B
ASIGNATURA:
SOFTWARE APLICADO A LA ELECTRICIDAD
INTEGRANTES:
• CUICHAN ALEXIS
• MORENO CARLOS
• SIMBA IVAN
• SAMANIEGO DIEGO
• SUNTAXI JORGE
TEMA:
ENCENDIDO Y APAGADO DE UN MOTOR ACCIONADO POR UN RELE MEDIANTE
UN SENSOR DE MOVIMIENTO
ENCENDIDO Y APAGADO DE UN MOTOR ACCIONADO POR UN RELE
DOCENTE:
ING. Suarez Vinueza Rommel Eusebio
SANGOLQUÍ-ECUADOR
2024
Guía Práctica APP # 4
ENCENDIDO Y APAGADO DE UN MOTOR ACCIONADO POR UN RELE Y UN
SENSOR
Este código implementa un sistema sencillo para controlar un dispositivo, como un
foco o un LED, mediante un el movimiento de un un onjeto y el sensor se activa Se
utiliza una variable booleana (x) para alternar el estado del dispositivo cada vez que el
botón se presiona. En nuestro caso se utilizo para el accionamiento de un motor 120V.
Poner el código aquí
nt TRIG = 10; // trigger en pin 10
int ECO = 9; // echo en pin 9
int LED = 3; // LED en pin 3
int DURACION;
int DISTANCIA;
void setup()
{
pinMode(TRIG, OUTPUT); // trigger como salida
pinMode(ECO, INPUT); // echo como entrada
pinMode(LED, OUTPUT); // LED como salida
[Link](9600); // inicializacion de comunicacion serial a 9600 bps
void loop()
{
digitalWrite(TRIG, HIGH); // generacion del pulso a enviar
delay(1); // al pin conectado al trigger
digitalWrite(TRIG, LOW); // del sensor
DURACION = pulseIn(ECO, HIGH); // con funcion pulseIn se espera un pulso
// alto en Echo
DISTANCIA = DURACION / 58.2; // distancia medida en centimetros
[Link](DISTANCIA); // envio de valor de distancia por monitor serial
delay(200); // demora entre datos
if (DISTANCIA <= 10 && DISTANCIA >= 0){ // si distancia entre 0 y 20 cms.
digitalWrite(LED, HIGH); // enciende LED
delay(DISTANCIA * 10); // demora proporcional a la distancia
digitalWrite(LED, LOW); // apaga LED
}
}
Inicialización:
El pin 2 se configura como salida para controlar el relé o el LED.
El pin 3 se configura como entrada para leer el estado del botón pulsador.
La comunicación serial se inicializa a 9600 baudios para monitorear el estado del
botón.
Lectura del botón:
La función digitalRead(3) lee el estado del botón (0 o 1) y lo almacena en la variable
valor.
El estado del botón se imprime en el monitor serial para depuración o supervisión.
Cambio del estado:
Si el botón está presionado (valor == 1), la variable booleana x cambia de estado. Esto
significa que alterna entre true y false cada vez que se detecta una pulsación.
Control del dispositivo:
Si x es true, el pin 2 se pone en alto (HIGH), encendiendo el dispositivo conectado (por
ejemplo, un foco).
Si x es false, el pin 2 se pone en
bajo (LOW), apagando el dispositivo.
Retardos:
Un pequeño retardo de 1 ms entre lecturas del botón evita lecturas extremadamente
rápidas.
Otro retardo de 200 ms al final del bucle ayuda a estabilizar el sistema, aunque podría
causar problemas en la detección rápida de pulsaciones.
Conclusiones
Función general:
Este código proporciona un control básico de encendido y apagado mediante un
pulsador. Es ideal para aplicaciones simples, como controlar luces o relés en sistemas
domésticos.
Eficiencia:
El sistema cumple su propósito, aunque el manejo del botón es básico y puede ser
susceptible a rebotes mecánicos. Esto puede hacer que una pulsación genere
múltiples cambios de estado.
Aplicaciones prácticas:
Control de luces en un entorno doméstico.
Activación/desactivación de dispositivos mediante pulsadores simples.
Sistema básico de entrada/salida para proyectos educativos o de aprendizaje.
Figura 1. Simulador wokwi y circuito con codigo.
Figura 2. codigo en simulador wokwi.
Figura 3. codigo en Arduino software.
Figura . Circuito armado en
fisico.
Enlace de simulador, se abre directo sin cuentas.
Link: VIDEO
TÍTULO PRÁCTICA:
ENCENDIDO Y APAGADO DE UN MOTOR ACCIONADO POR UNA RELE CON
UNA SEÑAL ANÁLOGA (HC-SR04)
Análisis del código
Este programa implementa un sistema básico que usa el sensor ultrasónico HC-SR04
para medir distancias y controlar un motor o dispositivo conectado a través de un relé.
Los resultados de las mediciones se muestran en un display LCD utilizando
comunicación I2C.
Materiales:
Display LCd 1602+modulo i2c
Rele 5V.
Ardunio uno.
Sensor ultrasonico HC-SR04
Cables de conexión
Simulación:
Computador y simulador wokwi
Líneas de cógigo:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define TRIG_PIN 9
#define ECHO_PIN 10
#define RELAY_PIN 7
LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección del LCD 1602A
void setup() {
// Inicializar el LCD
[Link](16, 2);
[Link]("Iniciando...");
// Configurar pines
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(RELAY_PIN, OUTPUT);
// Inicializar el relé apagado
digitalWrite(RELAY_PIN, LOW);
delay(2000); // Esperar un poco para la inicialización
}
void loop() {
// Medir distancia con el HC-SR04
long duration, distance;
// Enviar el pulso al TRIG
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Leer el tiempo de regreso del ECO
duration = pulseIn(ECHO_PIN, HIGH);
// Calcular la distancia en cm
distance = duration * 0.0344 /
2;
// Mostrar la distancia en el LCD
[Link]();
[Link](0, 0);
[Link]("Distancia: ");
[Link](distance);
[Link](" cm");
// Encender o apagar el motor según la distancia
if (distance < 10) { // Si la distancia es menor a 10 cm
digitalWrite(RELAY_PIN, HIGH); // Activar el relé (motor encendido)
[Link](0, 1);
[Link]("MOTOR ENCIENDE ");
} else {
digitalWrite(RELAY_PIN, LOW); // Desactivar el relé (motor apagado)
[Link](0, 1);
[Link]("MOTOR APAGA ");
}
delay(500); // Esperar medio segundo antes de la siguiente lectura
}
Figura 1. Codigo en software de arduino en simulador [Link]
Figura 2. simulador
Figura 2. simulador
Análisis del código
Este programa implementa un sistema básico que usa el sensor ultrasónico HC-SR04
para medir distancias y controlar un motor o dispositivo conectado a través de un relé.
Los resultados de las mediciones se muestran en un display LCD utilizando
comunicación I2C. A continuación, se describen sus componentes principales:
Bibliotecas incluidas:
Wire.h: Maneja la comunicación I2C.
LiquidCrystal_I2C.h: Simplifica el manejo de displays LCD con interfaz I2C.
Asignación de pines:
TRIG_PIN y ECHO_PIN controlan el envío y recepción del pulso ultrasónico del sensor
HC-SR04.
RELAY_PIN permite activar o desactivar el relé conectado al motor u otro dispositivo.
Configuración inicial:
El LCD se configura para mostrar mensajes y valores medidos.
Se establecen los pines necesarios como entradas o salidas, y el relé comienza
apagado (LOW).
Medición de distancia:
El programa genera un pulso ultrasónico desde el TRIG_PIN y mide el tiempo de retorno
en el ECHO_PIN con pulseIn.
La distancia calculada se muestra en el LCD.
Control del relé:
Si la distancia medida es menor a 10 cm, el relé se activa (HIGH), lo que enciende el
dispositivo conectado. Si la distancia es mayor, el relé permanece apagado.
Interacción con el usuario:
El LCD actualiza constantemente la distancia medida y el estado del motor, con
intervalos de 500 ms entre lecturas.
Conclusiones
Función general:
El sistema es una solución sencilla que combina sensores, un actuador y una pantalla
para realizar un control automatizado basado en la proximidad.
Precisión:
El cálculo de distancia es funcional, aunque sería mejor con un manejo avanzado de
errores, como ignorar valores inusuales causados por interferencias o ruido.
Eficiencia:
Es adecuado para tareas básicas de automatización. No obstante, su precisión puede
verse afectada por factores externos, como el entorno o la reflectividad de los objetos.
Limitaciones:
El umbral de 10 cm está predefinido, lo que restringe su flexibilidad. Sería útil
reemplazarlo con un valor configurable.
Su dependencia del LCD limita su utilidad en entornos donde no haya supervisión
directa. Una mejora sería añadir un indicador sonoro o comunicación inalámbrica para
alertas.
Posibles aplicaciones:
Automatización de sistemas como riego.
Control de accesos (puertas automáticas o barreras).
Supervisión de niveles en depósitos.
TECNOLÓGICO
UNIVERSITARIO RUMIÑAHUI
TECNOLOGÍA EN ELECTRICIDAD
NIVEL:
SEGUNDO
MATERIA:
SOFTWARE APLICADO A LA ELECTRICIDAD
TEMA:
SEMANA 4 “SEMAFORO”
AUTOR:
GRUPO 3
Noviembre-2024
GUÍA PRACTICA SEMÁFORO
OBJETIVO GENERAL
Diseñar e implementar un sistema de control para dos semáforos sincronizados utilizando
Arduino.
INTRODUCCIÓN
Los semáforos son elementos esenciales en la gestión del tráfico urbano, ya que regulan el
flujo de vehículos y peatones en intersecciones, mejorando la seguridad y reduciendo la
congestión. En este contexto, el uso de plataformas como Arduino permite simular y diseñar
prototipos de sistemas de control de tráfico de forma accesible y eficiente. Arduino, un
microcontrolador ampliamente utilizado en proyectos educativos e industriales, facilita la
integración de componentes electrónicos y la programación de algoritmos, lo que lo convierte
en una herramienta ideal para este tipo de prácticas.
Este proyecto busca simular el funcionamiento de una intersección vial mediante la
implementación de dos semáforos sincronizados. Cada semáforo está compuesto por tres LEDs
que representan las luces verde, amarilla y roja, y su comportamiento está programado para
alternar de forma lógica entre los dos semáforos, replicando las fases de un cruce real. El
objetivo es garantizar que cuando un semáforo está en verde, el otro permanezca en rojo,
coordinando los ciclos de forma segura y ordenada.
A través de esta práctica, se exploran conceptos clave como la programación en Arduino, el
uso de pines digitales, y la gestión de temporización mediante funciones como delay().. Este
ejercicio, aunque simple, sienta las bases para el desarrollo de sistemas más complejos, como
los sistemas de tráfico inteligentes.
PRESENTACIÓN DEL PROBLEMA
Figura 0.1 Esquema del problema
ACTIVIDADES DE LA PRACTICA
DEFINIR LA PROGRAMACIÓN DENTRO DEL PROGRAMA ARDUINO IDE,
PARA QUE SE ENCIENDA Y SE APAGUE EL LED.
// Declaración de los pines para el Semáforo 1
const int rojo1 = 2; // LED rojo del semáforo 1 conectado al pin 2
const int amarillo1 = 3; // LED amarillo del semáforo 1 conectado al pin 3
const int verde1 = 4; // LED verde del semáforo 1 conectado al pin 4
// Declaración de los pines para el Semáforo 2
const int rojo2 = 5; // LED rojo del semáforo 2 conectado al pin 5
const int amarillo2 = 6; // LED amarillo del semáforo 2 conectado al pin 6
const int verde2 = 7; // LED verde del semáforo 2 conectado al pin 7
void setup() {
// Configuración de los pines como salida
pinMode(rojo1, OUTPUT);
pinMode(amarillo1, OUTPUT);
pinMode(verde1, OUTPUT);
pinMode(rojo2, OUTPUT);
pinMode(amarillo2, OUTPUT);
pinMode(verde2, OUTPUT);
void loop() {
// Ciclo del semáforo 1 en verde y semáforo 2 en rojo
digitalWrite(verde1, HIGH); // Enciende el LED verde del semáforo 1
digitalWrite(rojo2, HIGH); // Enciende el LED rojo del semáforo 2
delay(5000); // Mantén esta situación durante 5 segundos
// Cambia el semáforo 1 a amarillo
digitalWrite(verde1, LOW); // Apaga el LED verde del semáforo 1
digitalWrite(amarillo1, HIGH); // Enciende el LED amarillo del semáforo 1
delay(2000); // Mantén esta situación durante 2 segundos
// Cambia el semáforo 1 a rojo y el semáforo 2 a verde
digitalWrite(amarillo1, LOW); // Apaga el LED amarillo del semáforo 1
digitalWrite(rojo1, HIGH); // Enciende el LED rojo del semáforo 1
digitalWrite(rojo2, LOW); // Apaga el LED rojo del semáforo 2
digitalWrite(verde2, HIGH); // Enciende el LED verde del semáforo 2
delay(5000); // Mantén esta situación durante 5 segundos
// Cambia el semáforo 2 a amarillo
digitalWrite(verde2, LOW); // Apaga el LED verde del semáforo 2
digitalWrite(amarillo2, HIGH); // Enciende el LED amarillo del semáforo 2
delay(2000); // Mantén esta situación durante 2 segundos
// Cambia el semáforo 2 a rojo para repetir el ciclo
digitalWrite(amarillo2, LOW); // Apaga el LED amarillo del semáforo 2
digitalWrite(rojo2, HIGH); // Enciende el LED rojo del semáforo 2
digitalWrite(rojo1, LOW); // Apaga el LED rojo del semáforo 1
digitalWrite(verde1, HIGH); // Enciende el LED verde del semáforo 1
// El ciclo se repite desde aquí
CARGAR EL PROGRAMA EN EL ARDUINO SELECCIONANDO EL PUERTO
COM.
Figura 0.2 Arduino IDE
MODELO EN
TINKERCARD
Figura 0.3 Modelo en TINKERCAD
EJECUCIÓN DE LA PROGRAMACIÓN
Figura 0.4 Estados de luces para cada semáforo
VERIFICAR EL FUNCIONAMIENTO Y ADJUNTAR FOTOGRAFÍAS.
Figura 0.5 Fotografías modelo real
CONCLUSIONES
La práctica demostró cómo un sistema sencillo basado en Arduino puede replicar
funcionalidades esenciales de los semáforos, destacando su aplicabilidad en proyectos de
control y automatización.
Se adquirieron conocimientos prácticos sobre el manejo de hardware básico, como LEDs y
resistencias, además de habilidades en programación estructurada utilizando la plataforma
Arduino.
Este ejercicio fortaleció las habilidades en programación utilizando Arduino, especialmente en
la configuración de pines digitales, bucles, y temporización mediante funciones como delay().
Además, la conexión de LEDs, resistencias y el diseño del circuito en protoboard permitió
aplicar conceptos de electrónica básica.
LINK TINKERCARD
[Link]
jofo?sharecode=g9usTRFelRbr0AdnyzbrynUVShCRp20i-M0EqWkrBNI
LINK VIDEO
[Link]