Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Reporte Practica 4

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 19

Universidad Autónoma del Estado de México

Facultad de Ingeniería

SISTEMAS EMBEBIDOS

“REPORTE PRACTICA 4 MANEJO DE MOTOR


DE CD CON SENSORES TOUCH DEL ESP32”

Profesor:
Dr. en C.I.E. Jaime García García
Grupo: CO2

Integrantes del equipo:


Jocelyn Cuevas Velázquez
Cid Emmanuel Esquivel González
Diego Liberato Jury
Toluca, México a 4 de septiembre de 2023
INTRODUCCIÓN
El control y manejo de motores de corriente directa (CD) es esencial en muchas
aplicaciones de electrónica y robótica. En este contexto, el módulo L298 se
convierte en una herramienta fundamental. El objetivo de esta práctica es utilizar un
microcontrolador ESP32 para controlar un motor de corriente directa (CD) mediante
el módulo L298. Además, se pretende implementar una interfaz de usuario
utilizando un display LCD para mostrar el estado del motor, es decir, si está girando
hacia la izquierda, hacia la derecha o si se encuentra detenido.

El controlador L298 es un dispositivo ampliamente utilizado para el control de


motores CD, ya que cuenta con dos puentes H integrados que permiten la inversión
del sentido de giro del motor y la regulación de su velocidad. Este componente
también incluye un circuito de control digital que facilita la comunicación y la interfaz
con un microcontrolador, como el ESP32 en nuestro caso.

Para llevar a cabo esta práctica, es fundamental realizar un trabajo previo de


investigación sobre el controlador L298. Esto implica conocer su funcionamiento, su
tabla de verdad y las terminales de conexión del módulo L298. Esto servirá como
base para comprender cómo utilizar este controlador en conjunto con el ESP32 y
cómo programar el microcontrolador para controlar el motor de manera efectiva.

En este contexto, la programación del ESP32 desempeña un papel crucial. El código


debe ser diseñado de tal manera que pueda enviar señales al módulo L298 para
controlar la dirección de giro y la velocidad del motor. Además, se busca integrar un
display LCD para proporcionar retroalimentación visual al usuario, mostrando
claramente si el motor está girando hacia la izquierda, hacia la derecha o si se
encuentra detenido.
DESARROLLO

Se realizará la practica solicitando los siguientes materiales al laboratorio:

• 1 ESP32
• 4 Interruptores touch
• 1 LCD de 16X2 con I2C
• 1 Pinzas de corte
• 1 Pinzas de punta
• 1 Protoboard
• 1 Modulo L298
• 1 Fuente

TRABAJO PREVIO

1.- Busque información técnica del controlador L298.

La información técnica completa se puede encontrar en el siguiente link:

https://rambal.com/drivers-control-motores/866-driver-l298n.html

2.- Busque la tabla de verdad del controlador L298

3.- Investigue las terminales de conexión del módulo L298


4.- Modificar el programa que se envía como anexo en la práctica, para que
envíe mensajes en un display LCD para que indique en display si gira a la
izquierda o derecha o el motor se encuentra detenido, realice los programas
en C en el IDE de Arduino.

Código realizado:

#include <LiquidCrystal.h>

const int ledPin = 5; // corresponde a GPIO5


const int freq = 5000;
const int ledChannel = 0;
const int resolution = 8;

int velocidad = 0;
int sensorT0 = 0;
int sensorT3 = 0;
int sensorT4 = 0;
int sensorT7 = 0;

LiquidCrystal lcd(0); // Inicializa el LCD en el pin GPIO0 del ESP32

void setup() {
lcd.begin(16, 2); // Inicializa el LCD con 16 columnas y 2 filas
lcd.setCursor(0, 0); // Establece la posición del cursor en la primera línea
lcd.print("Motor Detenido"); // Muestra el mensaje inicial en el LCD

ledcSetup(ledChannel, freq, resolution);


ledcAttachPin(ledPin, ledChannel);
pinMode(16, OUTPUT); // Led Rojo
pinMode(17, OUTPUT); // Led Rojo
}

void loop() {
sensorT0 = touchRead(T0);
sensorT3 = touchRead(T3);
sensorT4 = touchRead(T4);
sensorT7 = touchRead(T7);

if (sensorT4 < 20 && sensorT7 < 20) {


digitalWrite(16, LOW);
digitalWrite(17, LOW);
lcd.setCursor(0, 1);
lcd.print("Motor Detenido");
delay(50);
} else {
if (sensorT4 < 20) {
digitalWrite(16, HIGH);
digitalWrite(17, LOW);
lcd.setCursor(0, 1);
lcd.print("Girando a la Izq.");
delay(100);
}
if (sensorT7 < 20) {
digitalWrite(16, LOW);
digitalWrite(17, HIGH);
lcd.setCursor(0, 1);
lcd.print("Girando a la Der.");
delay(100);
}
if (sensorT0 < 20 && sensorT0 != 0) {
velocidad = velocidad + 5;
if (velocidad >= 255) {
velocidad = 255;
}
}
if (sensorT3 < 20 && sensorT3 != 0) {
velocidad = velocidad - 5;
if (velocidad <= 0) {
velocidad = 0;
}
}
}

ledcWrite(ledChannel, velocidad);
delay(100);
}
1.- Arme el circuito de figura 4.1
.

