user3225: I've researched how to attach multiple buttons to a single analog input using a resistor network. Instructables has a good lesson on this: http://www.instructables.com/id/How-to-access-5-buttons-through-1-Arduino-input/?ALLSTEPS
My requirement is that I need to attach an interrupt to buttons (ie the analog input) before reading the analog value, so that all the buttons can act as a trigger.
This works for voltages in the higher range, but not in the lower range (the trigger input waits for a RISING edge). 
Can any one suggest a circuit that steps a >0V+ to +5V input to a +5V output so that any button push would trigger the input?
Otherwise, does anyone have other suggestions on how to use triggers for each button?

user10224: Considering the fact that from a functional point of view, you just want to have more digital inputs, I would propose to use a Parallel-In Serial-Out Expander, (e.g. CD4021B or 74HC165).
This IC (i.e. 74HC165) has 8 digital inputs, that can be 'shifted' and send to your Arduino using just 2 wires. Arduino has a built-in function for this (i.e. shiftIn) to read the input and to convert it to a byte. 
If 8 inputs is not enough, then you can chain multiple IC to create 16, 24 ... digital inputs.
There is an official tutorial for the CD4021B.
I don't know if this is a requirement, but if you want to register multiple key-presses at the same time, then this is a really good strategy.

user368: Use the analog comparator in the ATmega328P to trigger an interrupt once the input voltage rises enough to indicate a button press.
Connect the analog network to both the analog input and D6.
If your lowest analog voltage is not greater than 1.2V then apply a voltage greater than 0V but more than 40mV less than your lowest analog voltage to D7. If you have not connected the voltage then configure the comparator to use the internal bandgap reference (ACSR |= _BV(ACBG)).
Enable the comparator interrupt and capture on a rising edge (ACSR |= _BV(ACIE) | _BV(ACIS1) | _BV(ACIS0)).
Disable the digital input on D6 (AIN0), and on D7 (AIN1) if connected to a voltage reference (DIDR1 |= _BV(AIN0D), DIDR1 |= _BV(AIN1D)).
Write an ISR that does what you want on comparator trigger (ISR(ANALOG_COMP_vect) { ... }).
Now go back and read all that three more times until you understand it. As always, see the ATmega328P datasheet for details.

3225: <p>I've researched how to attach multiple buttons to a single analog input using a resistor network. Instructables has a good lesson on this: <a href="http://www.instructables.com/id/How-to-access-5-buttons-through-1-Arduino-input/?ALLSTEPS" rel="nofollow">http://www.instructables.com/id/How-to-access-5-buttons-through-1-Arduino-input/?ALLSTEPS</a></p>

<p>My requirement is that I need to attach an interrupt to buttons (ie the analog input) before reading the analog value, so that all the buttons can act as a trigger.</p>

<p>This works for voltages in the higher range, but not in the lower range (the trigger input waits for a RISING edge). </p>

<p>Can any one suggest a circuit that steps a >0V+ to +5V input to a +5V output so that any button push would trigger the input?</p>

<p>Otherwise, does anyone have other suggestions on how to use triggers for each button?</p>
 10224: <p>Considering the fact that from a <em>functional point of view</em>, you just want <strong>to have more digital inputs, I would propose to use a <code>Parallel-In Serial-Out Expander</code></strong>, (e.g. <code>CD4021B</code> or <code>74HC165</code>).</p>

<p>This IC (i.e. <code>74HC165</code>) has 8 digital inputs, that can be 'shifted' and send to your Arduino using just 2 wires. Arduino has a built-in function for this (i.e. <code>shiftIn</code>) to read the input and to convert it to a byte. </p>

<p>If 8 inputs is not enough, then you can chain multiple IC to create 16, 24 ... digital inputs.</p>

<p>There is an official <a href="http://www.arduino.cc/en/Tutorial/ShiftIn" rel="nofollow">tutorial for the CD4021B</a>.</p>

<p>I don't know if this is a requirement, but if you want to register <strong>multiple key-presses at the same time</strong>, then this is a really good strategy.</p>
 368: <p>Use the analog comparator in the ATmega328P to trigger an interrupt once the input voltage rises enough to indicate a button press.</p>

<p>Connect the analog network to both the analog input and D6.</p>

<p>If your lowest analog voltage is not greater than 1.2V then apply a voltage greater than 0V but more than 40mV less than your lowest analog voltage to D7. If you have <em>not</em> connected the voltage then configure the comparator to use the internal bandgap reference (<code>ACSR |= _BV(ACBG)</code>).</p>

<p>Enable the comparator interrupt and capture on a rising edge (<code>ACSR |= _BV(ACIE) | _BV(ACIS1) | _BV(ACIS0)</code>).</p>

<p>Disable the digital input on D6 (AIN0), and on D7 (AIN1) if connected to a voltage reference (<code>DIDR1 |= _BV(AIN0D)</code>, <code>DIDR1 |= _BV(AIN1D)</code>).</p>

<p><a href="http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html">Write an ISR</a> that does what you want on comparator trigger (<code>ISR(ANALOG_COMP_vect) { ... }</code>).</p>

<p>Now go back and read all that <strong><em>three more times</em></strong> until you understand it. As always, see the ATmega328P datasheet for details.</p>
