¿Cómo controlar la velocidad de un motor de corriente continua con el Arduino
¿Necesita más control de su motor de corriente continua? Usted puede utilizar 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 para su circuito.
Necesitas:
Un Arduino Uno
Un tablero
Un transistor
Un motor de corriente continua
Un diodo
Un 10k ohm resistencia variable
Una resistencia de 2.2k ohm
Cables Jump
Encontrar un espacio en su tablero para colocar su potenciómetro. El perno central del potenciómetro se conecta de nuevo a pin 9 usando un alambre 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 conmutación ellos invertirán el valor que el potenciómetro envía al 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, abra 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-void setup () {Serial.begin (9600) -} void loop () {potValue = analogRead(potPin) -motorValue = mapa(potValue, 0, 1,023, 0, 255) -analogWrite(motorPin, motorValue) -Serial.print ("potenciómetro =") -Serial.print(potValue) -Serial.print (" t motor =") -Serial.println(motorValue) -retraso(2) -}
Después de haber escrito el boceto, guardarlo y haga clic en el botón Compile para destacar los errores de sintaxis. .
Si el boceto compila correctamente, haga clic en Cargar para cargar el boceto para su tablero. Cuando se hace la posibilidad de 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 arriba girándola hacia otro lado hace que se ralentice.
El desglose MotorControl Sketch
Este bosquejo es una variación sobre el boceto AnalogInOutSerial y funciona exactamente de la misma manera con algunos cambios de nombre para indicar mejor lo que se está controlando y seguimiento en el circuito.
Como siempre, usted declara las diferentes variables utilizadas en el boceto. Se utiliza el potPin 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 de los grandes variables motorValue el valor que desea convertir a la salida al transistor para encender el motor.
int potPin = A0int motorPin = 9-int potValue = 0-int motorValue = 0-
Cómo ajustar el boceto MotorControl
Usted puede encontrar que hay una velocidad mínima después de lo cual el motor se acaba de zumbido. Lo hace porque no tiene el poder suficiente para hacer girar. Al monitorear los valores enviados al motor usando el boceto MotorControl, usted puede encontrar valor mínimo del motor para convertir y optimizar el motorValue para encender el motor dentro de su verdadero alcance.
Para encontrar la gama de motorValue, sigue estos pasos:
Con el boceto MotorControl cargado, haga clic en el botón del monitor de serie en la parte superior derecha de la ventana de Arduino.
La ventana del monitor de 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 usted no ve la lista de desplazamiento hacia abajo, asegúrese de que está seleccionada la opción Auto-Desplazamiento.
Comenzando con el potenciómetro de la lectura de un valor de 0, apague el potenciómetro muy despacio hasta que el zumbido se detiene y el motor comienza a girar.
Anote el valor que aparece en este momento.
Utilice un 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, como sigue:
(la). Encuentra la parte del código que escribe el motorValue al motor:
analogWrite(motorPin, motorValue) -
(b). Sustituirlo por el siguiente fragmento de código:
si(motorValue> yourValue) { analogWrite(motorPin, motorValue) -} otro { digitalWrite(motorPin, LOW) -}
Ahora reemplace yourValue con el número que usted ha hecho una nota de.
Si el valor motorValue es mayor que, el motor se acelera. Si es menor que, el pasador está escrito BAJO de manera que es totalmente apagado. También puede escribir analogWrite (motorPin, 0) para llevar a cabo la misma cosa. Optimizaciones Diminuto como éste pueden ayudar a su función de proyecto sin problemas, sin movimiento o valores desperdiciado.