代码之家  ›  专栏  ›  技术社区  ›  ShocKwav3_

节点串行端口无法读取数据

  •  0
  • ShocKwav3_  · 技术社区  · 6 年前

    我正试图通过串行端口将数据从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 回复  |  直到 6 年前
        1
  •  0
  •   ShocKwav3_    6 年前

    传统的愚蠢错误:p

    Serial.println('offfff');
    

    C/C++使用双引号 " 用于字符串。

    Serial.println("offfff");
    

    太多的javascripting:v

    虽然在Arduino串行监视器中,我可以看到之前的线路,所以我没有考虑查看Arduino代码。