0% encontró este documento útil (0 votos)
2 vistas1 página

T

El documento describe un flujo de control para un sistema de control de motor DC utilizando un encoder y un controlador PD en Arduino. Se establecen condiciones para la lectura de datos, el cálculo de la posición angular y el ajuste del setPoint, así como el control del motor basado en el error calculado. Además, se incluye la gestión de interrupciones y la comunicación serial para la adquisición de datos.

Cargado por

23030368
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)
2 vistas1 página

T

El documento describe un flujo de control para un sistema de control de motor DC utilizando un encoder y un controlador PD en Arduino. Se establecen condiciones para la lectura de datos, el cálculo de la posición angular y el ajuste del setPoint, así como el control del motor basado en el error calculado. Además, se incluye la gestión de interrupciones y la comunicación serial para la adquisición de datos.

Cargado por

23030368
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

INICIO

Configurar pines, Serial


y variables

Activar interrupción
Python del encoder
(Monitoreo y
adquisición de
datos) Imprimir encabezado
CSV

Arduino UNO Encoder


Driver Motor DC ¿Hay datos
(Controlador (Sensor de
(Puente H) (Planta) por Serial?
PD Digital) posición)
Si
No

Leer comando
¿Ya pasaron
20 ms?

Si No

Calcular posición Regresar al


angular: ciclo principal
posición = pulsos · 360
/ PPR
¿Comando
inicia con "s"?
Calcular error:
No Si
error = setPoint -
posición

Ignorar comando Actualizar setPoint

Calcular derivada del


error:
de = (error - error
anterior) / dt

Calcular control PD:


u = Kp·error + Kd·de

Limitar PWM entre 0 y


255

¿Error
menor a
1°?

No Si

¿u > 0? Detener motor

No Si

Girar en sentido negativo Girar en sentido positivo

Aplicar PWM al puente


H

Guardar error anterior


y tiempo actual

Enviar tiempo, setPoint


y posición por Serial

REGRESAR AL CICLO
PRINCIPAL

También podría gustarte