void setup()
{
Serial.begin(9600); //Set serial baud rate 9600
pinMode(13,OUTPUT); //Set LED for output
}
String str;
void loop()
{
if(Serial.available() > 0)
{
char ch = Serial.read();
str += ch;
}
if (str == "Hi")
{
digitalWrite(13,HIGH); //Turns on the LED if "Hi" is entered.
}
if (str == "Bye")
{
digitalWrite(13,LOW); //Turns off the LED if "Bye" is entered.
}
}
的方式,我有一個問題。我想我不清楚Arduino在讀取String時是如何工作的。 這是我的素描。 如您所見,如果輸入「Hi」,則打算打開LED,如果輸入「Bye」,則打開LED。 編譯的很好,但每當我連接串口時,上傳它並打開帶有「Hi」字樣的LED,我無法用「再見」一詞關閉LED。 另外,如果我先輸入「再見」,然後再輸入「Hi」,則LED不亮。混淆的Arduino處理字符串
什麼是我的代碼有問題嗎?我如何修改它?
我將在http://arduino.cc/en/Serial/Read讀了。也可以使用寫入串行作爲調試日誌。因此,經常將str寫入串行,並將其值與預期值進行比較,以確定代碼出錯的位置。 – DrCord
它應該用'「HiBye」禁用嗎?問題必須證明對解決問題的最低限度的理解...... –
@LS_dev不,我的意思是,如果我用'Hi'字打了一個'hit',後來用'Bye'打了'hit',那麼「Bye」不會任何與LED。關於「HiBye」,LED打開,但對於「ByeHi」,它不會 –