Circuito de control de motor de alta corriente usando Arduino

Circuito de control de motor de alta corriente usando Arduino

En este proyecto, discutimos cómo controlar la velocidad del motor usando el circuito Arduino PWM, y cómo implementar el control de dirección o avance inverso en un motor de CC usando Arduino a través de un par de interruptores de botón. Cualquier motor de alta corriente de hasta 30 amperios se puede controlar con esta configuración



PorAnkit Negi

El motor es un componente muy esencial en la electricidad y la electrónica, ya que se utilizan como actuadores en muchas áreas.





Necesitamos motores para aplicaciones pequeñas como robótica, así como en áreas donde se utilizan motores pesados ​​(industrias, etc.).

Ahora los motores que se utilizan para aplicaciones pequeñas se pueden controlar fácilmente ya que no consumen mucha corriente (menos de 2 amperios).



Y estos motores se pueden controlar fácilmente utilizando un microcontrolador como arduino con controladores de motor como L298 o L293D .

Pero los motores que se utilizan para fines pesados ​​(más de 10 amperios), no se pueden controlar usando estos ic ya que pueden suministrar corriente limitada (máximo 2 amperios). Entonces, ¿cómo se controlan estos motores?

La respuesta es simple: usando relés , que actúa como interruptores, es decir, cambia una corriente grande con una corriente pequeña. De esta forma se pueden conseguir dos cosas:

1. Hacer funcionar nuestro motor de alta corriente.

2. Aislar el circuito, evitando así posibles choques.

Ahora se puede usar cualquier microcontrolador para cambiar estos relés. Usaremos arduino UNO aquí.

COMPONENTES REQUERIDOS PARA ESTE PROYECTO:

1. ARDUINO UNO: para dar lógicas de entrada al lado primario del relé.

2. RELÉ SPDT -2: se requieren dos relés para girar en ambos sentidos. Los contactos deben estar clasificados para manejar las especificaciones del motor de alta corriente.

Imagen de relé color azul relé que muestra N / O N / C y detalles del polo3.Mosfet de energía: puede usar el mosfet IRF1010 microinterruptor de botón

4. BATERÍA (12v): para suministrar energía al motor.

5. DOS BOTONES: para dar entradas a arduino (es decir, cuando se presiona y cuando no se presiona)

Resistencia de 10k 1/4 vatios

6. DOS RESISTENCIAS DE 10K: para antirrebote (explicado a continuación)

Circuito de control de motor de alta corriente usando Arduino

7. CONECTORES DE CABLES: para realizar conexiones.

ESQUEMÁTICO:

Circuito de control del motor PWM Arduino

Realice las conexiones como se muestra en la figura.

1. Conecte el terminal normalmente abierto de ambos relés al terminal positivo de la batería y el terminal normalmente cerrado al terminal negativo de la batería.

2. Conecte el motor entre el terminal restante (de tres) de cada relé.

3. Conecte un terminal del lado primario de los relés a los pines de salida de arduino como se especifica en el código y el otro terminal a tierra.

4. Conecte un terminal de ambos botones al pin 5v de arduino y otro terminal a los pines de entrada como se especifica en el código.

4. ** No olvide conectar resistencias ya que son muy importantes para el correcto funcionamiento de este circuito, como se explica a continuación:

¿POR QUÉ ESTÁN CONECTADAS LAS RESISTENCIAS?

Puede encontrar que no hay nada conectado a los pines de entrada de Arduino, pero eso no significa que estos pines puedan ser un cero lógico cuando el interruptor indicado está abierto.

Más bien, implica que cuando el interruptor está abierto, arduino puede tomar cualquier valor aleatorio entre el 0 lógico y el 1 lógico, lo cual no es bueno en absoluto (esto se llama rebote).

Entonces, lo que queremos aquí es que cuando no hay nada conectado al pin de entrada, es decir, el botón está abierto, arduino toma 0 entrada del pin.

Y para lograr esto, el pin se conecta directamente a tierra antes del pulsador a través de una resistencia. Si está conectado directamente a tierra sin resistencia, hay buenas posibilidades de que se queme, ya que el pin se acortará a tierra y fluirá una gran cantidad de corriente. Para evitar esto, se conecta una resistencia en el medio.

Esta resistencia se llama resistencia pulldown ya que está tirando de la lógica en el pin a 0. Y este proceso se llama antirrebote.

