24V Industrial I/O Shield
Analog Inputs: 2x 4-20mA, 2x 0-5V/0-10V (jumper selectable, overvoltage/overcurrent Protection). To select a 0-5V input on V(0) or V(1), leave the respective jumper open. To select a 0-10V compatible input, short the two pins of jumper V(0) or V(1).
Digital Inputs: 8x Isolated Digital Inputs split into 2 groups of 4 inputs. Each group of 4 may be configured as sourcing or sinking inputs. Operate from 3.3V to 24V.
Digital Outputs: 8x Isolated Sourcing outputs (100mA each with a maximum sum between the 8 outputs of 750mA) with red LED output indicators and overcurrent and overvoltage protection (overvoltage protection supplied by clamping diodes to output driver supply). Supplied by VIN and COM on terminal block J5. Operation from 5V-28V. Six of the eight outputs are driven by the I/O expander, while 2 of them are driven from the Arduino to enable native PWM functionality. These pins are denoted on the PCB by labels “P1” and “P2”, and may be driven by Arduino pins D9 or D11 for PWM1 and D3 or D10 for PWM2 depending on the position of the respective jumpers.
Communication: Terminal block RS232 signal levels connected to Arduino D0/D4 (RX) and D1/D5 (TX) depending on the position of the respective jumpers.
Jumpers: Digital Inputs and Outputs are driven by an I2C I/O Expander (MCP23017) on Arduino Pins A4 and A5. The I2C Address of the expander may be configured by shorting the jumper J1 (I/O ADDR). The default address is 0b0000001, with the jumper shorted the address becomes 0b0000000. I/O expander interrupts are available on Arduino pins 7 or 8 (depending on the jumper position on JP3). The analog to digital converter (ADS1015) I2C address may be changed by shorting J3 (ADC ADDR). With J3 open, the I2C address is 0b1001000, and with J3 shorted the address becomes 0b10001001.
Isolation: If non-isolated outputs are desired, the terminal labeled “COM” on the 10 position terminal block may be connected to the GND of the Ruggeduino/Rugged Mega. This is most easily accomplished by running a wire from the COM pin on the Industrial Shield to the GND pin of the power entry terminal block on the Ruggeduino/Rugged Mega. If the outputs P1-P2, A0-A5 are desired to run at the same voltage as the Ruggeduino/Rugged Mega input power supply, the VIN terminal on the shield may be connected to the positive terminal of the Ruggeduino/Rugged Mega power entry terminal block along with the power supply. This way, both PCBs will be powered by a single supply. In this configuration, the outputs are NOT ISOLATED!
The isolation on the digital inputs may also be defeated in a similar manner. If the inputs are desired to be in the sinking configuration, the COM pin may be connected to any pin labeled “GND” on the Industrial Shield. This defeats the input isolation. If the inputs are desired to be in the sourcing configuration, use the COM pin as normal, but ensure that the GND of the COM supply, GND of the digital output driving the Industrial Shield, and the GND of the industrial shield are all connected together. In both configurations above, the inputs are NOT ISOLATED!
Using the Digital Input Banks in Sourcing/Sinking mode:
The digital inputs are split into two banks of four inputs. Each bank may be used in sinking or sourcing mode.
In sinking input mode, the “COM” terminal must be connected to the common ground of the sourcing outputs. This provides a current path from a sourcing output, through the input circuit of the industrial shield, and back to the ground of the sourcing output.
In sourcing input mode, the “COM” terminal must be connected to the positive supply of the sinking outputs. This provides a current path from the positive supply, through the input circuitry of the industrial shield, through the sinking output, and back to the ground of the supply.
An example is shown below in which Bank 0 is configured as a sinking input, and Bank 1 is configured as a sourcing input – each connected to a set of 4 outputs.
Using the 4-20mA Input
The 4-20mA input is designed to be used in a current sinking configuration. The 4-20mA signal is measured by reading the voltage across a 200 ohm sense resistor. This gives a full scale voltage range of 0.80V to 4.0V corresponding to the 4mA-20mA input. The voltage at the terminal block pins I(2) and I(3) will be slightly higher than the analog-to-digital measurement indicates since there is an additional current limiting element with an approximate series resistance of 47Ω.
This shield will not work with a standard Arduino mega2560. A Rugged MEGA or Rugged MEGA ET will be needed. The standard Arduino mega has the I2C pins on headers that the Uno/Industrial Shield doesn't have - which means that the I2C I/O expander and ADC won't be easily used on a standard Mega2560. On the Ruggeduino Mega, there is a jumper, J12, that switches which pins the SPI and I2C ports are brought.
When using a Rugged MEGA the jumper must be in place on J12 across pins 2 and 3 ( in the position towards the center of the PCB. This brings the I2C port of the Rugged MEGA to the same pins as the I2C port on an Arduino Uno and Ruggeduino. It enables communication with the I/O expander and ADC on the Industrial Shield.
24V AC Connectivity
The inputs on the 24V Industrial Shield can be connected to 24VAC, assuming neither 'leg' of the 24VAC is connected to any lines besides the inputs.
Some basic dimensions for enclosure integration for the 24V Industrial I/O Shield mounted on the Ruggeduino. Note the Rugged MEGA can also be used with the 24V Industrial Shield. Email if dimensional information is needed for the Rugged MEGA. In the orientation from the image below, left to right (X) = 3.30", Bottom to Top including USB Jack (Y) = 2.96", Height (Z) = 2.01" (2 shields with stacking kit) or 1.5" (1 shield) - including lead length on bottom of Ruggeduino.
Sample sketch for the Rugged MEGA.
This sketch, intended to provide insight on basic functionality of the shield, sets up the ADC and I/O expander, with Input 0 (B0) set up as an input, and A0 set up as an output. The output will mirror the input (with a 1 second delay), and will also spit out values from the ADC (all 4 channels). The values that are non-zero are due to the tiny amount of leakage through the clamping diode, but any input will overcome the leakage.