Rowan University mekatronik projekt. Trådlös bil/Xbee serie 2 avsnitt och Xbee flera Potentiometer kontroll (13 / 13 steg)
Steg 13: Flera potentiometrar
Efter att söka online, hittade jag ett bibliotek för arduino som gör att du kan skicka flera potentiometer värden från 1 xbee/arduino combo till en annan. Det kallas EasyTransfer biblioteket.
http://www.billporter.info/2011/05/30/EasyTransfer...
Ett exempel på att diskuteras i detta forum
http://forum.Arduino.cc/index.php?topic=152604.0
Jag har redan provat det och har kunnat styra 3 potentiometrar med båda xbees i på-läge.
Nedan är koden jag använde för att trådlöst överföra 3 potentiometer värden. Jag kunde göra det med hjälp av kod från andra hemsida på denna sida.
Avsändaren
#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), & följetong);
pinMode (potpin1, ingång);
pinMode (potpin2, ingång);
pinMode (potpin3, ingång);
}
void loop() {
txdata.servo1val = analogRead(potpin1);
txdata.servo2val = analogRead(potpin2);
txdata.servo3val = analogRead(potpin3);
ET.sendData();
Delay(500);
}
Detta avsnitt tar emot data från potentiometrar. För mina egna syften ville jag köra ett test och har min Arduino skriva ut värdena skickas av tre potentiometer.
Mottagare
#include < Servo.h >
#include < EasyTransfer.h >
EasyTransfer ET;
Servo myservo1;
Servo myservo2;
Servo myservo3;
int värde1, värde2, val3;
struct RECEIVE_DATA_STRUCTURE {
int servo1val;
int servo2val;
int servo3val;
};
RECEIVE_DATA_STRUCTURE txdata;
void setup() {
Serial.BEGIN(9600);
ET.begin(details(txdata), & följetong);
myservo1.attach(9);
myservo2.attach(10);
myservo2.attach(12); }
void loop() {
IF(et.receiveData()) {
värde1 = karta (txdata.servo1val, 0, 1023, 0, 179);
värde2 = karta (txdata.servo2val, 0, 1023, 0, 179);
val3 = karta (txdata.servo3val, 0, 1023, 0, 179);
Serial.println(val1);
Serial.println(val2);
Serial.println(val3);
myservo1.write(val1);
myservo2.write(val2);
}
}