我尝试每次发送2位数字,第一个数字用于打开或关闭,第二个数字用于延迟时间

时间:2019-07-14 22:55:14

标签: arduino

我尝试不发送两位数,并且在我在代码中设置的延迟时间内,它处于打开或关闭状态。 我认为问题在于t的值,因为代码运行时会从delay语句中删除t

#include <SoftwareSerial.h>
void setup()
{
    Serial.begin(9600);
    pinMode(13, OUTPUT);
}
void loop()
{
    char c;
    int t;
    if (Serial.available())
    {
        c = Serial.read();
        t = Serial.read() - 48; //because when I send numbers from 1-9 it converts it to ascii code
        Serial.println(c);
        Serial.println(t);
        if (c == '1')
            digitalWrite(13, HIGH);
        else
            digitalWrite(13, LOW);
    }
    delay(t * 1000);
}

如果我发送130214,我希望LED指示灯亮3秒钟,然后熄灭2秒钟,然后熄灭4秒钟。

1 个答案:

答案 0 :(得分:0)

您应该更改算法,也许会对您有所帮助,在这些算法中,您可以为项目创建自己的简单通信协议。 https://www.youtube.com/watch?v=vHeG3Gt6STE