Go Down

Topic: 5 RFID con Arduino Uno (Read 1 time) previous topic - next topic

lesto

no, il gnd degli alimentatori va collegato al GND dell'arduino.
GND è il valore di riferimento, essendo il voltaggio una "differenza di tensione", servono due valori: il gnd, che rappresenta lo 0V, e il 5v, che rappresenta uno scostamento di 5v dal GND. se tu misurassi il GND degli alimentatori rispetto a quello arduino probabilmente rileveresti qualche V di differenza: ognuno ha il suo 0v! collegandoli insieme fai in modo che il valore di riferimento sia uguale per tutti


Scusa, avevo capito che volevi leggere 5 tessere contemporaneamente..
Ma da che codice di esempio sei partito? Perché dici che legge male? Ma con una tessera funge?
Quando ci sono problemi bisogna sempre scomporre in sotto parti.. una volta che va bene uno basta fare un cliclo for..

Beh, quasi, in pratica devo leggere rfid da 5 lettori, non contemporaneamente, però spesso non mi restituisce il tag dell'rfid.
Con uno funziona, però per quello ho usato la SoftwareSerial, che non sono riuscito a fare funzionare con 2 rfid.
Suggerimenti su come usare la SoftwareSerial (se si può) con più rfid o su come farne andare 5 con la NewSoftSerial?
Grazie!


questo è un altro problema. fossi in te farei una read su ogni porta ogni loop, nel momento in cui leggi un qualcosa in arrivo, ti blocchi a leggere quella porta per il tempo necessario a ricevere 3 volte il codice RFID (in modo da ricevere almeno una lettura completa, puoi fare anche solo 2 volte ma poi devi giocare di concatenazione). Una volta passato questo tempo indipendentemente se hai letto qualcosa, e se questo qualcosa era valido o meno, prosegui per la tua strada.
a 9600 baud leggi 960 caratteri al secondo, quindi se il rfid è di 12 caratteri +2 di inizio e fine, il tempo (in millisecondi) per una lettura completa è 1000/(960/14) = circa 14 millisecondi
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

brunialti

#16
May 15, 2012, 05:17 pm Last Edit: May 15, 2012, 05:21 pm by brunialti Reason: 1
Lesto è stato più lesto di me :-)
Prova a connettere i gnd arduino e quelli dell'alimentatore e 90% hai risolto il problema del funzionamento.
Per la lettura non dovresti avere problemi di temporizzazione. La chiave di un Mifare è lunga al max 7 byte, più 4 o 5 byte di incapsulamento del messaggio. Io normalmente ho usato lettori con interfaccia I2c, e con un protocollo che ha come header la lunghezza del messaggio in arrivo. Questo mi permette di verificare se è arrivato tutta la risposta o meno. Se poi la risposta non arriva posso abortire l'operazione di lettura, passare al prossimo rfid e ritentare la lettura il ciclo successivo. Dipende dal protocollo di interfaccia

Andryy


no, il gnd degli alimentatori va collegato al GND dell'arduino.
GND è il valore di riferimento, essendo il voltaggio una "differenza di tensione", servono due valori: il gnd, che rappresenta lo 0V, e il 5v, che rappresenta uno scostamento di 5v dal GND. se tu misurassi il GND degli alimentatori rispetto a quello arduino probabilmente rileveresti qualche V di differenza: ognuno ha il suo 0v! collegandoli insieme fai in modo che il valore di riferimento sia uguale per tutti


Scusa, avevo capito che volevi leggere 5 tessere contemporaneamente..
Ma da che codice di esempio sei partito? Perché dici che legge male? Ma con una tessera funge?
Quando ci sono problemi bisogna sempre scomporre in sotto parti.. una volta che va bene uno basta fare un cliclo for..

Beh, quasi, in pratica devo leggere rfid da 5 lettori, non contemporaneamente, però spesso non mi restituisce il tag dell'rfid.
Con uno funziona, però per quello ho usato la SoftwareSerial, che non sono riuscito a fare funzionare con 2 rfid.
Suggerimenti su come usare la SoftwareSerial (se si può) con più rfid o su come farne andare 5 con la NewSoftSerial?
Grazie!


questo è un altro problema. fossi in te farei una read su ogni porta ogni loop, nel momento in cui leggi un qualcosa in arrivo, ti blocchi a leggere quella porta per il tempo necessario a ricevere 3 volte il codice RFID (in modo da ricevere almeno una lettura completa, puoi fare anche solo 2 volte ma poi devi giocare di concatenazione). Una volta passato questo tempo indipendentemente se hai letto qualcosa, e se questo qualcosa era valido o meno, prosegui per la tua strada.
a 9600 baud leggi 960 caratteri al secondo, quindi se il rfid è di 12 caratteri +2 di inizio e fine, il tempo (in millisecondi) per una lettura completa è 1000/(960/14) = circa 14 millisecondi

Come dovrei fare quindi?
Il programma che uso non va bene?

E una cosa, il GND dell'alimentatore va collegato insieme al GND dell'Arduino ed agli rfid sulla breadboard? O va collegato solo al GND dell'Arduino?
Grazie!

lesto

non va bene se credi che i tag rfid sino letti per meno di 14ms. In pratica per un essere umano la cosa è immediata (il riflesso minimo dell'occhio si aggira sui 30ms)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Andryy

Ok, ma come faccio in termini di programmazione a farlo?

Go Up