0
Offline
Newbie
Karma: 0
Posts: 19
Arduino rocks
|
 |
« on: March 02, 2010, 06:02:33 am » |
J'ai comme projet (iut) de développer une gestion d'identification par RFID.
J'ai donc choisi une Duemilanove pour mon prototypage. Ce matin j'ai reçu mon module RFID . J'ai brancher comme dans le DataSheet:
Carte Module Rx Tx Tx Rx
Mais impossible de transférer le programme, cela ne fonctionne quand je branche les deux Rx ensemble et les deux Tx ensemble.
De plus j'utilise Serial.write et Serial.read pour communiquer avec le module mais quand je lui passe une commande rien ne ce passe.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 19
Arduino rocks
|
 |
« Reply #1 on: March 02, 2010, 06:03:03 am » |
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Edison Member
Karma: 12
Posts: 1800
There is an Arduino for that
|
 |
« Reply #2 on: March 02, 2010, 06:49:42 am » |
Mais impossible de transférer le programme Tu veux dire que tu n'arrives pas à charger le sketch dans la carte Arduino? Si c'est ton problème, c'est possible car ton module RFID se trouve en conflit avec la liaison série de téléchargement. Pour charger ton sketch, il faudrait débrancher ton module RFID. Si tu dois faire cela souvent, tu aurais intérêt à prévoir un commutateur qui isolerait l'arduino de ton module RFID le temps du téléchargement.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 19
Arduino rocks
|
 |
« Reply #3 on: March 02, 2010, 10:21:33 am » |
Oui c'est mon problème, mais alors comment faire envoyer des commandes au module avec le pc en passant par la carte?
|
|
|
|
|
Logged
|
|
|
|
|
Pays de la betise
Offline
Sr. Member
Karma: 3
Posts: 407
|
 |
