🛠 Introducción al control de motores con PWM
Objectifs
Este tutorial le guía en la configuración del módulo PWM del HPM5100 para controlar la velocidad de un motor de corriente continua. Aprenderá a utilizar los 32 canales PWM disponibles y entenderá el principio de la modulación de ancho de pulso. Es una excelente introducción a las capacidades de gestión de motores del microcontrolador RISC-V.
Matériel nécessaire
- Tarjeta HPMicro HPM5100 (HPM5151).
- Un pequeño motor de CC (3V-6V) o un LED de alta potencia para simular la carga.
- Un transistor MOSFET o un controlador de motor para el aislamiento.
- Cables de conexión (Dupont).
- SDK HPM v1.13.0 instalado y cadena de herramientas RISC-V.
Étapes
``c pwm_config_t config = { .period = 20000, // Ejemplo de periodo .pulse = 10000, // 50% de ciclo de trabajo }; pwm_set_config(HPM_PWM1, &config); pwm_enable(HPM_PWM1, PWM_CHANNEL_0, true); ``
``c while(1) { for(int duty = 0; duty <= 100; duty+=5) { pwm_set_duty(HPM_PWM1, PWM_CHANNEL_0, duty, 100); delay_ms(100); } // Invertir dirección de variación si es necesario } ``
- Conexión de hardware : Conecte el pin de salida PWM del HPM5100 a la puerta (Gate) del transistor MOSFET. Conecte el drenaje del MOSFET al polo positivo del motor. La fuente del MOSFET va a Tierra (GND). El otro polo del motor va a la alimentación positiva externa. No olvide el diodo de rueda libre en paralelo con el motor.
- Configuración del proyecto : Abra su IDE (ej. VS Code con plugin HPM) y cree un nuevo proyecto basado en la plantilla
drivers/pwm. - Inicialización del PWM : En su código C, inicialice el periférico PWM. El HPM5100 tiene temporizadores sincronizados. Configure la frecuencia de conmutación (ej. 20 kHz para evitar ruido audible).
- Bucle principal : Modifique dinámicamente el valor de
pulsepara cambiar la velocidad. Use una variable que aumente y disminuya progresivamente. - Compilar y flashear : Compile el firmware con
makey flashee la tarjeta vía USB.
Vérification
Observe el motor. Debe arrancar lentamente, acelerar hasta su velocidad máxima y luego reducir la velocidad. Si usa un LED, debe iluminarse gradualmente sin parpadeo visible. Si está disponible, verifique con un osciloscopio que la señal sea cuadrada y estable a 20 kHz.
Pour aller plus loin
Explore funciones avanzadas como el modo complementario para puentes en H, o use FreeRTOS para crear una tarea de control de velocidad regulada por retroalimentación mediante los ADC de 16 bits integrados.