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

A veces es necesario tener un mayor control sobre la velocidad de su motor, que el Arduino le permite hacer con el boceto MotorSpeed. A continuación se muestra cómo controlar la velocidad de su motor con el mismo circuito.

Video: Arduino: Motor DC y transistor NPN (control de velocidad) | TechKrowd

El boceto MotorSpeed

Abrir un nuevo boceto Arduino, guardarlo con un nombre fácil de recordar, como myMotorSpeed ​​y escriba el siguiente código.

int motorPin = 9-vacío setup () {pinMode(MotorPin, SALIDA) -} void loop () {para(int motorValue = 0 - motorValue lt; = 255- motorValue + = 5) {analogWrite(MotorPin, motorValue) -retrasar(30) -}para(int motorValue = 255 - motorValue gt; = 0- motorValue - = 5) {analogWrite(MotorPin, motorValue) -retrasar(30) -}}

Tras introducir el boceto, guardarlo y pulse el botón Compilar para comprobar su código. El entorno de Arduino debe poner de relieve los errores gramaticales en el Área de mensajes si se descubren.

Si el boceto se compila correctamente, haga clic en Cargar para cargar el boceto de su tablero. Cuando se realiza la carga, debe tener un motor que hace girar muy lentamente al principio, acelera a su giro más rápido, gira de nuevo a una parada, y luego repite. Puede ser difícil de ver esto, por lo que debe arreglar algo más visible, como la masilla adhesiva, para mostrar lo que está pasando.

Es posible que en su punto más lento, el motor simplemente zumba. Si es así, esto no es un problema- sólo significa que el electroimán no tiene suficiente voltaje para hacer girar el motor-que necesita más voltaje para generar el magnetismo y ganar impulso.

El desglose boceto MotorSpeed

El pasador que está utilizando para controlar el circuito del motor, pin digital 9, se declara.

int motorPin = 9-

Debido a que es una salida, se define en la configuración.

void setup () {pinMode(MotorPin, SALIDA) -}

En el bucle principal, se utiliza analogWrite para enviar un valor PWM a la clavija 9. Este es el mismo principio que en el boceto Fade, utilizado a desvanecerse un LED. El primero para bucle envía un valor aumentando gradualmente a la clavija 9 hasta que alcanza el valor máximo PWM de 255. El segundo para bucle vuelve gradualmente este valor a 0- entonces el ciclo se repite

Video: Control de un motor con velocidad variable en Arduino

void loop () {para(int motorValue = 0 - motorValue lt; = 255- motorValue + = 5) {analogWrite(MotorPin, motorValue) -retrasar(30) -}para(int motorValue = 255 - motorValue gt; = 0- motorValue - = 5) {analogWrite(MotorPin, motorValue) -retrasar(30) -}}

Este proceso se podría comparar con el aceleramiento un motor de automóvil. Si se presiona el pedal hacia abajo, se acelera a toda velocidad. Si toca el pedal del acelerador, el motor acelera y luego desacelera. Si se toca a una velocidad constante antes de que se desacelera, se mantendrá parte del impulso del motor de giro y lograr un promedio (aunque algo desigual) de velocidad.

Esto es lo que el transistor está haciendo, pero muy rápidamente. Los intervalos entre encendido y apagado y el impulso del motor le permiten lograr un comportamiento análogo a partir de una señal digital.

Artículos Relacionados