也許這只是一個無稽之談,但它讓我發瘋。我試圖讀取Arduino中的一個模擬端口,並使用節點將值通過串口發送到JavaScript。當我在Arduino控制檯顯示數據時,一切正常,但是當我在Mac中使用終端時,某些值出現在兩行中。從模擬端口讀取時從Arduino串行接收的錯誤數據
460
460
4
60
460
我正在使用的代碼是:
的Arduino:
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」這樣更「標準」的波特率? – angelatlarge
是的,我已經嘗試了其他波特率,仍然是一樣的。當我嘗試從ADC讀取一個數字(例如525)時,有時在通過串行端口讀取計算機時,有時會將它分成5和25。它也發生在例如1021(1-021,10-21)。 – Timbergus