- Modulación de ancho de pulso:
- Material requerido
- Diagrama de circuito
- Código y explicación
- Control de velocidad del motor DC usando Arduino
El motor de CC es el motor más utilizado en proyectos de robótica y electrónica. Para controlar la velocidad del motor de CC, tenemos varios métodos, como la velocidad se puede controlar automáticamente en función de la temperatura, pero en este proyecto se utilizará el método PWM para controlar la velocidad del motor de CC. Aquí, en este proyecto de control de velocidad del motor Arduino, la velocidad se puede controlar girando la perilla del potenciómetro.
Modulación de ancho de pulso:
¿Qué es PWM? PWM es una técnica mediante la cual podemos controlar el voltaje o la potencia. Para entenderlo de manera más simple, si está aplicando 5 voltios para impulsar un motor, entonces el motor se moverá con cierta velocidad, ahora si reducimos el voltaje aplicado en 2 medios, aplicamos 3 voltios al motor, entonces la velocidad del motor también disminuye. Este concepto se utiliza en el proyecto para controlar la tensión mediante PWM. Hemos explicado PWM en detalle en este artículo. También verifique este circuito donde se usa PWM para controlar el brillo del LED: Atenuador LED de 1 Watt.
% Del ciclo de trabajo = (TON / (TON + TOFF)) * 100 Donde, T ON = ALTO tiempo de la onda cuadrada T OFF = BAJO tiempo de la onda cuadrada
Ahora bien, si el interruptor en la figura se cierra continuamente durante un período de tiempo, el motor se encenderá continuamente durante ese tiempo. Si el interruptor se cierra durante 8 ms y se abre durante 2 ms durante un ciclo de 10 ms, el motor estará ENCENDIDO solo en el tiempo de 8 ms. Ahora, el terminal promedio en un período de 10 ms = tiempo de encendido / (tiempo de encendido + tiempo de apagado), esto se llama ciclo de trabajo y es del 80% (8 / (8 + 2)), por lo que El voltaje de salida será el 80% del voltaje de la batería. Ahora el ojo humano no puede ver que el motor está encendido durante 8 ms y apagado durante 2 ms, por lo que parecerá que el motor de CC gira con una velocidad del 80%.
En el segundo caso, el interruptor se cierra durante 5 ms y se abre durante 5 ms durante un período de 10 ms, por lo que el voltaje terminal promedio en la salida será el 50% del voltaje de la batería. Diga si el voltaje de la batería es de 5 V y el ciclo de trabajo es del 50%, por lo que el voltaje promedio de los terminales será de 2,5 V.
En el tercer caso, el ciclo de trabajo es del 20% y el voltaje terminal promedio es del 20% del voltaje de la batería.
Hemos utilizado PWM con Arduino en muchos de nuestros proyectos:
- Atenuador LED basado en Arduino usando PWM
- Ventilador de temperatura controlada usando Arduino
- Control de motor DC usando Arduino
- Control de velocidad del ventilador de CA usando Arduino y TRIAC
Puede aprender más sobre PWM pasando por varios proyectos basados en PWM.
Material requerido
- Arduino UNO
- motor de corriente continua
- Transistor 2N2222
- Potenciómetro 100k ohmios
- Condensador 0.1uF
- Tablero de circuitos
- Saltar cables
Diagrama de circuito
El diagrama de circuito para el control de velocidad del motor Arduino DC usando PWM se muestra a continuación:
Código y explicación
El código completo para Arduino DC Motor Control usando potenciómetro se da al final.
En el siguiente código, hemos inicializado el c1 y c2 y la variable asignada A0 pin analógico para la salida del potenciómetro y 12 º Pin para 'PWM'.
int pwmPin = 12; int pot = A0; int c1 = 0; int c2 = 0;
Ahora, en el siguiente código, establezca el pin A0 como entrada y 12 (que es el pin PWM) como salida.
configuración vacía () { pinMode (pwmPin, SALIDA); // declara el pin 12 como salida pinMode (pot, INPUT); // declara el pin A0 como entrada }
Ahora, en void loop (), estamos leyendo el valor analógico (de A0) usando analogRead (pot) y guardándolo en la variable c2. Luego, reste el valor c2 de 1024 y guarde el resultado en c1. A continuación, hacer que el PWM pasador 12 º de Arduino ALTA y después de un retraso de valor c1 hacer que las bajas alfiler. Nuevamente, después de un retraso de valor c2, el bucle continúa.
La razón para restar el valor analógico de 1024 es que Arduino Uno ADC tiene una resolución de 10 bits (por lo que los valores enteros de 0-2 ^ 10 = 1024 valores). Esto significa que mapeará voltajes de entrada entre 0 y 5 voltios en valores enteros entre 0 y 1024. Entonces, si multiplicamos el valor de entrada anlogValue a (5/1024), obtenemos el valor digital del voltaje de entrada. Aprenda aquí cómo usar la entrada ADC en Arduino.
bucle vacío () { c2 = analogRead (bote); c1 = 1024-c2; digitalWrite (pwmPin, ALTO); // establece el pin 12 ALTO delayMicroseconds (c1); // espera c1 uS (tiempo alto) digitalWrite (pwmPin, LOW); // establece el pin 12 LOW delayMicroseconds (c2); // espera c2 uS (tiempo bajo) }
Control de velocidad del motor DC usando Arduino
En este circuito, para controlar la velocidad del motor de CC, utilizamos un potenciómetro de 100K ohmios para cambiar el ciclo de trabajo de la señal PWM. 100K ohm potenciómetro está conectado al análogo A0 pin de entrada de la Arduino UNO y el motor de corriente continua está conectado a la 12 º pin del Arduino (que es el pin PWM). El funcionamiento del programa Arduino es muy simple, ya que lee el voltaje del pin analógico A0. El voltaje en el pin analógico se varía usando el potenciómetro. Después de hacer algunos cálculos necesarios, el ciclo de trabajo se ajusta de acuerdo con él.
Por ejemplo, si alimentamos 256 valores a la entrada analógica, entonces el tiempo ALTO será 768 ms (1024-256) y el tiempo BAJO será 256 ms. Por lo tanto, simplemente significa que el ciclo de trabajo es del 75%. Nuestros ojos no pueden ver una oscilación de alta frecuencia y parece que el motor está encendido continuamente al 75% de la velocidad. Así es como podemos realizar el control de velocidad del motor usando Arduino.