Control 3 phase inverter with pot using arduino

Hi all, i'm trying to control an ac motor speed with pot (v/f), i need to make an 3 phase inverter then adjust the motor speed with pot
i want to make a proteus design simulation first.
I am unclear about how to start, many thanks for any assistance.

Hi, @vitreus
So you want to make a variable speed drive?

What power?
What voltage?
What motor?

Can you please tell us your electronics, programming, arduino, hardware experience?

Tom... :smiley: :+1: :coffee: :australia:

It's not clear if you need to make inverter or control inverter....

min 250 watt 230V 50hz, i dont have any motor just want to see the output on oscilloscope
i just made an inverter using only mosfet and arduino, im an electric electronic engineering student, dont have much experience.

Hi, @vitreus

For your own safety can I suggest you do this at a much lower voltage if you have no real need for 250W 230Vac?

Do you understand the basics of a VSD controller.

Tom.. :smiley: :+1: :coffee: :australia:

Can you please post your inverter schematic?

Tom... :smiley: :+1: :coffee: :australia:

Hi,
Sorry but we need a better resolution schematic to read.

In your CAD, "EXPORT" a jpg or png image and post it.

Thanks.. Tom.. :smiley: :+1: :coffee: :australia:

Hi,
So have it in a simulation.
Do you have any code?
If so can you please post it?

250W load, at 24V assuming 100% efficiency.
Battery current ;
P = V * I
250 = 24 * I
I = 250 /24 = 10.4Amps.

I hope you are not aiming to use 24V on the UNO Vin?
Look at the UNO specs.
Also look at MOSFET max gate voltage specs.

Tom.. :smiley: :+1: :coffee: :australia:

const int sPWMArray[] = {500,500,750,500,1250,500,2000,500,1250,500,750,500,500}; // This is the array with the SPWM values change them at will
const int sPWMArrayValues = 13; // You need this since C doesn’t give you the length of an Array
// The pins
const int sPWMpin1 = 3;
const int sPWMpin2 = 5;
// The pin switches
bool sPWMpin1Status = true;
bool sPWMpin2Status = true;
void setup()
{
pinMode(sPWMpin1, OUTPUT);
pinMode(sPWMpin2, OUTPUT);
}
void loop()
{
// Loop for pin 1
for(int i(0); i != sPWMArrayValues; i++)
{
if(sPWMpin1Status)
{
digitalWrite(sPWMpin1, HIGH);
delayMicroseconds(sPWMArray[i]);
sPWMpin1Status = false;
}
else
{
digitalWrite(sPWMpin1, LOW);
delayMicroseconds(sPWMArray[i]);
sPWMpin1Status = true;
}
}
// Loop for pin 2
for(int i(0); i != sPWMArrayValues; i++)
{
if(sPWMpin2Status)
{
digitalWrite(sPWMpin2, HIGH);
delayMicroseconds(sPWMArray[i]);
sPWMpin2Status = false;
}
else
{
digitalWrite(sPWMpin2, LOW);
delayMicroseconds(sPWMArray[i]);
sPWMpin2Status = true;
}
}
}

this is the code that i used.
i made this project in real life as well. the load in the simulation is just a thing for load. i used a 230v capacitor for load in real life to see the output signal. If I remember correctlyi just got around 0.4 amps output.
ofc i didnt use 24v for uno vin, i used another battery for uno.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.