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();
  ...
}