Go Down

Topic: Arduino + RFID question Rx Tx (Read 3736 times) previous topic - next topic

c'est comme ça que je le comprend en tout cas.
"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

fdufnews

Le lien que tu avais donné en début indique
Quote
9600 baud, 8 data bits, no parity, 1 stop bit protocol
with CTS handshake


Donc CTS est bien utile

ak37

Eu par contre mon CTS ne passe jamais à zerro....  :-/

ak37

#18
Mar 03, 2010, 06:30 pm Last Edit: Mar 03, 2010, 06:37 pm by ak37 Reason: 1
Ou alors la carte n'est pas assez rapide pour le voir, car quand je banche une led au cts la led clignote bien, donc il y a bien un changement d'état.

dans ce cas, il faut utiliser une interruption externe:

Connecte CTS sur la pin 2, et initialise la fonction "attachInterrupt(0, "nom de la fonction à executer sur detection", RISING);" dans le setup()
Ca executera la fonction d'envoie à chaque detection du passage à 0 de la pin 2.

voir ici: http://arduino.cc/en/Reference/AttachInterrupt
"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

ak37

Ok, n'importe quel pin peut faire office de softserial?

ak37

Bon j'ai réussi !

Code: [Select]
#include <SoftwareSerial.h>



#define rxPin 3
#define txPin 4
int pin = 2;
volatile int state = LOW;



int cts = 7;
int Recoi = 0;
// set up a new serial port
SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);


void setup(){

 pinMode(rxPin, INPUT);
 pinMode(9, OUTPUT);
 pinMode(txPin, OUTPUT);
 pinMode(cts, INPUT);
 pinMode(pin, INPUT);
 attachInterrupt(0, CTS, LOW);
 mySerial.begin(9600);
 Serial.begin(9600);
 delay(20);
}

void loop(){

 
}
void CTS(){
delay(10);
mySerial.print(char('v'));
mySerial.print(byte('v'));
Recoi = mySerial.read();
Serial.println(Recoi,BIN);
}


Je le referais proprement avec un flag et tout plus tard, par contre as tu compris en lisant la doc comment envoyer les arguments de la commande? Car personnellement je n'ai rien trouver à ce sujet!  :'(

Merci pour votre aide en tout cas!

Quote
Merci pour votre aide en tout cas!

de rien...

Quote
comment envoyer les arguments de la commande?


D'après la doc, il semble que tu dois simplement envoyer les arguments à la suite de la commande:

mySerial.print(0x76); // la commande "v"
mySerial.print(0x2);   // argument 1= 00000010 (par exemple)


Gromain
"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

ak37

Oui c'est ce que j'ai fait mais cela ne semble pas fonctionner.
Normalement je peut aussi envoyer les deux d'un coup étant donné que les deux font 8 bit et par conséquent arrive l'un après l'autre.
Bon et bien je m'y remet  :)

Go Up