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.
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.
Yo depuraría esto en dos partes separadas, comenzando con lo siguiente...
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)
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
, 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.
phil g
Huismán
PIC16F84A