Hi all, This will be my second foray into the world of Arduino, previously I managed to control a stepper motor through a driver module, with a potentiometer input.
This project will attempt to provide a timed ignition 'kill' for a motorbike to allow fast gear changes. The ignition type is CDI, where a capacitor is charged to approx -250v (regulated) then dumped via an SCR to the coil primary (essentially 100:1 transformer), which gives 25kV secondary voltage for the spark plug. Peak primary current is around 30A, duration is around 15us. The pulsed input is negative to ground. The coil 'rings' after the initial pulse so the signal on the line is AC. The existing kill switch button shorts the input to the coil to ground. See image of typical waveform below.
I want to mimic the operation of the existing kill switch with the Arduino, to allow the ignition to be killed for X ms based on RPM. I need to ground the negative pulse, will an SCR do this? The Arduino ground can be common with the CDI system, I imagine it will have to be.
I also want to sense engine speed by frequency on this line when the ignition is firing normally, can I use a voltage divider to bring the pulse voltage down to logic level? Can I use a diode to block the negative initial pulse then measure the positive 'ring' of the coil, rather than inverting the signal? Will the Arduino be able to catch this short (15us) positive pulse with an interrupt? Or will I need some external component? I will need to incorporate a threshold value and a delay to prevent multiple triggers as the coil rings, I only want to trigger off the first one.
Any ideas will be much appreciated!