为什么我的 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 值 48
和 52
。
对方不知道数据类型。它只接收比特。您必须告诉程序将这些位解释为 ASCII 编码字符。
我发现无论我在 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 值 48
和 52
。
对方不知道数据类型。它只接收比特。您必须告诉程序将这些位解释为 ASCII 编码字符。