0% encontró este documento útil (0 votos)
20 vistas3 páginas

Informe Practica Motor

Cargado por

mangane.dious23
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)
20 vistas3 páginas

Informe Practica Motor

Cargado por

mangane.dious23
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

MÓDULO: INTEGRACIÓN DE SISTEMAS DE AUTOMATIZACIÓN INDUSTRIAL CURSO: 2024/2025

ACTIVIDAD: ISAI_AI3: CONTROL MOTOR DE CORRIENTE CONTINUA (30%)


AUTOR/AUTORES: Ousmane Mangane
Nombre del profesor/es: Rubén Acerete Halli

TRABAJO A REALIZAR:

Implementar el control de un motor de corriente continua. Mediante un potenciómetro, se debe poder


regular la velocidad y la dirección del motor. Con el potenciómetro en uno de los extremos, el motor girará
en sentido horario a máxima velocidad. Con el potenciómetro en el otro extremo, el motor girará a máxima
velocidad en sentido antihorario. Si el potenciómetro está en el centro el motor permanecerá parado. En el
resto del recorrido variará de forma lineal con la posición (ángulo). Usar una frecuencia de PWM de 20Hz
y una precisión del ADC de X bits. Usar un driver Mini L298N y un motor de continua de baja corriente.

DESCRIPCIÓN DE LA FUNCIONALIDAD IMPLEMENTADA NO ESPECIFICADA EN EL


ENUNCIADO
La resolución del ADC es de 11 y la resolución de la PWM es 10.

Página 1 de 3
CÓDIGO IMPLEMENTADO

#define TURN_LEFT 18
#define TURN_RIGH 19
#define POTENCIOMETER_AI 34

#define BIT_NUMBER 10
#define PWM_FRECUENCY 20

#define M_VALUE 0.99951148


#define N_VALUE -1023

#define ANALOG_RESOLUTION 11

#define MIN_PWM_VALUE -250


#define MAX_PWM_VALUE 250

void setup() {

[Link](115200);
pinMode(POTENCIOMETER_AI,INPUT);
analogReadResolution(ANALOG_RESOLUTION);
ledcAttach(TURN_RIGH, PWM_FRECUENCY, BIT_NUMBER);
ledcAttach(TURN_LEFT, PWM_FRECUENCY, BIT_NUMBER);

void loop() {

uint16_t adc_value = 0;
static int16_t pwm_value = 0;

adc_value = analogRead(POTENCIOMETER_AI);

pwm_value = int16_t(M_VALUE * float(adc_value) + N_VALUE);

if((pwm_value >= MIN_PWM_VALUE)&&(pwm_value <= MAX_PWM_VALUE)){


ledcWrite(TURN_RIGH, 0);
ledcWrite(TURN_LEFT, 0);
}else{

if(pwm_value >= MAX_PWM_VALUE){


ledcWrite(TURN_LEFT, 0);
ledcWrite(TURN_RIGH, pwm_value);
}
if(pwm_value <= MIN_PWM_VALUE){
ledcWrite(TURN_RIGH, 0);
ledcWrite(TURN_LEFT, -pwm_value);
}

}
}
Página 2 de 3
CONCLUSIÓN
En esta práctica se ha hecho uso de la función ledcAttach() para configurar los canales de la PWM. Se ha
usado la función ledcWrite() para poder asignar los valores de la PWM a un pin en concreto. Se ha usado la
función analogRead() para leer el valor del potenciómetro. Se ha usado la función analogReadResolution()
para asignar la resolución del ADC. Para realizar la conexión del motor con la placa esp32 se ha usado un
driver. Para poder calcular el valor de PWM se ha usado el cálculo de la ecuación de la recta.

En esta práctica he aprendido a usar la PWM. He aprendido a hacer la ecuación de la recta. He aprendido a
conectar un motor a un driver.

Página 3 de 3

También podría gustarte