I am looking for options to access between 1 and 6 remote I/O modules (box with 8 outputs for relays/pumps/motors/valves, 8 inputs for status, 1-3 meters from the arduino board). The first way would be run directly from the box with the arduino, but that would defeat a modular design and require 18+ wires. I'm thinking a comm bus between the arduino and the remote I/O module. What comm bus and board do you suggest?
P.S. This is a master-slave style layout, where the arduino is the master and the remote I/O modules are slaves and do not need to talk to each other.
you need to specify what the remotes do, e.g.
can you use off the shelf devices or will you build you own?
do you require local processing?
will they have a local power source or supplied from a central source?
how much data is being communicated per second/minute/hour/day?
That's listed in post #1. Allow me to rephrase. The remotes communicate the status of 8 inputs (limit and status switches) and control 8 outputs (combination of pumps and valves). All processing is centralized to provide modular design, power will be supplied from the central module housing the processor.
The processing module is designed using all local I/O and one remote module. I need to expand on this. Using and running wires to/from digital pins is not a feasible option (not enough pins, too many wires to run). I'm looking for an I/O expansion method that can handle a wire length of 1-3 meters. I have considered using arduino nanos but what is you suggestion for connecting 6 nanos to 1 UNO?
If I went the nano route, all the nano programs would be the same as the node addresses would differentiate the modules. That's a plus for that method. Unfortunately, the nanos can't drive the relays directly so that's a minus (requires nano plus relay board) The RS-485 board is way expensive, short 4 inputs, and has functionality I don't need.
I agree the industrial quality RS485 boards are expensive - I looked for some low cost alternatives without sucess
what is the problem with the nano driving relays ? I have several projects using 5volt relays to operate valves, pumps, etc
make sure you power the relays from a seperate power supply
you could use I2C to communicate between the control and modules if you use good quality cable and low speed -I2C interface is built into the nano - however, programming is more complex than RS485 serial
canbus is another alternative but again requires additional hardware and programming is complex
The modules at Arduino Relay Tutorial - Control High Voltage Devices with Arduino do not power the relays directly. That really is not the direction I was heading. I was highlighting the two-board solution. Hoping someone has an idea for a single board solution. An inexpensive single board solution (the RS-485 board has almost all the features, but is also pricey).