0% encontró este documento útil (0 votos)
18 vistas29 páginas

Sofware

El documento describe un proyecto académico sobre el control de un motor mediante un relé y un sensor de movimiento, utilizando programación en Arduino. Incluye ejemplos de código para encender y apagar dispositivos, así como la implementación de un sistema de semáforos sincronizados. Se destacan las aplicaciones prácticas y conclusiones sobre la eficiencia y limitaciones de los sistemas propuestos.

Cargado por

diegosama361
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)
18 vistas29 páginas

Sofware

El documento describe un proyecto académico sobre el control de un motor mediante un relé y un sensor de movimiento, utilizando programación en Arduino. Incluye ejemplos de código para encender y apagar dispositivos, así como la implementación de un sistema de semáforos sincronizados. Se destacan las aplicaciones prácticas y conclusiones sobre la eficiencia y limitaciones de los sistemas propuestos.

Cargado por

diegosama361
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

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]

También podría gustarte