2016-09-22 3 views
0

Я пытаюсь получить основы с моим Arduino, и поэтому я начинаю с малого.Arduino не принимает несколько команд

То есть, я хочу, чтобы Arduino слушать простых, несколько команд, посылаемых моей Raspberry Pi (я эмулировать это через последовательный монитор теперь, однако)

Это код, я работаю с:

#include "SoftwareSerial.h" 

void setup() 
{ 
    Serial.begin(9600); 
    delay(100); 
} 

void loop() { 
    if (Serial.find("test1")) { 
     delay(100); 
     Serial.println("TEST1 command received"); 
    } 
    if (Serial.find("test2")) { 
     delay(100); 
     Serial.println("TEST2 command received"); 
    } 
    } 
} 

К сожалению, только команда test1 запускает последовательный запрос на печать, test2 no. Может ли кто-нибудь здесь помочь мне в правильном направлении?

Спасибо!

+2

'find' будет блокироваться до тех пор, пока' test1' не будет найден или не будет исчерпан, и все данные будут на своем пути, включая строки 'test2', которые могут возникнуть. Я предлагаю вам сделать небольшое исследование о функциях, которые вы пытаетесь использовать. –

ответ

1

От чтения документации, я не думаю, что вы можете использовать функцию find().

Рассмотрите, что произойдет, если test2 введен, когда выполняется звонок find("test1"). Вероятно, он будет потреблять все символы до 2 и затем возвращать false, после чего эти символы будут потеряны.

Я думаю, вы должны разработать фактический протокол с некоторым разделителем между командами и прочитать/разглядеть их.

Смежные вопросы