Components and supplies

About this project

This project is a continuous variator of supplied power for 220V/110V power tools, lights or heating. It works for AC as well as for DC power supply, that is why it is named Universal. Compared to existing built-in speed variator if the power tool has one, our solution using 600V CoolMos C7 makes less EMI and noise. Moreover, it works for controlling AC or DC power supply with the same hardware. It is useful because of you can add new functionaliies to low-end electrical equipment.

To vary the supplied power, two 600V CoolMos C7 are tied back-to-back, then together are put in series with the load. The pack of two CoolMos C7 controls the supplied power by controlling the supplied current. The pack in turn is controlled by an Arduino which PWM modulates the supply current passing through the two CoolMos C7.

The circuit and components are not galvanic isolated. Using a Wireless shield this power variator can be remotely controlled.

One use case is to vary the speed of low-end power tools such as drills, saws, and which don't have speed variation. Many times, we would need the tool to run at lower speed to avoid damaging the part we are working on, or sometimes just to reduce the noise for neighbors.

Another use case is to fine tune the electrical heater's temperature, and automatically switch it on/off depending on the ambient temperature.

Another use case is to control a fan's speed and stop it as a function of ambient temperature.

Code

Varying DC power supplyArduino

This code periodically and endlessly increase then decrease the supplied DC power. When used on AC power, only half of the cycle is passed, consequently the max power is only half of the max of supplied power.

int G1=9; // the PWM pin connected to gate of CoolMos-1
int G2=6; // the PWM pin connected to gate of CoolMos-2
int S=7; // the digital out of '0' connected to the Driver Source of both CoolMos-1,2
int brightness=0; // how much power on the load (e.g. lamp)int increase=5; // how many points to increase the power by
// the setup routine runs once when you press reset:
void setup(){ // declare pin 9/6/7 to be an output:
pinMode(G1, OUTPUT); pinMode(G2, OUTPUT); pinMode(S, OUTPUT);}// the loop routine runs over and over again forever:
void loop(){G2=0;S=0; // set the brightness of pin 9:
analogWrite(G1, brightness); // change the brightness for next time through the loop:
brightness= brightness + increase; // reverse the direction of the fading at the ends of the fade:
if(brightness <=0|| brightness >=255){increase= -increase;} // waitfor30 milliseconds to see the dimming effect
delay(30);}

Varying AC power supplyArduino

This code cycles the supplied power between minimum and maximum with one incrementation or decrementation per second