Помогите доработать скетч

tesak47
Offline
Зарегистрирован: 22.01.2015

Задравствуйте! Пытаюсь наваять самый элементарный парсинг. Задача такая: при вводе в ком-порт комманды led on светодиод на 13 пине должен включиться. Но максимум что мне удалось сделать так это только добиться ЭХА, но переключение светодиода не происходит. Помогите пожалуйста разобраться. Скетч прилагаю:

int ledPin = 13;
char buf[100];
int a;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  a = 0;
  if (Serial.available()) {
    delay(100);
    while (Serial.available()) {
      buf[a++] = Serial.read();
    }
    if (buf == "led on") {
      digitalWrite(ledPin, HIGH);
      Serial.println("Led is ON");
    }
    Serial.print(buf);
    buf[a++] = '\0';
  }
 }

 

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

#76 перепиши код под сериал

и, делей - зло

Araris
Offline
Зарегистрирован: 09.11.2012

Конструкция if (buf == "led on") для char buf[100] работать не будет, почитайте про функцию strstr().