Pages: [1] 2   Go Down
Author Topic: Arduino + RFID question Rx Tx  (Read 3394 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 19
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Newbie
*
Karma: 0
Posts: 19
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Voici la doc http://www.ibtechnology.co.uk/products/quaditag.htm
Logged

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3626
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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 Offline
Newbie
*
Karma: 0
Posts: 19
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Sr. Member
****
Karma: 4
Posts: 419
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 xPLDuino
IRC: freenode #xplduino

0
Offline Offline
Newbie
*
Karma: 0
Posts: 19
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, merci, je vais me pencher la dessus!
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 19
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
#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 Offline
Faraday Member
**
Karma: 39
Posts: 3626
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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 Offline
Newbie
*
Karma: 0
Posts: 19
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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 Offline
Sr. Member
****
Karma: 4
Posts: 419
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Code:
mySerial.print("W"); //envoie du caractère sur le port Tx

Code:
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 xPLDuino
IRC: freenode #xplduino

0
Offline Offline
Newbie
*
Karma: 0
Posts: 19
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Sr. Member
****
Karma: 4
Posts: 419
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 xPLDuino
IRC: freenode #xplduino

0
Offline Offline
Newbie
*
Karma: 0
Posts: 19
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Sr. Member
****
Karma: 4
Posts: 419
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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 xPLDuino
IRC: freenode #xplduino

0
Offline Offline
Newbie
*
Karma: 0
Posts: 19
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley
Logged

Pages: [1] 2   Go Up
Jump to: