Как записать несколько символов в 1 переменную из Serial? Попробовал вот так: Код (C): void setup() { Serial.begin(9600); } void loop(){ if (Serial.available()) { char val = Serial.read(); Serial.println(val); if(val == 555){ digitalWrite(13,HIGH); } } } Но если послать на порт "123" в ответ он присылает "1", "2", "3". Как записать в переменную val - символы с порта (вместе "123"). Например: char val = 123
int val = Serial.parseInt(); - не подходит, т.к. у него есть задержка примерно в 1 секунду, а мне нужно, чтобы данные передавались быстро...
Нужно послать данные в виде байта, а не текста "123". Воспользуйтесь любым сторонним монитором COM-порта - обычно они поддерживают возможность отправки данных в любом виде и еще целую кучу полезных фишек. Я использую CommTest - найдете в интернете без проблем, очень рекомендую.
И по поводу Вашего кода - переменная типа char никогда не будет равна 555 От 0 до 255 - байт. Если нужно передать большое число - передавайте 2 байта и на приеме склеивайте их в int. Передавать так: Код (C): int value = 12345; char loByte = (char)value; char hiByte = (char)(value >> 8); Serial.write(loByte); Serial.write(hiByte); Принимать так: Код (C): char loByte = Serial.read(); char hiByte = Serial.read(); int value = (hiByte << 8) | loByte;