CÓDIGO:

Grabe este código en su arduino.

|_+_|

Funcionamiento (comprensión del código):

• CONTROL DE DIRECCIÓN:

A. Cuando no se presionan ambos botones:

En esta condición, arduino toma 0 entradas de ambos pines. Como se especifica en el código en esta condición, ambos pines de salida dan lógica 0 (BAJA):

if (x == 0 && y == 0) {digitalWrite (6, LOW)

escritura digital (9, BAJA)}

Dado que el voltaje de entrada al primario de ambos relés es cero, el terminal secundario de ambos permanece en la posición normalmente cerrada. Por lo tanto, hay cero voltios en ambos terminales del motor, lo que no causa rotación.

B. Cuando se presiona el botón pulsador X pero no se presiona Y:

En esta condición, arduino toma 0 entradas del pin 4 pero input1 del pin3. Como se especifica en el código en esta condición, el pin 6 debe estar en la lógica 1 (ALTO) mientras que el pin 9 en la lógica 0 (BAJO):

if (x == 1 && y == 0) {digitalWrite (6, HIGH)

escritura digital (9, BAJA)}

Dado que el voltaje de entrada al relé n. ° 1 es alto, el interruptor de este relé se lanza a la condición normalmente abierta mientras que el voltaje de entrada al relé 2 es bajo, el interruptor de este relé permanece en condición normalmente cerrada causando 12v y 0v respectivamente a través de los terminales del motor, causando rotación del motor en una dirección.

C.Cuando se presiona el botón pulsador Y pero no se presiona X:

En esta condición, arduino toma 1 entrada del pin 4 pero input0 del pin3. Como se especifica en el código en esta condición, el pin 6 debe estar en la lógica 0 (BAJO) mientras que el pin 9 en la lógica 1 (ALTO):

if (x == 1 && y == 0) {digitalWrite (6, LOW)

escritura digital (9, ALTA)}

Dado que el voltaje de entrada al relé n. ° 2 es alto esta vez, el interruptor de este relé se coloca en la condición normalmente abierta mientras que el voltaje de entrada al relé n. ° 1 es bajo, el interruptor de este relé permanece en condición normalmente cerrada, lo que provoca 12v y 0v respectivamente en el motor. terminales, provocando la rotación del motor en otra dirección.

D. Cuando se presionan ambos botones:

En esta condición, arduino toma 1 entrada de ambos pines. Como se especifica en el código en esta condición, ambos pines de salida dan lógica 0 (BAJA):

if (x == 0 && y == 0) {digitalWrite (6, LOW)

escritura digital (9, BAJA)}

Dado que el voltaje de entrada al primario de ambos relés es cero, el terminal secundario de ambos permanece en la posición normalmente cerrada. Por lo tanto, hay cero voltios en ambos terminales del motor, lo que no causa rotación.

• CONTROL DE VELOCIDAD:

Digamos que el potenciómetro está en tal posición cuando da 0 voltios como entrada al pin A0 de arduino. Debido a esto, arduino asigna este valor como 0 y, por lo tanto, da 0 como salida PWM en el pin # 10, es decir,

analogWrite (10,0) // escribe el valor asignado al décimo pin como salida

Por lo tanto, la puerta del mosfet obtiene 0 corriente debido a que permanece apagada y el motor está en la posición de apagado.

Sin embargo, a medida que se gira el potenciómetro y se varía el valor del potenciómetro, el voltaje en el pin A0 también varía, y este valor se mapea en el pin # 10 con un ancho de PWM que aumenta proporcionalmente, lo que hace que fluya más corriente a través del motor y el mosfet drenaje, que a su vez permite que el motor gane más velocidad proporcionalmente, y lo mismo ocurre al revés.

Por lo tanto, de la discusión anterior, podemos ver cómo se puede usar un Arduino para controlar la velocidad y la dirección (marcha atrás hacia adelante) de un motor de CC de alta corriente simplemente ajustando el potenciómetro especificado y mediante un par de botones.

Actualizar : Para motores de alta corriente, utilice relés de 12 V / 30 amperios y etapas de controlador BJT para operar estos relés de alta potencia como se indica en el siguiente diagrama modificado:




Artículo anterior: Circuito del sensor de estacionamiento de marcha atrás del coche con alarma Siguiente artículo: Circuito generador de señal Arduino PWM