我尝试不发送两位数,并且在我在代码中设置的延迟时间内,它处于打开或关闭状态。
我认为问题在于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秒钟。
答案 0 :(得分:0)
您应该更改算法,也许会对您有所帮助,在这些算法中,您可以为项目创建自己的简单通信协议。 https://www.youtube.com/watch?v=vHeG3Gt6STE