How to use a scr with arduino?

Hello, I have a project for a 2t motorcycle CDI.

In a quick summary of how the CDI works, it takes the electrical voltage generated by the stator, stores it approximately (400v) and discharges it to the coil of the motorcycle to produce a spark.

My question is how I could control the release of the 400v discharge with my arduino atmega. I am trying to modify a generic "racing" cdi that I bought to obtain parts and this same one uses 2 SCR, 2p4m, x0405, how could I connect my arduino to open and close those scr in very fast periods of time? I have seen some ideas but I can't clarify it.

It takes less than 1V to trigger an SCR so you can trigger it directly from an Arduino, but you'd need a resistor (something 1K) to protect the Arduino from excess current.

And... It depends on how the SCR circuit is wired. You need to show us a schematic.

And... I'd "feel better" with optical isolation to protect the Arduino from excess/dangerous voltages.

You'll probably want to use interrupts because every step/instruction in your software takes time and you need to know-control the time between the "action" and "reaction". That might not be necessary since motor speeds are slower than processor speeds, but it could be an issue.

1 Like

Is the connection directly to the SCR gate or is there additional trigger circuitry involved?

1 Like

From what I could get in the SCR datasheet, these should be able to be activated by 5V or less. I am using a 1k gate resistor along with a zener diode as protection for the SCR gate. My doubt is that I know about electronics. Because I have dedicated myself to repairing it, but I am not familiar with designing it, I think I could get an optocoupler from a damaged power source that I have nearby and see if it meets what I need.

If I used an optocoupler, could I handle 2 types of AC and DC current?

That way I would avoid having to rectify the current that charges the continuous discharge capacitor and could I simplify the circuit?

I'll upload a diagram when I get off work, thanks for the help anyway

Originally it seems to me that the CDI circuit took this into consideration and from what I know an SCR needs another pulse to be turned off, so I think it would have it in that case I think that's what the second SCR was for to act as a switch for the primary, but could I use the same arduino to turn it off quickly? Or would it be better to use another shutdown circuit?

For now I am waiting for a board to arrive where it is easier to design the circuit since I was going to try to adapt the original one from the CDI but I think that would only cause me headaches.

Thanks for the help

No it does not. Once the capacitor discharges through the coil and the current drops below a certain level, the SCR turns off.
If it's a 2 cylinder motor then I would think there is an SCR for each cylinder.

Not knowing what the input circuit is , it's hard to say how to trigger it. Maybe it just need a temporary connection to ground

Hi, @mikzs

You possibly need an opto coupled scr driver.
Look at this link;

I think you need something like this;

The opto isolation will help with noise and high voltage isolation.

Tom... :smiley: :+1: :coffee: :australia:

1 Like

It is correct, it is a twin-cylinder and I also thought for a moment about placing two independent SCRs with their independent capacitors since from what I know if a CDI will be placed without modifying the generic one, it does not perform and will eventually turn off a cylinder. In fact, the CDI originally has a scr to ground with its capacitor to ground while the other scr is directly at the output of the coil, another factor that I take into account is that they are not two individual spark coils, it is a single coil that sends spark to each cylinder and if progress well, I would like to make them independent for each cylinder later, returning a little to the original topic, I have my doubts regarding why connect an SCR with a ground capacitor? And for the SCR to work, I would have to connect the Arduino to the ground of the motorcycle chassis, correct? so it would be the only way to close the circuit and the scr can be activated or turned off

Thank you, before starting this small project I knew very little about how to handle an opto by reading and learning about its function. I see how useful it will be to prevent my Arduino from bursting into flames due to a direct 400v discharge to it. :smile:

This type has the capacitor connected to ground.
It's for a two/four cylinder

I'm not sure why your unit has 2 SCR of the same type

I think it has 2 scr to make the spark even faster since this original cdi, through some switches, you could make the bike not go beyond certain rpm and make it arrive "faster" supposedly it originally caught my attention for it but because of the type of engine that my motorcycle has, I think it would end up becoming outdated and causing problems.

Currently I plan to buy a pair of opto scr that Tom mentioned, sadly I can't find much variety. I will soon order the next model Moc3021 along with a perforated plate, I will recycle some other opto that I have from damaged power supplies and I will remove the CDI connector to implement it in the Perforated plate for convenience, later on I will incorporate an Arduino nano to reduce space, I have not mentioned it but I will receive the trigger signal through a hall sensor positioned where the pickup coil would originally go.

I think that with the opto scr it should be more than enough and could be a direct replacement for the original scr that I planned to use.

In case anyone is curious, my bike is a RD 250LC. I brought it back from the grave little by little and I'm looking forward to riding it soon.

Tried that on a kawasaki 2 stroke. The sensor did not survise the heat from the engine.
Can't beat the inductive pickup for reliability.

That would be a factor that I did not take into account, perhaps I could fix it to the clutch cover and not to the stator to avoid direct heat from the engine and try to cover and change the solder for one with higher heat, thus reinforcing the module, in that case I would need to create an interface to use the original sensor. What I don't know is how much voltage would be delivered since it should generate more and more as the rpm increases and filter the signal very well, but I think that would cause noise and a delay in important spark right? how did you solve it?

Hi, @mikzs
Google;

arduino automotive inductive sensor

Tom.. :smiley: :+1: :coffee: :australia:

It was a long time ago and I can't find the schematics but I found the parts list.
For the active parts there was a dual opamp a 2N7000 mosfet 2 1N914 diodes, voltage regulator, BT151-650 SCR.
The pulse from the sensor does increase in amplitude and a little in width but you trigger on an edge.

I have to look further for he schematics
You may find this app note useful:
cdi4347.pdf (72.3 KB)

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