Узел последовательного порта не может читать данные

Я пытаюсь прочитать данные из Arduino Mega на мой Raspberry Pi 3 через последовательный порт. Код узла:

const five = require("johnny-five")
const Raspi = require("raspi-io")
const SerialPort = require("serialport")
const Readline = require('@serialport/parser-readline')


const arduinoSerialPort = new SerialPort("/dev/ttyACM0", {
  baudRate: 9600
})
const parser = arduinoSerialPort.pipe(new Readline({ delimiter: '\r\n' }))

const board = new five.Board({
  io: new Raspi(),
  repl: false,
})


board.on('ready', function() {    
  parser.on('data', console.log)
})

Код Arduino:

int pushButton = 7;

void setup() {
  Serial.begin(9600);
  pinMode(pushButton, INPUT);
}

void loop() {
  int buttonState = digitalRead(pushButton);

  if(buttonState == HIGH){
    Serial.println('ononon');
    digitalWrite(LED_BUILTIN, LOW);
  }else{
    Serial.println('offfff');
    digitalWrite(LED_BUILTIN, HIGH);
  }

  delay(100);
}

У Arduino есть кнопка, и я посылаю разные данные, когда кнопка нажата или нет.

На стороне узла я не могу читать данные. Все, что я получаю, это некоторые цифры. Я пытался использовать toString() тоже не сработало.

Я застрял здесь надолго, была бы очень признательна за помощь.

1 ответ

Решение

Традиционная глупая ошибка

Serial.println('offfff');

C/C++ использует знак двойной кавычки " для строки.

Serial.println("offfff");

Слишком много JavaScripting:v

Хотя в серийном мониторе Arduino я мог видеть линию раньше, поэтому я не думал заглядывать в код Arduino.

Другие вопросы по тегам