I'm a programmer by trade- I'm fairly new to electronics, I know the basics and can throw together simple circuits but I am in need of some guidance with this problem ...
I have built a circuit to control an automated locker unit. The brain side of the circuit is comprised of an Arduino Mega2560, which is plugged into a FOX G20 Linux Box http://www.acmesystems.it/foxg20/doku.php via USB. I've written some C code that's running on the FOX, which communicates with the Arduino. The Arduino is also being powered via the USB. The functional side of the circuit consists of a solenoid (lock mechanism), an ID-20 RFID card reader (read user access-card swipes), and an alphanumeric LCD (pass instructions to the user), which allow a user to interact with the locker. These components are connected up to the Arduino via reed relays, and run off the same power source as the FOX and Arduino (via the FOX), a 5V 4A power supply- apart from the solenoid which has it's own 12V supply.
I have tested the circuit by substituting my laptop for the FOX, simulating the comms the Arduino would normal receive. Everything works fine and the ID-20s achieve a read range of ~10cm. However, when connected up to the FOX, the system still works but the ID-20 read range is reduced to around ~2cm. I really need to increase this! From my basic electronics knowledge I would gather that this problem occurs because the ID-20 and the FOX are on the same circuit and are not isolated from each other, maybe the shared grounds are causing signal interference, or the circuit net inductance is reduced because they're connected in parallel, which might be reducing the current flow to the ID-20s? I apologise, I'm just throwing darts randomly. Anyhow, I believe it's an isolation issue.
Would you need more information to make a proper diagnosis? I could draw a circuit diagram.
What would be the best way of isolating the FOX from the rest of the 5V components in the system. Perhaps an isolation transformer, or an optocoupler?