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.
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-void setup () {pinMode(motorPin, SALIDA) -} void loop () {para(int motorValue = 0 - motorValue lt; = 255- motorValue + = 5) {analogWrite(motorPin, motorValue) -retraso(30) -}para(int motorValue = 255 - motorValue> = 0- motorValue - = 5) {analogWrite(motorPin, motorValue) -retraso(30) -}}
Después de haber escrito el boceto, guardarlo y pulse el botón Compile para comprobar su código. El Arduino Medio Ambiente debe poner de relieve los errores gramaticales en el Área de mensajes si se descubren.
Si el boceto compila correctamente, haga clic en Cargar para cargar el boceto para su tablero. Cuando se realiza la carga, usted debe tener un motor que gira muy lentamente al principio, acelera a su giro más rápido, gira hacia abajo hasta detenerse, 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.
Usted puede encontrar que en su punto más lento, el motor solo tararea. 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 se utiliza 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 patilla 9 hasta que alcanza el valor máximo de PWM 255. El segundo para bucle vuelve gradualmente este valor a 0- continuación, el ciclo se repite
void loop () {para(int motorValue = 0 - motorValue lt; = 255- motorValue + = 5) {analogWrite(motorPin, motorValue) -retraso(30) -}para(int motorValue = 255 - motorValue> = 0- motorValue - = 5) {analogWrite(motorPin, motorValue) -retraso(30) -}}
Este proceso podría compararse a acelerar un motor de automóvil. Si se presiona el pedal hacia abajo, a acelerar 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, usted 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 dentro y fuera, y el impulso del motor le permiten lograr un comportamiento análogo a partir de una señal digital.