ASCII 转换为 INT Arduino
ASCII into an INT Arduino
所以我想通过 RX TX 将一个 Arduino 的传感器作为 INT 发送到另一个 Arduino。问题是我想用这个值打开另一个 Arduino 上的 LED。但是数字以 ASCII 块的形式到达,我想知道是否以及如何将数字转换为 INT。
这是发件人的代码
int i = 601;
int sensorValue = 0;
int input = A0;
void setup () {
Serial.begin (9600); // Begin serial communication with 9600 baud
sensorValue = analogRead (input); // here the sensor value is written into the variable "sensorValue"
Serial.println (sensorValue); // send from the variable "sensorValue" via the serial interface
}
void loop () {
}
根据您的代码:
从 analogRead() 返回的数据不是 ascii。它是从 0 到 1023。
模数转换器 (ADC) 将引脚的电压转换为数字。例如 0 表示 0 伏,1023 表示 5 伏。
要以二进制形式传输 int
,您必须将 int 的字节作为字节数组发送。
Serial.write((const uint8_t*) &sensorValue, sizeof(sensorValue));
您可以收到它们
if (Serial.available()) {
Serial.readBytes((uint8_t*) &sensorValue, sizeof(sensorValue));
...
}
如果您想将数字作为文本传输并在另一个 Arduino 上解析它,您可以使用 Serial.parseInt() 函数。
if (Serial.available()) {
int sensorValue = Serial.parseInt();
...
}
所以我想通过 RX TX 将一个 Arduino 的传感器作为 INT 发送到另一个 Arduino。问题是我想用这个值打开另一个 Arduino 上的 LED。但是数字以 ASCII 块的形式到达,我想知道是否以及如何将数字转换为 INT。
这是发件人的代码
int i = 601;
int sensorValue = 0;
int input = A0;
void setup () {
Serial.begin (9600); // Begin serial communication with 9600 baud
sensorValue = analogRead (input); // here the sensor value is written into the variable "sensorValue"
Serial.println (sensorValue); // send from the variable "sensorValue" via the serial interface
}
void loop () {
}
根据您的代码: 从 analogRead() 返回的数据不是 ascii。它是从 0 到 1023。 模数转换器 (ADC) 将引脚的电压转换为数字。例如 0 表示 0 伏,1023 表示 5 伏。
要以二进制形式传输 int
,您必须将 int 的字节作为字节数组发送。
Serial.write((const uint8_t*) &sensorValue, sizeof(sensorValue));
您可以收到它们
if (Serial.available()) {
Serial.readBytes((uint8_t*) &sensorValue, sizeof(sensorValue));
...
}
如果您想将数字作为文本传输并在另一个 Arduino 上解析它,您可以使用 Serial.parseInt() 函数。
if (Serial.available()) {
int sensorValue = Serial.parseInt();
...
}