Connecting a smoke detector IDC to an Arduino Uno 3

Hello,

I’d like to apologize in advance if this has already been answered - I was not able to find an answer while searching the forum.

I want to wire a System Sensor-brand CO1224T carbon monoxide detector to a Arduino Uno 3, but I am not sure what the most viable option would be to do so. I am fairly new to electrical engineering as a whole, what I want to determine is how I can connect the sensor without damaging the board. The 24VDC required for the first two wires is accounted for, and is being provided from a separate source. My concern is simply that the detector will draw more current through the signalling wires than the board is capable of handling. What should I do to prevent damage, or do I have a misconceived notion of how this system operates, and a direct connection will be fine?

Thank you for any advice you can offer.

Welcome to the forums!
The CO1224 has 2 “dry contact” relays: 1 for trouble, 1 for alarm. The relay contacts themselves do not consume/produce current - they are just switches operated by the CO sensor. The trouble relay has 2 terminals, and is closed as long as the detector is powered and operating normally. The alarm relay has 3 terminals, Normally Closed, Common, and Normally Open. When the detector is not in alarm, the relay connects the Normally-Closed and Common terminals, and when the detector alarms, the relay switches, connecting the Common and Normally Open terminals instead.
Connecting the Arduino Uno to the dry contacts is a very simple procedure; you can connect the relays to your input pins by using the Arduino’s onboard 5v power supply as your + and either a digital or analog input pin as a -. Make sure to either include a pull-down resistor on the input pin or enable the internal pull-down resistor on the board - this will prevent electrical “noise” from the environment from causing a false reading. When a relay closes, it will send the 5V signal into the input pin and the Arduino recognizes there is now a 5V signal present. Since the input pins are simply reading their states (by checking whether voltage is present or not) this does not consume much current at all.
The benefit to using an analog input over a digital input is the supervision principle. The digital pin will only be able to recognize ON (seeing 5V) or OFF (seeing 0V) and returns a 1 or 0 accordingly. The analog input pin can read the specific voltage at the pin (returns a number from 0-1023, there’s an algorithm to convert this to a voltage). Using the analog pin, you can supervise your wiring in exactly the same manner as a real system is supervised. Place your end-of-line resistor and input wiring on the contact terminals as indicated by the wiring diagram, and when the sensor is operating normally you will see a small amount of voltage from the end-of-line resistor at the analog input pin. If the unit goes into trouble, the trouble contacts open (disconnecting the resistor from your input wire) and the input pin will then see 0V. If the unit goes into alarm, the alarm contacts close, shorting the 5V line directly to your input (by-passing the the EOL resistor).

Here’s a couple of links:
CO1224TR manual (check out the wiring diagram on the top of page 4): https://www.systemsensor.com/en-us/Documents/CO1224T_TR_Manual_I56-3111.pdf
Sample Arduino sketch for reading analog input pin and converting it to voltage (for your case, simply switch the potentiometer with the wires going to your CO relay contacts): https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
An explanation of pull-up/pull-down resistors for arduino inputs (check out post #1 and #3 particularly): https://forum.arduino.cc/index.php?topic=378402.0
Hopefully this is helpful!