为什么我的 Arduino 和 P5.js 串行连接是一个方程式?

Why is my Arduino and P5.js serial connection an equation?

我发现无论我在 p5.js sketch 中作为串行读取得到的是一个值 (52) 减去第二个值 (48),然后乘以 10。这将等于 40,即Arduino 上设置的串行输出。我正在使用 p5.serialcontrol 应用程序建立从浏览器到串口的连接:

let serial;
function setup() {
  createCanvas(400, 400);
  
  serial = new p5.SerialPort();
  serial.open("COM3");
}

function draw() {
  background(220);
  
  let data = serial.read();
  
  console.log(data);// prints 48 then 52 repeateadly
}

所有数字值和数字信号都只是位,可以表示和解释为数字(例如二进制、八进制、十进制或十六进制)。甚至文本字符通常也以位的形式存储和传输。 ASCII 是字符和数值之间最常见的转换表之一。

48 是字符 '0' 的 ASCII 值,52 是字符 '4' 的 ASCII 值。 Arduino 在循环中发送字符串 "40",另一端在循环中接收数字 ASCII 值 4852

对方不知道数据类型。它只接收比特。您必须告诉程序将这些位解释为 ASCII 编码字符。