I am working on a project that involves me using 3 separate RFID reader modules. I have three ID-12 devices and am using an Arduino as a interface between them and the computer.
I am running into problems when I attach more than one of the readers to my breadboard. With just one attached and powered up, I am getting good serial communication to my computer, but with two, both of the readers stop functioning. They both work individually, but together there is nothing.
I’ve test for signal interference by taking one and extending the connectors so that the two of the readers are several feet apart and the same happens.
My next step is to see if it is a power supply issue.
Has anyone had any experience working with multiple ID-12 modules simultaneously? Any help would be appreciated.
Are you connecting the ASCII out lines from all three readers to the same port on the Arduino? If so, you should be isolating them from each other using a buffer.
riden:
Are you connecting the ASCII out lines from all three readers to the same port on the Arduino? If so, you should be isolating them from each other using a buffer.
There is no quick or inexpensive way of connecting more than 1 serial device on an Arduino at a time. There are software library’s available for creating virtual serial port using the digital pins, but they are buggy and can hang the micro until serial data becomes available, which means all the readers would be on hold until one being polled received a TAG, effectively putting you back to having just a single reader.
I know that you can’t connect all three readers to the port without some type of isolation and that the Arduino isn’t bit-bang serial friendly. However, if the application is such that it is not likely that more than one reader will fire at a time, you can isolate the readers from each other such that the output of the readers don’t interfere with each other. Then by connecting the Card Present (CP) line from each reader to separate input ports of the Arduino, the processor can tell which reader was supplying the card data. In the case of a collision, the first reader will decode and the others will have to rescan again. A small amount of external circuitry for the isolation will be required, but there is not much to it.
riden:
I know that you can’t connect all three readers to the port without some type of isolation and that the Arduino isn’t bit-bang serial friendly. However, if the application is such that it is not likely that more than one reader will fire at a time, you can isolate the readers from each other such that the output of the readers don’t interfere with each other. Then by connecting the Card Present (CP) line from each reader to separate input ports of the Arduino, the processor can tell which reader was supplying the card data. In the case of a collision, the first reader will decode and the others will have to rescan again. A small amount of external circuitry for the isolation will be required, but there is not much to it.
The ideas innovative and would certainly solve many a headache for thousands of micro developers. Arduino doesn’t have different “input ports”, it has a serial rx and serial tx pin, and 12 digital pins and 6 analog pins. We usually approach the problem of controlling more than one serial device differently, so I’d love to see the concept in action.