« Reply #4 on: March 02, 2010, 10:49:05 am » |
Tu peux utiliser la library serial software ( http://arduino.cc/en/Reference/SoftwareSerial) pour communiquer avec le module RFID. Cela te permet de créer des liaisons séries supplémentaires et de libérer la liaison série hardware pour la com avec le PC. Gromain
|
|
|
|
|
Logged
|
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..." projet domotique xPLDuinoIRC: freenode #xplduino
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 19
Arduino rocks
|
 |
« Reply #5 on: March 02, 2010, 12:28:59 pm » |
Ok, merci, je vais me pencher la dessus!
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 19
Arduino rocks
|
 |
« Reply #6 on: March 02, 2010, 12:59:27 pm » |
#include <SoftwareSerial.h>
#define rxPin 2
#define txPin 3 int Envoie = 0; int Recoi = 0; // set up a new serial port SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
void setup(){ pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); mySerial.begin(9600); Serial.begin(9600); delay(20); }
void loop(){ if(Serial.available() > 0){ //attend un caractère du PC Envoie= Serial.read(); mySerial.print(Envoie); //envoie du caractère sur le port Tx } Recoi = mySerial.read(); //attend un caractère disponible sur Rx Serial.println(Recoi); //envoie du caractère au PC delay(10); } Quelqu'un remarque un problème la dessus? Je veux simplement envoyer une commande au RFID et afficher ça réponse.
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Edison Member
Karma: 12
Posts: 1800
There is an Arduino for that
|
 |
« Reply #7 on: March 02, 2010, 02:24:24 pm » |
Recoi = mySerial.read(); //attend un caractère disponible sur Rx
Il faudrait peut être faire un test pour voir s'il y a quelque chose à lire avant de faire un read
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 19
Arduino rocks
|
 |
« Reply #8 on: March 02, 2010, 02:33:59 pm » |
Description
Reads a character from the receive pin of the software serial port. This function waits for a character to arrive, reads it, and returns the character read. Data that arrives at other times is lost. Je croyais que la fonction attendais un caractère avant de la lire et d'envoyer. J'ai essayé avec un test et cela ne change rien :-/
|
|
|
|
« Last Edit: March 02, 2010, 02:34:46 pm by ak37 »
|
Logged
|
|
|
|
|
Pays de la betise
Offline
Sr. Member
Karma: 3
Posts: 407
|
 |
« Reply #9 on: March 02, 2010, 04:14:46 pm » |
oui, avec la lib soft serial il faut lire en permanence, au risque de louper des caractères. Sur des tests d'envoie de chaine de caracteres depuis le pc (console arduino) vers l'arduino, j'avais constaté qu'il fallait que je rajoute systèmatiquement un <espace> en 1er pour que le message soit complet. D'après la doc de ton module, il faut envoyer "W" pour déclencher une lecture. As-tu testé en envoyant en "dur" ce caractère au lieu de passer par la console pour éliminer un pb de liaison console? mySerial.print("W"); //envoie du caractère sur le port Tx int Envoie = 0; int Recoi = 0;
le type "char" ne serait pas plus adapté ? Gromain
|
|
|
|
|
Logged
|
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..." projet domotique xPLDuinoIRC: freenode #xplduino
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 19
Arduino rocks
|
 |
« Reply #10 on: March 02, 2010, 04:45:50 pm » |
Je vais essayé l'espace. Pour le type des variables tu as raison le type correct serai char (mais int marche normalement , je doit dire que j'ai programmer ça un peu vite), d'ailleurs je l'ai utiliser pour envoyer un caractère en "dur", 'z' pour voir la version du firmware, mais je ne parvient pas à avoir une réponse. Je vais réessayé
Merci!
|
|
|
|
« Last Edit: March 02, 2010, 04:46:02 pm by ak37 »
|
Logged
|
|
|
|
|
Pays de la betise
Offline
Sr. Member
Karma: 3
Posts: 407
|
 |
« Reply #11 on: March 03, 2010, 01:50:27 am » |
tu n'as pas plus de doc que ce qui dans le lien que tu nous as fournis ? c'est un peu léger. A quoi servent les leds verte et rouge ? edit: il y a une doc plus complète ici: http://www.ibtechnology.co.uk/PDF/RWD_QT.PDF
|
|
|
|
« Last Edit: March 03, 2010, 01:51:53 am by Gromain59 »
|
Logged
|
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..." projet domotique xPLDuinoIRC: freenode #xplduino
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 19
Arduino rocks
|
 |
« Reply #12 on: March 03, 2010, 05:52:56 am » |
Oui oui j'ai bien sur le datasheet du module (celui de idtechnology) et les led m'indique que le fonctionnement est normal (led rouge non clignotante au repos) et led verte quand un tag RFID est présent proche de l'antenne. Toujours pas réussie a avoir une réponse, même avec un caractère en dur, j'ai même essayé d'utiliser un terminal série en programmant juste les softserial dans l'arduino et rien non plus.
|
|
|
|
|
Logged
|
|
|
|
|
Pays de la betise
Offline
Sr. Member
Karma: 3
Posts: 407
|
 |
« Reply #13 on: March 03, 2010, 07:33:59 am » |
The serial communication system and protocol allows for a 10ms 'window' every Tag polling cycle indicated by the BUSY line being low. During this 'window' the host must assert the first start bit and start transmitting data. The BUSY goes high again 10ms after the last stop bit is received. NOTE that only one command sequence is handled at a time. ce que je comprends, c'est que tu dois envoyer la commande pendant les 10ms où le signal CTS=0, sinon le module l'ignore car il est occupé à autre chose. Donc tu dois connecter l'info CTS à une entrée de l'arduino. Je pense que le problème vient de là.
|
|
|
|
|
Logged
|
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..." projet domotique xPLDuinoIRC: freenode #xplduino
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 19
Arduino rocks
|
 |
« Reply #14 on: March 03, 2010, 11:53:48 am » |
Ok, j'avais brancher le CTS à la masse pour qu'il soit toujours en à l'écoute... Donc il faut que je déclenche l'envoie de commande quand CTS=0 et la réception quand CTS=1 si je comprend bien. Merci pour ton aide en tout cas 
|
|
|
|
|
Logged
|
|
|
|
|
|