Control de un motor DC sin núcleo usando un PWM y un mosfet

1

Estoy usando 4 Si2302 mosfets de nivel lógico para impulsar 4 motores de corriente continua sin núcleo. La velocidad de los motores es controlada por la señal PWM de un Arduino Pro Mini. La fuente de alimentación para las tarjetas es de 3.7V (4.2V cuando está completamente cargada) 500mAh 50C Lipo.

El circuito se configura de la siguiente manera:

  • Fuente a tierra
  • Puerta a pin PWM con una resistencia de 10KΩ a tierra.
  • Drenaje al terminal motor 1
  • Terminal 2 del motor a Vcc
  • Diodo colocado en los terminales del motor

simular este circuito : esquema creado usando CircuitLab

El motor obtiene su valor de RPM a través de un joystick que está conectado a una entrada analógica en el Arduiuno. Luego, esto se convierte a un valor de 0-255 y se genera en la salida PWM.

Estoy enfrentando los siguientes problemas con el circuito:

  1. Tan pronto como suministre energía al circuito, los motores funcionan a RPM completas hasta que el Arduino comienza a tomar los datos del joystick. Luego se establece en las RPM correspondientes a la posición del joystick. ¿Hay alguna forma de contrarrestar esto para que los motores permanezcan apagados hasta que el Arduino comience a recibir valores del joystick? (Entiendo que la resistencia de 10KΩ Rgs se encargaría de esto).

  2. El segundo problema es que el mosfet nunca se apaga completamente. Esto sucede incluso cuando el joystick está en la posición 0. También he intentado cambiar los pines ALTOS y BAJOS, sin embargo, todavía hay movimiento en el motor. ¿Hay algún remedio para este problema?

  3. Cuando mido la resistencia entre la Puerta y la Fuente, el mosfet muestra alrededor de 6K ohms. ¿No debería esto ser alrededor de 10KΩ ya que la resistencia Rgs es 10KΩ? ¿Es esta una señal de que el mosfet está dañado?

pregunta SidharthM

3 respuestas

2

Reduzca la resistencia de 10K a 3.3K o incluso a 1K.

El dispositivo Si2302 que está utilizando tiene un voltaje de umbral de alrededor de 0.65 V, esto es mucho más bajo que muchos MOSFETS que, por lo general, tienen un umbral de 2v - 4.5V.

Todos los efectos que está viendo son probablemente debido a la resistencia pullup en el Arduino (suponiendo que use un procesador AVR). Esto puede estar en cualquier lugar entre 20K y 100K y estará poniendo suficiente corriente fuera del procesador para crear un voltaje de polarización que encienda ligeramente el MOSFET.

Cuando mediste la resistencia de la puerta, ¿estaba todavía conectada al Arduino?

El pull-up se puede desactivar mediante programación, pero por supuesto no hasta que el software se esté ejecutando.

kevin

    
respondido por el Kevin White
2

En el Arduino Pro Mini todos los pines digitales (excepto el pin 13, indicador LED) están flotando hasta que se programe lo contrario, por lo que, a menos que esté activando deliberadamente el pull-up interno, su resistencia desplegable debería evitar que el FET se encienda en puesta en marcha.

  

Cuando mido la resistencia entre la Puerta y la Fuente, el mosfet   Muestra alrededor de 6K ohms.

Una lectura de solo 6k es sospechosa. Sin embargo, para eliminar el efecto de otros componentes, debe sacar el FET del circuito y luego medir las resistencias Gate-Drain y Gate-Source con un multímetro digital. Finalmente, corte la Puerta a la Fuente y mida desde Drain (+ ve meter lead) hasta Source (-ve meter meter). Todas las lecturas deben estar bien sobre un Megohm. Si la conexión Gate-Drain o Source-Drain se descompone, el FET puede permanecer parcialmente encendido incluso con 0 PWM.

    
respondido por el Bruce Abbott
0

Tu primer problema ocurre después de que activas tu sistema, sin mover el joystick, ¿verdad? Tal vez sea tonto, pero ¿has tratado de hacer lo siguiente :):

int motorSpeed1 = 0;
int motorSpeed2 = 0;
int motorSpeed3 = 0;
int motorSpeed4 = 0;

buena suerte, Saludos,

    
respondido por el Yenice Coding

Lea otras preguntas en las etiquetas