Программа прослушивает сообщения от последовательного порта в виде или где первый символ (A или D) означает аналоговый или цифровой, 2-й символ - контактный, 3-й символ - 1/0 или от 0 до 255. Маркеры < и> показать начало и конец пакета.
Например, если пакет получен, индикатор включает 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");
}