Ajuste de Velocidad de Motor

0:55

A control scheme that uses a PWM range from 0 to 250 typically doesn’t connect a DC motor directly to a microcontroller output due to current and voltage limitations. You’ll need a motor driver stage along with additional protection and filtering components. Here’s a structured overview of the additional components you should consider:

Table


ComponenteFunciónLink
L293D Motor DriverControla la dirección y la velocidad del motor, proporcionando la interfaz de potencia necesaria entre el microcontrolador y el motor.L293D Motor Driver
Flyback Diode (ej. 1N4007)Protege el circuito de picos de tensión producidos por la inductancia del motor (back EMF) durante los cambios de corriente.1N4007
Decoupling Capacitor (por ejemplo, 100nF)Ayuda a filtrar ruido y estabiliza la alimentación del motor driver.100nF Capacitor
Notas adicionales:
  • Motor Driver: El L293D es una opción común. Si el motor requiere mayor corriente o voltaje, podrías considerar otra alternativa como el L298N.
  • Protección de Back EMF: Muchos controladores de motor, como el L293D, ya integran diodos de rueda libre internos. Sin embargo, si tu driver no los incluye, añade diodos externos (como un 1N4007).
  • Filtrado y Decoupling: Es recomendable colocar capacitores decoupling cerca del driver para reducir interferencias y garantizar una alimentación estable.
El siguiente código muestra cómo se podría implementar un control PWM con un rango de 0 a 250 (mapeando internamente a 0 a 255) para una interfaz de motor controlada vía driver:

Cpp


#define motor 3

int currentPWM = 0;
int targetPWM = 0;
int rampDelay = 20; // Tiempo de retardo para cada paso

void setup() {
  Serial.begin(9600);
  pinMode(motor, OUTPUT);
  digitalWrite(motor, LOW);
}

void loop() {
  // Si hay datos en la entrada serial se actualiza el valor objetivo
  if (Serial.available() > 0) {
    targetPWM = constrain(Serial.read(), 0, 250);
  }
  
  // Ajusta gradualmente el valor actual hacia el valor objetivo recibido
  if (currentPWM  targetPWM) {
    currentPWM--;
    analogWrite(motor, map(currentPWM, 0, 250, 0, 255));
    delay(rampDelay);
  }
}
Implementación en hardware:
  1. Conexionado del Motor Driver:
    Conecta las señales de control (PWM y dirección, si se requiere) desde el microcontrolador al controlador del motor (L293D).
    Asegúrate de conectar la alimentación adecuada tanto para el microcontrolador como para el motor (utilizando la fuente de alimentación recomendada para el motor y para el L293D).
    Recuerda conectar el GND en común entre la placa controladora y el driver.
  2. Componentes de Protección y Filtrado:
    Coloca capacitores decoupling cerca de la alimentación del motor driver para estabilizar la tensión.
    Añade diodos flyback si tu driver no dispone de ellos internamente.
Este conjunto de componentes y el código provisto permiten un control interactivo del motor, donde la velocidad varía de forma suave en función de la señal PWM recibida vía serial.
Component Recommendations
Motor Driver Selection
Protection and Filtering
407 days

To get started, talk to Flux or create a New Document.

Documents

    Documents are markdown text files which describe project goals, capture details, or even simulation outputs.

    Assets

    No assets added.

    Colossal Turquoise Jetpack

    Colossal Turquoise Jetpack thumbnail
    Welcome to your new project. Imagine what you can build here.

    Properties

    Properties describe core aspects of the project.

    Pricing & Availability

    Distributor

    Qty 1

    Controls