Controlador Mosfet - Problema de salida del lado alto

He estado tratando de hacer un inversor trifásico para impulsar un motor BLDC.

Mosfet: IRF3205

Conductor: IR2101

Voltaje de suministro para FET y controladores: 12V

CCD: https://media.digikey.com/pdf/Data%20Sheets/Seeed%20Technology/108990010_Web.pdf

Escribí un código simple para Arduino Uno. Cambio la secuencia de disparo de los MOSFET manualmente, según la figura dada.ingrese la descripción de la imagen aquí

Arduino lee el voltaje del potenciómetro y crea un rango de frecuencia entre 15 Hz y 60 Hz en términos de revolución. El ciclo de trabajo es 1/3.

El código:

 int AA1=7;
 int AA2=6;
 int BB1=5;
 int BB2=4;
 int CC1=3;
 int CC2=2;
 int IN=A0;


 void setup() {

  pinMode(AA1,OUTPUT);
  pinMode(AA2,OUTPUT);
  pinMode(BB1,OUTPUT);
  pinMode(BB2,OUTPUT);
  pinMode(CC1,OUTPUT);
  pinMode(CC2,OUTPUT);

}

 void loop() {

 int t =analogRead(IN); //From the potentiometer
 Delay=map(t,0,1024,10000,3000); //we obtain the delay speed using the 
potentiometer


  digitalWrite(AA1,LOW);
  digitalWrite(AA2,LOW);
  digitalWrite(BB1,LOW);
  digitalWrite(CC2,LOW);
  digitalWrite(BB2,HIGH);
  digitalWrite(CC1,HIGH);
  delayMicroseconds(Delay);

  digitalWrite(AA2,LOW);
  digitalWrite(BB1,LOW);
  digitalWrite(CC1,LOW);
  digitalWrite(CC2,LOW);
  digitalWrite(AA1,HIGH);
  digitalWrite(BB2,HIGH);
  delayMicroseconds(Delay);

  digitalWrite(AA2,LOW);
  digitalWrite(BB1,LOW);
  digitalWrite(BB2,LOW);
  digitalWrite(CC1,LOW);
  digitalWrite(CC2,HIGH);
  digitalWrite(AA1,HIGH);
  delayMicroseconds(Delay);

  digitalWrite(AA1,LOW);
  digitalWrite(AA2,LOW);
  digitalWrite(BB2,LOW);
  digitalWrite(CC1,LOW);
  digitalWrite(BB1,HIGH);
  digitalWrite(CC2,HIGH);
  delayMicroseconds(Delay);

  digitalWrite(AA1,LOW);
  digitalWrite(BB2,LOW);
  digitalWrite(CC1,LOW);
  digitalWrite(CC2,LOW);
  digitalWrite(AA2,HIGH);
  digitalWrite(BB1,HIGH);
  delayMicroseconds(Delay);


  digitalWrite(AA1,LOW);
  digitalWrite(BB1,LOW);
  digitalWrite(BB2,LOW);
  digitalWrite(CC2,LOW);
  digitalWrite(CC1,HIGH);
  digitalWrite(AA2,HIGH);
  delayMicroseconds(Delay);

}

El problema es que no hay salida de señal PWM en el lado alto, mientras que el lado bajo tiene una salida PWM. Entonces, el motor no gira, solo vibra pero no da ni un paso.

Calculé el valor del capacitor de arranque y encontré que alrededor de 200-300nF. Creo que el problema tiene que ver con el arranque y he probado diferentes valores de capacitor: 220nF, 4.7uF (incluido el electrolito), 10uF (incluido el electrolito), 2.2uF (incluido el electrolito) hasta ahora. Sin embargo, ninguno de ellos no ha funcionado.

Solo hay un voltaje de CC cercano a 10 V CC en el lado alto del controlador. Cuando cambio los condensadores, hay cambios de ondulación pero no puedo ver la salida PWM.

¿Qué podría causar el problema? Gracias.

Aquí está mi circuito:ingrese la descripción de la imagen aquí

No estás haciendo nada para generar un PWM. Su código genera los seis pasos, y cada uno está completamente activado durante su duración. Dado que no tiene aceleración hasta la velocidad mínima, es posible que el motor no se sincronice con la conmutación del puente.
Solo hay un voltaje de CC en el lado alto del controlador. ¿Es 0Vdc de 12Vdc o algo intermedio? Por favor comparta valores, o mejor: imágenes de alcance.
@Huisman, no es 0Vdc, cerca de 10Vdc.

Respuestas (3)

Yo depuraría esto en dos partes separadas, comenzando con lo siguiente...

  1. Mientras realiza la conmutación de seis pasos, debe verificar que puede ordenar un estado de conmutación en su Arduino y ver las salidas correctas en las seis salidas PWM. Asegúrese de revisar las estrategias típicas de conmutación de seis pasos... donde básicamente tiene tres estados: PWM, ENCENDIDO y APAGADO (alta impedancia)

  2. Conduzca un solo precontrolador y arranque con un generador de funciones. ¿Ves el mismo comportamiento?

Use resistencias pull-down de compuerta de 10k para el MOSFET de lado bajo. Tal vez sus MOSFET de lado bajo no se están apagando correctamente.

Creo que es posible que haya dañado los diodos 1N4148 al intentar arbitrariamente los condensadores de arranque.
La corriente a través del diodo de arranque está limitada por la ESR de la tapa y R D S o norte , entonces, casi nada limita la corriente. Según la marca, el 1N4148 puede manejar una sobretensión de 1 a 2A.
Comience comprobando estos diodos.

A continuación, será mejor que calcule qué condensador de arranque necesita.
Verifique, por ejemplo: Capítulo 3 Selección de componentes de arranque
O: Capítulo 3. Cómo seleccionar los componentes de arranque
(creo que debería ser del orden de 200 - 300nF, pero no sé la frecuencia de conmutación).
Agregue una resistencia de arranque para proteger el diodo de arranque en el arranque.

Además, también agregue 10 nF lo más cerca posible de los pines de alimentación de cada IR2101. Y reemplace C1, C3 y C5 por capacitores cerámicos de aproximadamente 1uF o 2.2uF (aproximadamente 10 veces el valor del capacitor de arranque). Deben ser los segundos más cercanos al IR2101.

PD. No revisé el código. Dado que afirma que el lado bajo es PWM, creo que el circuito de arranque debería repararse primero.

"Creo que debería estar en el orden de 200 - 300nF". Sí, había calculado el valor y está entre 200nF-300nF. He comprobado los diodos y funcionan.
Si conoce el valor, ¿por qué no compartirlo? De esta manera, se mantiene vago.