Étape 13 : Plusieurs potentiomètres
Après une recherche en ligne, j’ai trouvé une bibliothèque pour arduino qui vous permettra d’envoyer plusieurs valeurs de potentiomètre de 1 xbee/arduino combo à l’autre. On l’appelle la bibliothèque de EasyTransfer.
http://www.billporter.info/2011/05/30/easytransfer...
Un exemple de son utilisation est discuté dans ce forum
http://forum.Arduino.cc/index.php?topic=152604.0
J’ai ont déjà essayé et ont été en mesure de contrôler les 3 potentiomètres avec les deux xbees en mode.
Voici le code que j’ai utilisé pour la transmission sans fil de 3 valeurs de potentiomètre. J’ai pu faire à l’aide de code à partir du deuxième site figurant sur cette page.
Expéditeur
#include < EasyTransfer.h >
EasyTransfer ET ;
int potpin1 = A0 ;
int potpin2 = A1 ;
int potpin3 = A2 ;
struct SEND_DATA_STRUCTURE {}
int servo1val ;
int servo2val ;
int servo3val ; };
SEND_DATA_STRUCTURE txdata ;
void setup() {}
Serial.Begin(9600) ;
ET.begin(details(txdata), & série) ;
pinMode (potpin1, entrée) ;
pinMode (potpin2, entrée) ;
pinMode (potpin3, entrée) ;
}
void loop() {}
txdata.servo1val = analogRead(potpin1) ;
txdata.servo2val = analogRead(potpin2) ;
txdata.servo3val = analogRead(potpin3) ;
ET.sendData() ;
Delay(500) ;
}
Cette section reçoit les données de potentiomètres. Dans mon propre cas, j’ai voulu procéder à un essai et ont mon Arduino imprimer les valeurs envoyées par potentiomètre de trois.
Receiver
#include < Servo.h >
#include < EasyTransfer.h >
EasyTransfer ET ;
Servo myservo1 ;
Servo myservo2 ;
Servo myservo3 ;
int val1, val2, val3 ;
struct RECEIVE_DATA_STRUCTURE {}
int servo1val ;
int servo2val ;
int servo3val ;
};
RECEIVE_DATA_STRUCTURE txdata ;
void setup() {}
Serial.Begin(9600) ;
ET.begin(details(txdata), & série) ;
myservo1.Attach(9) ;
myservo2.Attach(10) ;
myservo2.Attach(12) ; }
void loop() {}
{if(et.receiveData())}
val1 = carte (txdata.servo1val, 0, 1023, 0, 179) ;
val2 = carte (txdata.servo2val, 0, 1023, 0, 179) ;
val3 = carte (txdata.servo3val, 0, 1023, 0, 179) ;
Serial.println(val1) ;
Serial.println(val2) ;
Serial.println(val3) ;
myservo1.Write(val1) ;
myservo2.Write(val2) ;
}
}