Estoy usando 4 mosfets de nivel lógico Si2302 para impulsar 4 motores de CC 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 placas es una Lipo de 500 mAh 50 C de 3,7 V (4,2 V cuando está completamente cargada).
El circuito se configura de la siguiente manera:
simular este circuito : esquema creado con 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. Esto luego se convierte a un valor 0-255 y se emite en la salida PWM.
Estoy enfrentando los siguientes problemas con el circuito:
Tan pronto como suministro energía al circuito, los motores funcionan a RPM completas hasta que Arduino comienza a tomar 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 Arduino comience a recibir valores del joystick? (Tenía entendido que la resistencia de 10KΩ Rgs se encargaría de esto).
El segundo problema es que el mosfet nunca se apaga por completo. Esto sucede incluso cuando el joystick está en la posición 0. También intenté cambiar los pines ALTO y BAJO, sin embargo, todavía hay movimiento en el motor. ¿Hay algún remedio para este problema?
Cuando mido la resistencia entre la puerta y la fuente, el mosfet muestra alrededor de 6K ohmios. ¿No debería ser alrededor de 10KΩ ya que la resistencia Rgs es de 10KΩ? ¿Es esto una señal de que el mosfet está dañado?
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 MOSFET que generalmente tienen un umbral de 2v - 4,5 V.
Todos los efectos que está viendo probablemente se deban 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á sacando suficiente corriente del procesador para crear un voltaje de polarización que enciende el MOSFET ligeramente.
Cuando midió la resistencia de la puerta, ¿todavía estaba conectado al Arduino?
El pull-up se puede desactivar mediante programación, pero, por supuesto, no hasta que el software se esté ejecutando.
kevin
En el Arduino Pro Mini, todos los pines digitales (excepto el pin 13, indicador LED) están flotando hasta que se programen de otra manera, por lo que, a menos que esté activando deliberadamente el pull-up interno, su resistencia pull-down debería evitar que el FET se encienda al inicio.
Cuando mido la resistencia entre la puerta y la fuente, el mosfet muestra alrededor de 6K ohmios.
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, cortocircuite la compuerta a la fuente y mida desde el drenaje (conducción de cinco metros) a la fuente (conducción de -ve metros). Todas las lecturas deben estar muy por encima de un megaohmio. Si la unión Gate-Drain o Source-Drain se rompe, el FET puede permanecer parcialmente encendido incluso con 0 PWM.
Su primer problema ocurre después de encender su sistema, sin mover el joystick, ¿verdad? Tal vez tonto, pero ¿has intentado hacer lo siguiente :):
int motorSpeed1 = 0;
int motorSpeed2 = 0;
int motorSpeed3 = 0;
int motorSpeed4 = 0;
Buena suerte, Saludos,
SidharthM
chris stratton