Arduino 串行读取和检查

Arduino serial read and check

我正在尝试学习一些关于从蓝牙设备读取 arduino 串口的知识。这是我到处找到的代码:

int incomingByte = 0;   // for incoming serial data

void setup() {
        Serial.begin(9600);     // opens serial port, sets data rate to 9600 bps
}

void loop() {

        // send data only when you receive data:
        if (Serial.available() > 0) {
                // read the incoming byte:
                incomingByte = Serial.read();

                // say what you got:
                Serial.print("I received: ");
                Serial.println(incomingByte);
        }
}

当我从移动蓝牙发送单词“word”时,我收到 4 行:

我收到了:w

我收到了:o

我收到了:r

我收到了:d

很好...但这是我的问题:

我想在接收到的字符进入串行输入后立即检查它们,所以如果其中一个是字符“r”,我想在串行监视器中打印额外的一行,比如:“哇,那是一个 r!”

所以我在 println(incomingByte) 之后添加了一个 if 语句,我的代码现在是这样的:

Serial.print("I received: ");
Serial.println(incomingByte);
if (incomingByte == "r") {
    Serial.println("wow, that was an r!");
}

那个代码永远都行不通,就像根本没有“r”一样。 有人可以向我解释吗? 谢谢

我认为这是由于使用了 "r" 而不是 'r'。不同之处在于,在第一种情况下,您有字符串,即 char[],而在第二种情况下,您有单个 char.