Would I be able to use interrupts on a signal like this?

Hi,

I'm not sure if this question is easily answered or has been answered before but here goes nothing.
I have the following signal (link won't show up so I have attached it to this post):

and I need to measure the period that the pulse is on, as well as the period that the pulse is off (this is where the ripple is as well).
I will be using an Arduino Due and was thinking of using interrupts on the rising edge and falling edge of the signal (one for each), trigger a start timer for the on and off of the pulse.
Would that be possible at that scale? What things should I be looking out for?
Thanks in advance!

Are you wanting to detect/measure the large pulse and all the > 1V ringing pulses or just the large pulse times?
You should get rid of the negative voltages going into MCU pins. They usually have some protection but only at very very low amperage.

the ADC has very high impedance. It is possible to use the ADC to detect a certain threshold on that signal. As stated above you should remove the AC offset and limit the signal to 5V level in case it can spike higher.

Image from Original Post so we don't have to download it. See this Simple Image Guide

...R

What is the frequency of the pulses?

An interrupt will detect a pulse that rises above the threshold for a HIGH value - you will need to read the datasheet to check what that is. If the "bounce" pulses exceed that threshold they will also trigger the interrupt.

...R

elieiam:
Would that be possible at that scale? What things should I be looking out for?

The 'input capture' feature may be in your future. You'll have to dig into the processor datasheet for this.

What is the frequency of the pulses?

From the scope plot, it seems the large pulses are around 40uS apart.
That’s pretty fast, but using a clean, tight interrupt handler, the 16MHz chips should be able to handle them once the input signal is cleaned up.

Thanks everyone for your help!
After trying everything I could last night with interrupts, I've decided to use pulseIn instead.
Basically, using interrupts means that I have to start one timer when the pulse occurs and stop another timer at the same time (rising edge) and stop the first timer on the falling edge, starting the second one (I'm measuring the duration that the pulse is on and the duration that the pulse is off).
pulseIn works perfectly as I fed the same signal into 2 different pins and had a pulseIn read on a HIGH on one and a LOW on another.
Durations seem correct and change accurately to a difference in load, as expected.
Thanks again for your help everyone!