Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

issue in control circuit of three phase controlled rectifier based on scr

Status
Not open for further replies.

irfanatul

New Member
Hi...
i have prepared three phase controlled rectifier.now i want to test it.i have used R-triggering circuit and i am using arduino due.in that circuit, i have used six opto-coupler for six scr.
and they are giving six pulses as per my coding.but problem is of synchronisation. for that i have sensed line to line voltage and prepared schmitt trigger and it gives me zero crossing of the line to line voltage in terms of square wave then i put one diode to remove negative square pulse.
this pulse of 3.0 volt and i am giving this pulse to arduino due and i am generating six pulses but when i checked it on DSO then first pulse is not at exact zero cross of the voltage.some times it is at zero cross and sometimes it varies. so please suggest me what should i do? and my code is as follow.and also suggest me if there is problem in coding?

Code:
int pin2=2,pin3=3,pin4=4,pin5=5,pin6=6,pin7=7;
int sensor=A0;
void setup() {
  Serial.begin(115200);
  pinMode(pin2,OUTPUT);
  pinMode(pin3,OUTPUT);
  pinMode(pin4,OUTPUT);
  pinMode(pin5,OUTPUT);
  pinMode(pin6,OUTPUT);
  pinMode(pin7,OUTPUT);
   // put your setup code here, to run once:

}
void loop() {
  
  int i,c;
  int d[15];
  for(i=1;i<=15;i++)
  {
  d[i] = analogRead(A0);
  Serial.println(d[i]);
  d[0]= 1023;
  c=d[i]-d[i-1];
  Serial.println(c);
  if (c>0)
  {
  goto IRFAN; 
  }
  
}
// put your main code here, to run repeatedly: 
  IRFAN:
  while(1)
{
  //Serial.println('c');
  digitalWrite(pin7,LOW);
  digitalWrite(pin2,HIGH);
  delayMicroseconds(3309);
  digitalWrite(pin2,LOW);
  digitalWrite(pin3,HIGH);
  delayMicroseconds(3309);
  digitalWrite(pin3,LOW);
  digitalWrite(pin4,HIGH);
  delayMicroseconds(3309);
  digitalWrite(pin4,LOW);
  digitalWrite(pin5,HIGH);
  delayMicroseconds(3309);
  digitalWrite(pin5,LOW);
  digitalWrite(pin6,HIGH);
  delayMicroseconds(3309);
  digitalWrite(pin6,LOW);
  digitalWrite(pin7,HIGH);
  delayMicroseconds(3309);
  
}
}
In this case, i am sensing the output of schmitt trigger and then i am checking the value of the square pulse whether it it on rising edge or falling edge. i only check it once then i am looping in infinitely and i am delaying all pulses at 3333 micro-seconds.

[MODNOTE]Please use code tags when pasting code... The "#" symbol.[/MODNOTE]
 
Last edited by a moderator:
Please post the portion of your schematic where you are sensing the sinewave's zero cross detection.

I've built 3 phase motor SCR controls myself, and know exactly how important it is to sense that accurately.
Sometimes the processor may add some delay itself, but let's start with the zero crossings detection first.


EDIT, why are you delaying the pulse 3333 microseconds? At 60 Hz, that is 2 full cyles.
 
Last edited:
001.png
i need six pulse equidistant with each other so one pulse width will be 60 degree so time is 3.3 ms.thats why i have taken and i have uploaded simple schematic of schmitt trigger and then i have put diode so negative pulse is removed and then i am giving this pulse to micro controller
 
Ok,I missed one decimal point, it is 3.333 milliseconds,not 33.33

I knew you're using an opamp configured as a ST, but what I wanted to know is the resistors values and what voltage level is your AC .source.

Also,with your DSO have you checked that the ST output is stable and not jittery?

Let's solve this first and then we focus on the software.
 
i am giving R-phase voltage to the non inverting terminal and B-phase to the non-inverting terminal of 741 Op-amp. so it is giving me exact square pulse and then i have put diode in series with the output of the Op-amp.so i am getting exact square pulse at zero cross. and i have attached one figure for STUntitled.png
 
Have you actually built and powered up this circuit?
You are pumping 97 peak milli amps into the INPUT of the opamp? Or is it only a simulation?

Second issue: you are supplying +/-5 volts to a 741 type opamp? Its output swing is 2or 3 volts below the supply rail, and thus its square wave output will likely be only 2.5 volts, and then you put an additional 0.7 volt diode drop, leaving less than 1,8 volts for the microcontroller to recognize as a valid logic 1.

Lastly, when the opamp swings negative, the diode stops conducting, and without a pull down resistor, it is not a logic 0 but an open circuit. An open circuit is prone to all sorts of noise pickup.

My recommendation:
Use step down tansformers, 220 to 6 volts.
Use a proper comparator like the LM311, you won't need the diode anymore. Nor the pulldown resistor.
Calculate your hysteresis correctly.......in other words, calculate the comparator resistors to have like 100 mv hysteresis.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top