Maker.io main logo

30A AC Soft Starter (Inrush Current Limiter) With Fail-Safe

2023-02-03 | By Hesam Moshiri

License: Attribution-NonCommercial-ShareAlike

Are you tired of dealing with the damaging effects of inrush currents on your industrial devices? Look no further than an AC inrush current limiter (soft starter). Inrush current, also known as surge current, is the large amount of current that flows into a load at start-up. This can cause damage to equipment, reduce its lifespan, and lead to costly downtime. But with an AC inrush current limiter, you can eliminate these problems. Simply, a soft starter works by limiting the initial current flow, ensuring a smooth and efficient start-up, while protecting your equipment from damage.

I decided to design this AC soft starter that is equipped with a fail-safe mechanism. During start-up, the inrush current passes through a power resistor, and after a delay (adjustable between 1ms to 1s), a 30A power Relay shorts the resistor and applies the full power to the load. If this Relay fails for whatever reason, the power resistor won’t melt everything; the logic circuit activates the fail-safe Relay that turns OFF the load to prevent any damage. 3 LEDs indicate the Supply, Normal, and Fault conditions. I selected the cheap ATTiny13 MCU as a controller.

To design the schematic and PCB, I used Altium Designer 23. I used the Arduino IDE to write the MCU code, so it is pretty easy to follow and understand. 

Let’s get started :-)

 

 

Circuit Analysis

Figure 1 shows the schematic diagram of the device. As it is clear, the heart of the circuit is the ATTiny13 microcontroller.

soft starter circuit schematic

 Figure 1, Schematic diagram of the 30A AC Soft Starter (Inrush current limiter)

 

I start explaining the schematic from the top. AC-IN is the connector for the AC Mains input. R2 is the 10D5651K varistor to eliminate voltage spikes at the input. U1 is the HLK-PM12 AC to DC module that handles 12V at the output. This voltage is suitable to drive the Relays. R1 is a 5K potentiometer to adjust the delay. You can adjust the delay to something between 1ms and 1s. ISP is a male pin header for the AVR ISP programmer. IC1A and IC1B are parts of the ATTiny13 microcontroller. R3 is a pullup resistor for the RESET pin. C2 and C3 are decoupling capacitors for the VCC pin.

R4 and C4 build an RC filter at the input of the REG1. REG1 is the 78L05 SOT-89 5V regulator to build a stable 5V power for the microcontroller. D1 is a 3mm yellow through-hole LED to indicate a proper supply voltage and R5 limits the current to D1. C5 and C6 are output capacitors to stabilize the regulator output voltage and reduce the noise. NTC is a 2 Pins XH connector to wire a 10K NTC to the board. R6 and NTC build a voltage divider, where voltage variations indicate changes in the temperature. If the temperature increases at the NTC side, the output voltage increases, and vice versa. C6 is a decoupling capacitor to reduce noise.

There are two Relay circuits here, both are identical. I will explain one of them. Q1 is a Si2302 Mosfet to drive the K1 Relay. R10 is a pulldown resistor for the Gate pin of Q1 to prevent unwanted triggering of the Mosfet. D2 is a 1N4007 diode to protect the Mosfet against reverse currents of the Relay’s coil. D4 is a 3mm Red LED to indicate the fault condition. C8 damps the voltage spikes of Relay activation/deactivation. R9 is a 27R-20W power resistor to limit the inrush current, you can use other values depending on your application.

 

PCB Layout

Figure 2 shows the PCB layout of the design. It’s a two layers PCB board and I used a mixture of SMD and through-hole components. In my opinion, component placement is the first rule in a good PCB design. In this PCB, the separation between the power and logic circuits is clear.

inrush current limiter pcb

Figure 2, PCB layout of the 30A AC Soft Starter (Inrush current limiter)

 

Code

I use the Arduino IDE to write and compile the MCU code. I installed the MicroCore in the library manager to be able to compile the code for ATTiny13. Fuse bits must be set on the 9.6MHz internal clock, with no clock division (disable DIV8). 

If you plan to modify the code, it is as follows:

 

Copy Code
#define Relay1 1
#define Relay2 2

analog_pin_t potDelay = A3;
analog_pin_t NTC = A2;

unsigned int rawTemp = 0, rawPot = 0, delayms = 1;
unsigned char counter = 0;

void setup() {
pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
digitalWrite(Relay1, LOW);
digitalWrite(Relay2, LOW);
}


void loop() {
rawTemp = analogRead(NTC) rawTemp;
rawPot = analogRead(potDelay) rawPot;
counter ;
if (counter == 10)
{
rawTemp = rawTemp / 10;
rawPot = rawPot / 10;
delayms = map(rawPot, 0, 1023, 1, 1000);
delay(delayms);
digitalWrite(Relay2, HIGH);
if (rawTemp > 800)
{
fault();
}
counter = 0;
rawTemp = 0;
rawPot = 0;
}
}


void fault()
{
while (1)
{
digitalWrite(Relay1, HIGH);
digitalWrite(Relay2, LOW);
}
}

 

Assembly and Test

Figure 3 shows the assembled PCB board. You should wire a small 10K NTC from the board and mount it on the power resistor. The best method to fix the NTC is to use some silicon glue (thermal conductive glue). Simply adjust the potentiometer for your desired delay. Pay attention to the status of 3 LEDs (Yellow, Green, and RED). Please watch the YouTube video to learn how to test/adjust the board.

ac soft starter inrush current limiter

Figure 3, Assembled board of the 30A AC Soft Starter (Inrush current limiter)

 

Bill of Materials

Figure 4 shows the bill of materials for the project. 

soft starter circuit

Figure 4, Bill of materials for the 30A AC Soft Starter (Inrush current limiter) project

TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum