I have the RFID Qwiic Kit with some “round button” tags. I am using the Arduino sketch provided by QWIIC with the interrupt. What ZI want to do is read three “tags” into the Arduino, assign them each to a specific item. Then when a tag comes into proximity to a reader (for now I have only one reader, but that will change later) I want the interrupt to signal the tags presence and then I want to read out which item has been detected. The “readout” can be in the form of:
if (interrupt == TRUE && itemOneIs Detected ==TRUE) {
Here is my problem. First of all, each time I run the tag over the RFID sensor the same tag number appears (but with a different time) even though I am using two different tags. Second problem. Once the interrupt goes LOW it remains LOW. I can’t get it to go back high.
Each tag should have a 40-bit unique ID. You should be able to code the Arduino to name them a unique name based off of whether or not the ID matches up.
As for the other issue, it is probably a problem with your code. I would strongly suggest that you post on the Arduino Forums for code assistance as I an not sure that this is a hardware related issue:
I have three questions. 1) When the first tag is read, the interrupt goes low. It stays low thereafter. Is there a way to reset the interrupt? If so, how? 2) I am using an Arduino Mega. When I use myRfid.getTag, what type of return do I get back? String? Char? 3) I want to compare the RETURN (I think it is named “tag”, to an already known “tag”. How do I do that? Do you have code segments for such an operation?
1: You can modify the FW for the Attiny85 to have the interrupt reset and not stay low. I suggest you read up on Arduino code and see how best to accomplish this as we do not do code consulting.
TS-John I have no idea what you mean when you say I can modify the FW for the Attiny85. What is an FW? What is an Attiny85? I need to know what voltage the Arduino should send to what pin? And when that voltage should be sent. As for the screen shot, yes I know the board will return a 13 bit number. I used YOUR code to get that far. But once I get that 13 bit number your documentation does not say one word about how I can use it. Or even what kind of integer it is, or even how many bytes or how it is formatted. I can’t program the Arduino unless I know the structure of the incoming information. I have been on the Arduino forums and so far nobody else seems to know how to use the Qwiic RFID IDXXCA either. I can’t move forward with SparkFun products if I can’t get this simple question resolved.
Hey again. Our examples for products are provided for our customers to get started with the product. It is up to you to run with your own projects and write your own code, design your own projects, etc.
I would suggest that you consider reading through the embedded electronics tutorials to get a better understanding here: https://www.sparkfun.com/tutorials/57
Looking at the firmware, the reader will read one or more tags. When it reads a tag, the interrupt pin will go low. Once the Arduino has retrieved all the tags info, the interrupt pin will go high. So you should wait for the interrupt pin to go low, then keep calling myRfid.getTag() to get all the tags that have been read since the last interrupt until the interrupt pin goes high.