Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CÓDIGO C33529
LABORATORIO N° 15, 16
1.
2.
Alumno (os):
3.
4.
Grupo (mesa) : Profesor: Nota:
Ing. Juan José Mamani R.
Semestre : 1
Fecha de entrega : Hora:
ELABORACION DE ATS :
ANALISIS DE TRABAJO SEGURO (ATS)
FECHA
TAREA: Lab. 15, 16 – Desarrollo e Implementación de control de motor DC usando Arduino. DIA MES AÑO
FIRMA
DOCENTE: Ing. TRABAJO
TALLER SESION Nº
OTROS
PASOS DE LA TAREA RIESGOS MEDIDAS DE CONTROL
(ESPECIFICAR PARA CADA
CASO)
1
2
3
4
5
6
7
8
9
10
11
12
Lab. 15, 16 – Desarrollo e Implementación de control de motor DC Nro. DD-107
usando Arduino. Página 4
I. OBJETIVOS:
Implementar y diseñar el desarrollo de una aplicación electrónica propuesta usando Arduino UNO o
MEGA2560. Este proyecto debe incluir la mayoría de recursos de hardware de libre elección (pantalla LCD,
display 7 segmentos, pulsadores, actuadores, sensores, etc.) utilizados hasta ahora, así como también los
recursos de software del IDE Arduino.
Programar, simular e implementar un circuito de control de velocidad de un motor DC.
IV. PROCEDIMIENTO
Diseñar, Simular e implementar un circuito de control de velocidad de Motor DC con inversión de giro.
a. Un pulsador (P1) para Marcha de motor DC, un pulsador (P2) para Detener motor DC y un indicador led
de color verde (LED 1) – “Indicador de Marcha de Motor DC” y un indicador led de color rojo (LED 2) –
“Indicador de Motor DC - Detenido”.
b. Un pulsador (P3) para cambiar el sentido de giro del motor DC y un indicador led de color verde (LED 3)
para indicar Forward/Adelante y un indicador led de color rojo (LED 4) para indicar Reverse/Atrás.
c. Las velocidades de giro del motor DC deben de ser de 0%, 20%, 40%, 60%, 80% y 100%, donde se
mostrarán en una pantalla LCD 16x2. NOTA: La pantalla LCD 16x2 puede controlarlo ya sea por el puerto
de comunicación I2C o controlada por el puerto serie – Modo Convencional.
d. Un pulsador (P4) para aumentar la velocidad de giro del motor DC y un pulsador (P5) para disminuir la
velocidad de giro del motor DC. Cada vez que se pulse P4 la velocidad irá subiendo desde la velocidad
0% al 100% y cada vez que se pulse el pulsador (P5) ira disminuyendo la velocidad del motor DC. NOTA:
En caso de no considerar los pulsadores P4 y P5 para el control de la velocidad del motor DC puede
realizarlo haciendo uso de un potenciómetro.
e. Para el control de cada uno de los pulsadores debe de emplear funciones de programa.
f. Para la etapa de potencia de control del motor DC debe de emplear un circuito electrónico haciendo uso
de un transistor BJT o un C.I. Driver de Motor L293D.
NOTA: Para el desarrollo del software se evaluará la complejidad del código de programa a desarrollar. Debe
de emplear recursos internos de Arduino como Memorias EEPROM, Interrupciones Externas, Interrupción
Timer 1, PWM, Comunicación Serial Síncrona, etc. En base a las consideraciones básicas mencionadas
anteriormente cada grupo esta en libertad de adicionar otras mejoras adicionales como accionar el control
para 2 motores DC, comunicación I2c, Implementar un menú de opciones de control usando máquinas de
estado, etc. que servirán para mejorar su evaluación final.
Lab. 15, 16 – Desarrollo e Implementación de control de motor DC Nro. DD-107
usando Arduino. Página 5
Fundamento Teórico
En resumen, el código controla un sistema de advertencia de proximidad utilizando un
sensor ultrasónico, una matriz de LEDs y un zumbador, con retroalimentación visual y
auditiva. A continuación, le mostrare cada función que se empleó en el código
Configuración Inicial:
Se inicializan los pines para el sensor ultrasónico, el zumbador, la matriz de LEDs y el LCD.
Se configuran parámetros como el rango de alerta (ALERTA), el rango total (RANGO) y la
intensidad del zumbador (INTENSIDAD).
Bucle Principal (loop()):
Pseudocodigo
byte ledPatterns[] = {
B11111111,
B01111111,
B00111111,
B00011111,
B00001111,
B00000111,
B00000011,
B00000001,
B00000000
};
lcd.print("Distancia:");
}
// Bucle principal
void loop() {
measureDistance(); // Medir distancia con el sensor ultrasónico
displayDistance(); // Mostrar distancia en el LCD
updateLEDs(DISTANCIA); // Actualizar LEDs según la distancia
handleBuzzer(); // Controlar el zumbador según la distancia
}
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
} else {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, B00000000);
digitalWrite(latchPin, HIGH);
}
}
delay(450);
lcd.setCursor(0, 0);
if (mostrarAlerta) {
lcd.print("!!CUIDADO!!");
} else {
lcd.print("Distancia: ");
}
}
https://youtu.be/v-CFv9_TrvU
https://youtu.be/QHY2ZgSJpeY
Observaciones:
Manejo del Buzzer: El zumbador se activa cuando la distancia está dentro del rango de
alerta y se apaga después de un tiempo si la distancia está en el rango normal.
Estructuración del Código: Se utiliza una estructura modular con funciones separadas para
diferentes tareas, lo que facilita la comprensión y mantenimiento del código.
Conclusiones:
Posible Mejora: Se podría mejorar permitiendo al usuario cambiar las unidades de medida
(por ejemplo, de centímetros a metros) y ajustar los umbrales de alerta según sus
necesidades.
Estas observaciones y conclusiones proporcionan una visión general del código y sugieren
áreas donde se puede mejorar o personalizar según los requisitos específicos del usuario.