¿Cómo controlar la velocidad de un motor de corriente continua con el arduino

¿Necesita más control de su motor de corriente continua? Puede usar el boceto MotorControl para el Arduino para poner un poco de entrada en un motor de corriente continua para darle el control total del motor sobre la marcha.

El boceto MotorControl

Para obtener el control de la velocidad de su motor siempre que lo necesite, es necesario agregar un potenciómetro a su circuito.

Necesitas:

  • Un Arduino Uno

  • Un tablero

  • Un transistor

  • Un motor de corriente continua

  • Un diodo

  • A 10k resistencia variable ohm

  • A 2.2k resistor ohm

  • cables de salto

Encontrar un espacio en el tablero para colocar el potenciómetro. El pasador central del potenciómetro se conecta de nuevo a pin 9 utilizando un cable de salto, y los dos pasadores restantes están conectados a 5V en un lado y GND en el otro.

La 5V y GND pueden estar en cualquier lado, pero el cambio les invertir el valor que el potenciómetro envía a la Arduino. Aunque el potenciómetro usa la misma corriente y la tierra como el motor, tenga en cuenta que son circuitos separados que ambos se comunican a través de la Arduino.

Después de haber construido el circuito, abrir un nuevo boceto Arduino y guardarlo con otro nombre fácil de recordar, como myMotorControl. A continuación, escriba el siguiente código.

int potPin = A0int motorPin = 9-int potValue = 0-int motorValue = 0-nula setup () {Serial.begin (9600) -} void loop () {= potValue analogRead(PotPin) -motorValue = mapa(PotValue, 0, 1023, 0, 255) -analogWrite(MotorPin, motorValue) -Serial.print ("potenciómetro = " ) -Serial.print(PotValue) -Serial.print ("t motor = ") -Serial.println(MotorValue) -retrasar(2) -}

Tras introducir el boceto, guardarlo y haga clic en el botón Compile para poner de relieve los errores de sintaxis. .

Si el boceto se compila correctamente, haga clic en Cargar para cargar el boceto de su tablero. Cuando se hace subir, usted debería ser capaz de controlar su motor mediante el potenciómetro. Al girar el potenciómetro en una dirección hace que el motor para acelerar UP- convirtiéndose la otra manera hace que reducir la velocidad.

El desglose MotorControl Boceto

Este bosquejo es una variación en el boceto AnalogInOutSerial y funciona exactamente de la misma manera que con unos pocos cambios de nombre para indicar mejor lo que se está controlando y monitoreo en el circuito.

Como siempre, usted declara las diferentes variables utilizadas en el dibujo. Se utiliza el potPin para asignar el pasador potenciómetro y motorPin para enviar una señal al motor. La variable potValue se utiliza para almacenar el valor bruto del potenciómetro y las tiendas de variables motorValue el valor convertido que desea dar salida al transistor para cambiar el motor.

int potPin = A0int motorPin = 9-int potValue = 0-int motorValue = 0-

Cómo ajustar el boceto MotorControl

Usted puede encontrar que existe una velocidad mínima después de lo cual el motor se acaba de zumbido. Lo hace porque no tiene suficiente potencia para hacer girar. Mediante el control de los valores enviados al motor usando el boceto MotorControl, se puede encontrar el valor mínimo del motor gire y optimizar el motorValue para girar el motor dentro de su verdadero alcance.

Para encontrar el rango de motorValue, sigue estos pasos:

  1. Con el esbozo MotorControl cargado, haga clic en el botón del monitor de serie en la parte superior derecha de la ventana de Arduino.

    La ventana de monitor serie le mostrará el valor del potenciómetro seguido por el valor de salida que se envía al motor, de esta manera:

    potenciómetro = 1,023 motor = 255

    Estos valores se muestran en una lista larga y actualizar a medida que gira el potenciómetro. Si no ve la lista de desplazamiento hacia abajo, asegúrese de que está seleccionada la opción de desplazamiento automático.

  2. A partir de su lectura del potenciómetro un valor de 0, apague el potenciómetro muy lentamente hasta que el zumbido se detiene y el motor comienza a girar.

  3. Anote el valor que aparece en este punto.

    Video: Control de Velocidad para un Motor de Corriente Continua

  4. utilice una Si declaración para decirle al motor para cambiar la velocidad sólo si el valor es mayor que la velocidad mínima necesaria para hacer girar el motor, de la siguiente manera:

    (un). Encuentra la parte del código que escribe el motorValue al motor:

    analogWrite(MotorPin, motorValue) -

    (segundo). Sustituirlo por el siguiente fragmento de código:

    Si(motorValue gt; yourValue) {analogWrite(MotorPin, motorValue) -} más {digitalWrite(MotorPin, LOW) -}
  5. ahora reemplace yourValue con el número que usted ha hecho una nota de.

    Video: Control de Velocidad de un Motor DC mediante un potenciómetro – Vídeo tutorial – Ejercicio N°10

    Si el valor motorValue es mayor que eso, el motor se acelera. Si es menor que eso, el pasador está escrito BAJO por lo que es totalmente apagado. Uno puede escribir analogWrite (motorPin, 0) a lograr lo mismo. optimizaciones pequeñas de este tipo pueden ayudar a su función de proyecto sin problemas, sin ningún movimiento o valores desperdiciada.

Artículos Relacionados