Lower Voltage With A Zener Diode
A much better way to measure/detect a signal from a battery powered device would be to use a high value resistor divider.  In the case of a battery powered fire alarm you do not want to alter the function in any way or run down the battery prematurely.  Using a series resistor and a Zener to ground could result in a moderate amount of current being drained from a constant 9v signal. 

When set as a digital input without the internal pull-up resistor an I/O pin on the Arduino has a very high input resistance, (near 100M).  So if only a high/low detection is needed from a 9v signal a simple high value resistor divider is a good method that also limits the current draw from the device.  For example two resistors of 470k each could be used as a simple voltage divider for detecting a 9v signal. So long as the internal pull-up is not enabled the resulting voltage on the Arduino pin will be 4.5v when the input signal is 9v. The current draw from the 9v signal will only be about 0.0096ma.  With a voltage divider using equal value resistors the signal voltge could be as high as 10v and a 5v Arduino system would still see a safe 5v signal at the I/O pin.  The digitalRead() instruction would be used in this case.

If you want to detect and actually measure the 9v signal with the Arduino ADC system the voltage divider could be made using resistor values a bit lower to give resonable operation.  (Very high impedance signals can cause errors related to the internal capacitance of the analog input).  Using a voltage divider with two 220k resistors and a small capacitor (about 0.1uF across the grounded resistor) could make a reliable voltage divider to measure a 9v DC signal and still limit the current draw to a low level, (in this case about 0.020ma). The ADC can now safely measure a DC voltage from 0v to 10v and output an actual value related to the input voltage, (multiple this by 2 to see the original signal value).  The analogRead() instruction is used here.







simulate this circuit &ndash; Schematic created using CircuitLab