Thyristor as a traic

Status
Not open for further replies.

Rameshadkri

New Member
Hi, I have a thyristor with the connection as in this thyristor and i am trying to use it as a traic. So i shorted terminal 2 and 3. terminal 1 and 7 are already connected as in this thyristor.Also i have shorted both the gate (4 and 6).Now i want it to act as a traic with terminal M1(7) and M2(5) and gate(wire that has connected 4 and 6). Will this work?

Problem: When i simply gave supply to 7 and 5 with a blub connected between them(no pulse signal to gate) the blub glow. Then I checked the individual gate terminal with my tester i saw a phase indication present in gate terminal 4. That was causing the blub to glow. But i expect no phase indication in both gate since i want it to be controlled through my pulse signal. What actually is happening in this case and how can i solve it?
Note: my connection is same as in second picture.
Thank you.

 
The triggerin in an antiparallel SCR configuration is different than from a Triac.
In a Triac you will always have three quadrant triggering and in select types, four quadrants.

But in the antiparallel SCR only two quadrants are available.
 
The triggerin in an antiparallel SCR configuration is different than from a Triac.
In a Triac you will always have three quadrant triggering and in select types, four quadrants.

But in the antiparallel SCR only two quadrants are available.

Actually i am trying to make a dimming circuit that can be controlled through the number of zero crossing. It looks something like this(fig 1). I am trying to trigger gate of triac to give variable power to the load.My overall program is this:

volatile byte count=0;
int AC_LOAD = 3;
int dimming = 128;
void setup()
{
Serial.begin(9600);
Serial.println("Zero Cross count");
pinMode(AC_LOAD, OUTPUT);
attachInterrupt(0, zero_crosss_int, RISING);
}
void zero_crosss_int()
{
count++;
firing();
}
void firing()
{
int dimtime = (75*dimming);
delayMicroseconds(dimtime);
digitalWrite(AC_LOAD, HIGH);
delayMicroseconds(10);
digitalWrite(AC_LOAD, LOW);
}
void loop() {
delay(1000);
noInterrupts();
int zc = count;
count = 0;
interrupts();
Serial.print("n=");
Serial.print(zc);
Serial.println(" ZC per second");
if(zc>=100)
{
dimming=0*128;
}
else{
dimming=0.5*128;
}
}

But the problem is : when i count the zero crossing per sec it works well, When i fire the triac alone it too works well, but when i tried to control the firing according to number of zero crossing per second as below, there appears a problem.
if(zc>100)
dimming=0*128;
else
dimming=0.5*128;

The problem is if i call function firing() within void zero_crosss_int() (as below) then number of zero crossing per second (which is want) goes higher than it should. I think this is due to delaymicroseconds() inside firing() which is causing some delay and made the time more than 1 second.

void zero_crosss_int()
{
count++;
firing();
}

Can you please suggest how can i do both stuff ( calculating zero crossing per second as well as firing the traic) at once. Thank you.

 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…