Hiya. I’m a newbie with electronics and I’m working on my first real project. I have multiple RFID readers that I want to be able to work when they are next to each other. RFID readers don’t work next to each other, so I want to “power cycle” them, so that they can take turns being on. Is there any way to build that into the code of the Arduino?
I thought I might be able to cheat by making extra 5V pins out of the digital pins. That way I could just use digitalWrite() to turn the reader on and off. I tried connecting the reader’s 5V to a digital pin and setting that pin to high, but it doesn’t seem to pick up any current when I do that. It only works when connected to the 5V pin.
I’m using the ID-20 reader and the Duemilanove.
Those pins don’t provide a high enough current to drive a reader. You’ll need to use a transistor to switch the current for each reader. You might want to use a larger 5V regulator instead of the arduino one if you intend to run more than one reader off of it.
Thank you for responding.
Oh dear, so that means I need to purchase more parts? I ordered them from Sparkfun in the US so it takes a while to get them. I can’t do this without more parts?
Transistors and voltage regulators are everywhere and they cost next to nothing (like 25¢), look for a local supplier or a store and you’ll get going in no time.
According to the datasheet the ID-20 needs 65 mA to work, while the Arduino can only provide 40 mA on a digital pin. So it really is the cause of your issues. Building a simple power supply is easy though.
Always build for the worst case scenario - e.g. if you have three readers and each peaks at 65 mA you round this up to 100 mA, just to be safe. If there is a possibility to have them running all at once, you build your system to handle 300 mA of current + reserve (so more like 500 mA, again just to be safe). Then you get yourself a 5V regulator that handles 0.5 A draw without overheating and three NPN transistors that can safely provide 100 mA. It shouldn’t cost more than a dollar or two, they’re really cheap components.
Ah okay. I’ll go out and see what I can get this morning. Thank you for being so helpful. I would have been completely lost otherwise.
A simpler method might be to use the reset pin on the ID-20 (pin 2). Connect outputs from your micro to each ID-20 pin 2 and set the output high to enable.
I’ve set this up with the transistors and it works great, so thank you lots! However, I have another question, please.
For my project, I want to make objects that can sense each other. So each object has its own RFID reader and its own card. Of course, this wouldn’t work since each object would just sense itself because its reader would sense its own card. I assumed this wouldn’t be a problem, because I could just tape aluminum foil to one side of the card and make sure the aluminum foil is between each object’s reader and its card. I tried doing this and it turns out it doesn’t work the way I had assumed. Taping aluminum foil to a card makes it completely unreadable, even from the side that doesn’t have the foil.
So is there any way to block just one side of an RFID card without making the whole card unreadable?
Try separating the foil from the tags with a spacer of around 1/2" to 1". If that doesn’t work, you may need to investigate using RFID with anticoiision capability or some sort of shot range RF protocol.
Thank you, I’ll give it a shot.