3 phase triac triggering

Hi everyone.

I have a last project from my collage to build soft starting for 3 phase induction motor. Each phase have zero crossing detector and triac triggering circuit.

For control firing angle, I make from 3 arduino nano to drive each phase individually with dimmer program ( because my programing skill not very well ) .

For that, can I build from single board arduino ?
And what program should I use?

I am not sure why you are using 3 Nanos, one for each phase or how they communicate with each other, this would make it more complicated. There are many tutorials, demonstrations etc on line showing this. Since I have no clue as to what size motor or voltage we are talking about I cannot begin to answer your question. If you find a program that does what you want you are lucky, there are many that will be close. As the programmer you should be able to make it fit your application. Try searching for: "arduino 3 phase motor". With that term I got over 3 million hits. Start by posting your schematic, not a frizzy picture and be sure to have links to each of the hardware devices that have technical information. Places like azon, alie, etc just have sales info. With programming practice your programing skill will get much better.

I think that the firing timings could be generated using three timers of a single NANO and the zero crossing markers. Would appreciate to know the following information:

1. After positive zero crossing, how long you want to wait before firing R-phase triac?
2. How long you want to wait to fire Y-phase triac after firing R-phase triac?
3. How long you want to wait to fire B-phase triac after firing Y-phase triac?

The frequency is slow-enough that one Arduino should do it.

I made a single-phase dimmer a long time ago with a different microcontroller. It's simple concept once you understand it and the programming logic is simple. A regular-old manual light dimmer doesn't even have a processor.

You don't REALLY need 3 zero-crossing detectors since you know the frequency and relative phases. You are going trigger one of the TRIACs 6 times during the period of per cycle.

And you only need to detect one zero-crossing per-cycle... If you detect the positive-going zero-crossing, you know exactly when the negative crossing is coming, 1/2 cycle later.

If I remember correctly, I detected slightly after the positive-going zero crossing and calculated when the next two crossings were coming. I clearly remember using some trial-and-error to get the timing right. And that wasn't hard. If you trigger too-soon (before then next-calculated zero crossing) you're triggering at the end of a half-cycle and (if it was a light dimmer) it will be dim instead of bright.

@newtoni
Would be glad to see how you are going to implement it using TC1 (for example) when --

R-phase triac/SCR fires after 30-degree of +ve zero crossing.
Y-phase triac/SCR fires 120-degree later of R-phase.
B-phase triac/SCR fires 120-degree later of Y-phase.

A three-phase motor will generate harmonics of the power frequency, so any zero-crossing will see several for each cycle.

thanks for a lot reply here, for the first step i try for single phase, for the code is here:

const byte ZCP = 2; // zero cross pin
const unsigned int dim = 5500;
int output = 12;
unsigned long lastmicros;
 unsigned long curentmicros;

void setup() {

  pinMode(ZCP, INPUT);
  pinMode(output, OUTPUT); //triac out
  digitalWrite(output, LOW);
 }

void loop() {

  if (digitalRead(ZCP) == HIGH){
    lastmicros = micros();
  }
    Zero_Cross();

}

void Zero_Cross() {
 curentmicros = micros();
  if (curentmicros - lastmicros >= dim){
  digitalWrite(output, HIGH);
  delayMicroseconds(20);
  digitalWrite(output, LOW);
  }
}

its work well , this output is stable. the timer code looks complicated for me , so i use millis ,i dont use interuppt because my assumed if I use interrupt based of zero crossing, 2 another phase will occure before interupt finished , correct me if i wrong.

next step i will try to expand this code for 3 phase and add potentiometer for adjust time for ramp voltage from 0-330v . you have any idea for this code ?,

for motor i use is 380v 2HP power, my early desain based on internet source , i use rbddimmer library , but the problem the library only can use for single phase withsingle zero crossing input, so my idea to use 3 nano drive each phase individually. but another problem occure where ramp time between 3 arduino is different , so the motor don't start smothly. so for next design i go for single board to drive 3 phase .
this is my old board schematic
Capture
(I build 3 pcs and paralel the input pin to another nanos)

the zero crossing detector from pc817

trigering triac forom moc3021
TRIGER

great idea but how implemented it , the zc signal in phase R are fired again before Y phase conduct the voltage acros triacs?

1 Like

What is your plan to actually turn the AC power to the motor on and off? All three phases will never be turned on and off at the same identical time is using a manual switch or a contactor.

Variable speed ( frequency) startup is worth a look as the harmonics are lower and more torque is available at start up.

Your photo looks a bit scary - I hope those terminals are not 415v 3ph . You shouldn’t work like that !!

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