I have been studying how to bring what I would like to do into reality, and in theory it sounds straightforward, however the Arduino just isn't responding how I think it should.
What I'm Trying To Do:
I have a row of Adafruit Neo Pixel LED's that I am attempting to use as a shift light for my car, with the LED's lighting up different ways as the Arduino interperts vehicle RPM's. I have gotten this to successfuly work using an OBD-II board but I would like to remove the OBD-II part for various reasons.
Instead, I would like to use the car's electrical system and use the Arduino as an interpreter. I have successfuly tracked down a wire (IGT) from the car's ECU that is used to command an ignition coil (engine is coil-on-plug).
Basically, I would just like to have an "RPM" integer that changes number depending on revs, that I can then use to change LED modes.
When the engine is turned on, my oscilloscope - connected to ground and the ignition coil wire - appears to show a perfectly clean waveform that increased in frequency with revs, as expected. A video of this is attachedThe problem I'm having, is that the Arduino just doesn't seem to acknowledge this waveform at all. With the Arduino's GRD to the chassis' ground, and IGT is connected to an analogue pin, when outputting the ADC sensor value to serial, it just hovers around 0-3 contiuously (0.005-0.015v) and doesn't seem to respond to changes in RPM. The oscilloscope shows, if i'm interpreting it correctly, that the ignition pulses are of about 0.55v, or 550mv which by my maths should show about 113 on the ADC sensor value?
Similarly, when IGT is attached to a Digital pin, interrupts using either Rising or Falling and pulsein() produce garbage results that do not correspond to RPM at all.
I have considered the possibility that perhaps because the signal is rising and subsequently falling so fast, that perhaps the Arduino can't detect any change, but this seems unlikely to me - would a capacitor help in this regard to maybe lengthen the pulses for a more-squared waveform? To give the arduino a greater "chance" of seeing the pulses?
I'm kind of stumped at this point and don't know how to proceed. I can see the DC voltage increase with revs on my multimeter... I can see the waves clearly increase in frequency with my oscilloscope, with little to no distortion or noise.... but the Arduino just doesn't want to play ball.
Any help on how to proceed would be greatly appreciated, thanks in advance.
Video of oscilloscope: https://photos.app.goo.gl/cvYJKjU7Vx534rqk6