2013-04-12 2 views
1

Я работаю с 2 ардуинами с xbee, прикрепленным к каждому из них. Я хочу, чтобы 1 ардуино был мастером, а второй был рабыней. Я пытаюсь отправить через последовательные команды какArduino RXTX Loop

Serial.write("Get Arduino1 Data"); 

Тогда я хочу другую Arduino, чтобы получать эту строку и есть что-то похожее на

if(inString == "Get Arduino1 Data") { 
Serial.write("Your data here"); 
Serial.write(digitalRead(4)); 
} 

Проблема в том 1) Я не могу получить 2-й arduino, чтобы войти в утверждение if, и arduinos сидят и rx, затем tx, rx, затем tx и т. д., и куча повторяющихся строк «Get Arduino1 Data» переполняет монитор.

Любая помощь?

+0

Я не знакомы с Xbee. Но, сделав снимок - Как ваш приемник считывает байты? Чтобы сделать это таким образом, вам нужно будет прочитать каждый байт (игнорируйте, если байт не указан), добавьте его в String и проверьте после каждого байта, если строка соответствует. Но также может быть добавлен дополнительный байт. – bobwki

ответ

0

Вы можете попробовать использовать пример PhysicalPixel в примерах Communucation в Arduino IDE

void loop() { 
// see if there's incoming serial data: 
if (Serial.available() > 0) { 
// read the oldest byte in the serial buffer: 
incomingByte = Serial.read(); 
// if it's a capital H (ASCII 72), turn on the LED: 
    if (incomingByte == 'H') { 
    digitalWrite(ledPin, HIGH); 
    } 
// if it's an L (ASCII 76) turn off the LED: 
    if (incomingByte == 'L') { 
    digitalWrite(ledPin, LOW); 
    } 
} 
} 

помните, что вы должны использовать SoftwareSerial и модуль XBee должны использовать AT режим