Узел последовательного порта не может читать данные
Я пытаюсь прочитать данные из 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.