I'm working on a project where an Arduino MCU is listening to a vehicle CAN bus. Because of the location of where I need to tap into the bus, the MCU needs to be inside the vehicle cabin. But also, the MCU needs to drive some automotive relays that need to live in the engine bay.
I'm designing a solution with some small optocouplers that drive the automotive relays. The question I have is can I drive another board in the engine bay using straight GPIO connections over wires of that length, or do I need to look at something like LIN or CAN to talk to another MCU in the engine bay on the relay board? I would expect the wire length would be around 4' long, and obviously a noisy environment.
As long as you use twisted pairs to talk to it you should be fine. Look at some cat5 cable, has 4 twisted pairs in it. Larry
In this case, you probably want the optocouplers in the same housing as the Arduino and the outputs from the optocouplers need to be run such that both wires from the optocoupler leave the Arduino housing with no connection to the Arduino's supply connections. This way there are as few wires as possible actually connecting into the Arduino circuit, that leave the housing and are able to pick up interference.
There can be a common connection for all the optocoupler outputs and twisting is unnecessary (the automotive wiring clearly isn't) but it should run with the other control wires back to the relay assembly..
Thanks for the help! I'll let you know how it turns out :)