Figura 4.1 Control PWM para motor de CD

Evidencia:
2.- Cargue el programa que se encuentra en la tabla 4.1, para probar el PWM y
controlar la velocidad, por medio de los sensores touch.

Tabla 4.1

//manejo de entradas y salidas con PWM


//
const int ledPin = 5; // corresponde a GPIO5
// setting PWM properties
const int freq = 5000;
const int ledChannel = 0;
const int resolution = 8;

int velocidad = 0;
int sensorT0 = 0;
int sensorT3 = 0;
int sensorT4 = 0;
int sensorT7 = 0;

void setup() {
//Serial.begin(115200);
// configure LED PWM functionalitites
ledcSetup(ledChannel, freq, resolution);

// attach the channel to the GPIO to be controlled


ledcAttachPin(ledPin, ledChannel);
pinMode(16, OUTPUT); // Led Rojo
pinMode(17, OUTPUT); // Led Rojo
}

void loop() {
sensorT0 = touchRead(T0);
sensorT3 = touchRead(T3);
sensorT4 = touchRead(T4);
sensorT7 = touchRead(T7);
if (sensorT4 <20 && sensorT7 <20 ){
digitalWrite(16, LOW);
digitalWrite(17, LOW);
delay(50);
}
else{
if (sensorT4 <20){
digitalWrite(16, HIGH);
digitalWrite(17, LOW);
delay(100);
}
if (sensorT7 <20){
digitalWrite(16, LOW);
digitalWrite(17, HIGH);
delay(100);
}
if (sensorT0 < 20 and sensorT0 != 0) {
velocidad = velocidad + 5;
if (velocidad >= 255) {
velocidad = 255;
}
}
if (sensorT3 < 20 and sensorT3 != 0) {
velocidad = velocidad - 5;
if (velocidad <= 0) {
velocidad = 0;
}
}
}
//Serial.println("T3=" + String(sensorT3) + " T0=" + String(sensorT0) + "
velocidad=" + String(velocidad));

ledcWrite(ledChannel, velocidad);

//digitalWrite(17, digitalRead(16));

delay(100);
}

Evidencia:

3.- Compruebe el funcionamiento del circuito de la figura 4.1.


Evidencia:
URL de video:

https://alumnouaemex-
my.sharepoint.com/:v:/g/personal/jcuevasv001_alumno_uaemex_mx/EcYN1EhO6
3ZFhjxYoYHOEvMBBFZyw35mBMQ53m2S5mcwPA?nav=eyJyZWZlcnJhbEluZm8
iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWx
BcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbF
ZpZXciOiJNeUZpbGVzTGlua0RpcmVjdCJ9fQ&e=Rcne9R

4.- Anexe el archivo comprimido “robojax_ESP-L298N-DC-Motor_library” a las


librerías de Arduino y compruebe el funcionamiento de uno de los ejemplos para
controlar un motor de CD por wifi.

Evidencias:
Instalación de controlador para USB CP2102:

Instalación de librería:
Circuito construido:
Ejemplo cargado:
Conexión a red wi-fi:

Interfaz con dirección IP obtenida:


URL de video:

https://alumnouaemex-
my.sharepoint.com/:v:/g/personal/jcuevasv001_alumno_uaemex_mx/EbvspBBM6ll
Bk-g7qKoy8ZMB3xRKNE0-
VZPzaa3t4Pwh5w?nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPb
mVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJl
ZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0Rp
cmVjdCJ9fQ&e=hV7VoI
COMENTARIOS

Jocelyn: Esta practica fue muy interesante, ya que podíamos controlar la velocidad
y el sentido del movimiento de un motor por medio de sensores táctiles e incluso
por medio de wi-fi. El realizar esta práctica nos permitió conocer el funcionamiento
de un L298 y sus conexiones, así como familiarizarnos más con la programación de
un ESP32.

Diego: Fue una excelente manera de integrar conceptos de electrónica,


programación y control de motores en este proyecto. La práctica proporciona una
sólida base teórica al exigir investigar el controlador L298 y sus características.
Además, el incorporar un display LCD para mostrar el estado del motor, se agrega
un elemento de interacción visual que enriquece la experiencia del usuario (no
conseguido por falta del display).

Cid: Esta práctica proporcionó una valiosa experiencia en la integración de


componentes, programación de microcontroladores y control de motores, lo que es
esencial en el campo de la electrónica y la automatización. Además, destacó la
importancia de la investigación previa y la resolución de problemas en proyectos
técnicos. El código desempeñó un papel crucial al enviar señales al controlador
L298 para controlar la dirección y velocidad del motor.

La práctica resultó muy interesante al permitirnos controlar un motor con sensores


táctiles y, en algunos casos, a través de Wi-Fi. A través de esta experiencia, pudimos
comprender mejor el funcionamiento del controlador L298, sus conexiones y
mejorar nuestras habilidades de programación en ESP32. También reconocemos el
valor añadido de un display LCD (que por falta de material no se implementó) para
proporcionar una retroalimentación visual completa.
REFERENCIAS

• Rambal. (s.f.). Rambal Automatización y robótica. Obtenido de Driver L298N


Puente H: https://rambal.com/drivers-control-motores/866-driver-l298n.html

También podría gustarte