Серийное общение на Arduino
У меня есть задание для школы, где мне нужно включить светодиод с последовательным сообщением #ON% и выключить светодиод с #OFF%. # И% являются идентификаторами для правильной строки. Итак, я сделал этот код:
(bericht означает сообщение на голландском языке)
String readString = "";
int recievedCharacter;
String bericht = "";
int ledPin = 6;
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode(ledPin, OUTPUT);
}
void loop()
{
while (Serial.available() > 0)
{
delay(4);
char readChar = (char) Serial.read(); // 'Convert' to needed type
bericht += + readChar; // concatenate char to message
}
if(bericht.startsWith("#"))
{
if(bericht == "#ON%")
{
Serial.println(bericht);
Serial.println("goed");
digitalWrite(ledPin, HIGH);
//message = "";
}
if(bericht == "#OFF%")
{
Serial.println("goed");
digitalWrite(ledPin, LOW);
//message = "";
}
}
}
Проблема в том, что программа никогда не попадет в раздел if(bericht == "#ON%")...
Извините, если это глупый вопрос, но с большим количеством прибегая к помощи я просто не могу понять это...
1 ответ
Проблема здесь:
bericht += + readChar; // concatenate char to message // XXX '+ char' => int
это фактически добавляет к сообщению целое число. Удалить +
:
bericht += readChar; // concatenate char to message // Goed!