程序監聽來自串行端口的消息的形式或者其中第一個字符(A或d)指模擬或數字的,第2個字符 - 銷,所述第三字符 - 1/0或從0到255中的標記物和<>顯示的開始和數據包的結束。Arduino的決策從串行端口接收
例如,如果接收到分組,則光被digitalWrite(13,1) 接通但沒有任何反應。例如,當我通過串行監視器發送時,燈應該閃爍,但不亮。與模擬輸出相同。
bool started = false;
bool ended = false;
char inData[5];
byte index;
void setup()
{
Serial.begin(9600);
}
void loop()
{
while (Serial.available() > 0)
{
char inChar = Serial.read();
if (inChar == '<')
{
index = 0;
started = true;
ended = false;
}
else if (inChar == '>')
{
ended = true;
break;
}
else
{
if (index <= 4)
{
inData[index] = inChar;
index++;
}
}
if (started && ended)
{
if (inData[0] == 'A')
{
pinMode(inData[2],OUTPUT);
analogWrite(inData[2],inData[4]);
}
else if (inData[0] == 'D')
{
if (inData[4] == 1)
{
pinMode(inData[2],OUTPUT);
digitalWrite(inData[2],HIGH);
}
else if (inData[4] == 0)
{
pinMode(inData[2],OUTPUT);
digitalWrite(inData[2],LOW);
}
}
started = false;
ended = false;
index = 0;
}
}
Serial.println("Sending");
}
消息看起來像這樣或 –
user1165574