Adding a "print" to [comport] I see the list of 12 ascii values.
Having a single [0...255] number from Arduino would be easier and probably the best way to go. But I also wish to understand if pure data can make the job.
For that I used a [list prepend] [list append] to obtain a list of my two-digits numbers.
Putting a [print] after [list append] allows me to see the inline list:
print: 48 49 48 52 52 53 69 56 66 56
And that leads me to a more general question: could I compare a list to another list and obtain a BANG as they match?. At first I was thinking of using [select], but I don't know if it can manage lists and how.
lineacurva wrote:
> Hi guys,
>
> I'm working on my first RFID project, involving Arduino and Pure
> Data. I use Innovation Id-20 reader and Arduino 2009. I'm stuck in a
> problem with "comport".
>
> As I put a transponder near the reader, in Arduino serial monitor I
> can see a number like: 495211712056
>
> But in the little patch I attach here, comport reads: 53
>
> This is a problem since more than one transponder give me a "53"
> feedback (but a different 12 digits number in Arduino monitor).
>
53 is the ASCII value of the character '5'. Probably if you add a [print] to the [comport] output you would get a list of 12 ASCII values for each sample.
In Pd you need to accumulate the list of incoming ASCII codes, subtract 48 (ASCII '0') from each, and route them accordingly. A 12-digit number won't display correctly as a float. Probably it's easier in Arduino to make your numbers ints on [0..255] and send them as BYTE. Then you get one number per sample and don't need to handle lists.
Martin