【发布时间】:2013-04-06 07:02:22
【问题描述】:
也许这只是一派胡言,但它让我发疯了。我正在尝试读取 Arduino 中的一个模拟端口,并使用 node.js 通过串行端口将值发送到 JavaScript。当我在 Arduino 控制台中显示数据时,一切正常,但是当我在 Mac 中使用终端时,一些值出现在两行中。
460
460
4
60
460
我使用的代码是:
阿杜诺:
const int analogInPin = A0;
int sensorValue = 0;
void setup() {
Serial.begin(500000);
}
void loop() {
sensorValue = analogRead(analogInPin);
Serial.print(sensorValue);
delay(200);
}
节点:
var com = require('serialport').SerialPort;
var opts = {baudrate: 500000};
var serialPort = new com('/dev/tty.usbmodem641', opts);
serialPort.on('data', function(data) {
console.log(data.toString());
});
代码再简单不过了,但仍然不能正常工作。我知道我错过了一些东西,但我看不到它。我测试了不同的波特率,但没有任何效果。你能帮帮我吗?
提前致谢
【问题讨论】:
-
500000看起来像一个不寻常的波特率值,预计更容易受到噪声的影响。您是否尝试过像115200这样更“标准”的波特率? -
是的,我尝试过使用其他波特率,但还是一样。当我尝试从 ADC 读取一个数字(例如 525)时,有时它会在计算机通过串行端口读取时分成 5 和 25。例如 1021 (1 - 021, 10 - 21) 也会发生这种情况。
标签: javascript node.js arduino analog-digital-converter node-serialport