
Hi all,i need some help to lớn my project. I have a project on 3-phase frequency inverter using the Arduino.I use arduino nano, 6n137, IR2184, IRF840 và SVPWM. but the problem is my 3 phase output has very high frequency .
Can someone give me some help on this?
please help me English is not my mother tongue.please excuse any errors on my part
Code below :

int GTSS = 0 ,ADC_A0 = 0 ,T = 255 ,B = 255;double T_MAU = 0 ,TDDC = 0 ,P_I = 3.1416,UA = 0 ,UB = 0,UC = 0,UD = 0,UE = 0,TETA = 0;double Uref = 148,U_TI_LE = 0.5,T_CK = 360 ,TA = 0 ,TB = 0,TC = 0,TS<7>,T_SS = 0;long GOC_DO = 0 ,GOC_THUC = 0 ,SECTO = 0;int PHA_A = 9 ,PHA_B = 10, PHA_C = 11,DAO_CHIEU = 0;void setup() pinMode(LED_HT,OUTPUT);pinMode(BUTTON,INPUT);SETPWM(PHA_A,1); //SET TAN SO BAM XUNG PWM CHAN 9SETPWM(PHA_B,1); //SET TAN SO BAM XUNG PWM CHAN 10SETPWM(PHA_C,1); //SET TAN SO BAM XUNG PWM CHAN 11analogWrite(PHA_A,T);analogWrite(PHA_B,T);analogWrite(PHA_C,T);DAO_CHIEU = EEPROM.read(15); void loop()digitalWrite(LED_HT,DAO_CHIEU);if(DAO_CHIEU == 0)PHA_A = 9,PHA_B = 10, PHA_C = 11;if(DAO_CHIEU == 1)PHA_A = 9,PHA_B = 11, PHA_C = 10;if(analogRead(A0 > 401))B = (int)map(analogRead(A0),400,1023,230,40); if(analogRead(A0) 400) B = 255;if(digitalRead(BUTTON)== 0) delay(100);while(digitalRead(BUTTON)== 0);DAO_CHIEU++;if(DAO_CHIEU > 1)DAO_CHIEU = 0;EEPROM.write(15,DAO_CHIEU); SVPWM(); void SVPWM() for(int i=1; i12; i++) void PWM(int CHE_DO) if(CHE_DO == 0)analogWrite(PHA_A,T);analogWrite(PHA_B,T);analogWrite(PHA_C,T);if(CHE_DO == 1)analogWrite(PHA_A,T);analogWrite(PHA_B,T);analogWrite(PHA_C,B);if(CHE_DO == 2)analogWrite(PHA_A,T);analogWrite(PHA_B,B);analogWrite(PHA_C,T);if(CHE_DO == 3)analogWrite(PHA_A,T);analogWrite(PHA_B,B);analogWrite(PHA_C,B);if(CHE_DO == 4)analogWrite(PHA_A,B);analogWrite(PHA_B,T);analogWrite(PHA_C,T);if(CHE_DO == 5)analogWrite(PHA_A,B);analogWrite(PHA_B,T);analogWrite(PHA_C,B);if(CHE_DO == 6)analogWrite(PHA_A,B);analogWrite(PHA_B,B);analogWrite(PHA_C,T);if(CHE_DO == 7)analogWrite(PHA_A,B);analogWrite(PHA_B,B);analogWrite(PHA_C,B); //======================================================================================================================================== void IN_SERIAL() Serial.print(" T_MAU:"); Serial.print(T_MAU); Serial.print(" T_SS:"); Serial.print(T_SS); Serial.print(" UA: "); Serial.print( UA ); Serial.print(" UB: "); Serial.print( UB ); Serial.print(" UC: "); Serial.print( UC ); Serial.print(" UD: "); Serial.print( UD ); Serial.print(" UE: "); Serial.print( UE );Serial.print(" TETA: "); Serial.print( TETA); Serial.print(" GOC_DO: "); Serial.print(GOC_DO); Serial.print(" SECTO: "); Serial.print(SECTO); Serial.print(" GOC_THUC: ");Serial.print(GOC_THUC); Serial.print(" TA: "); Serial.print( TA ); Serial.print(" TB: "); Serial.print( TB ); Serial.print(" TC: "); Serial.print( TC ); for(int i = 1;i7;i++ )Serial.print(" TS<");Serial.print(i);Serial.print(">: ");Serial.print(TS); Serial.print(" GTSS: "); Serial.println( GTSS ); //========================================================================================================================================void SETPWM(int pin, int divisor) { byte mode;if(pin == 5 || pin == 6 || pin == 9 || pin == 10) pin == 6) mode; else TCCR1B = TCCR1B và 0b11111000 else if(pin == 3 || pin == 11) mode;