0

当我使用伺服器以全功率顺时针转动时,我试图通过串行命令为 360 伺服器 servo1.writeMicroseconds(1000); 供电,用 1500 代替 1000 停止它,而 2000 使它逆时针转动。

to debug 也给出了一个奇怪的Serial.write(val);答案,当我使用 1 的值时,板子将其接收为:

--> 49 --> 10

板是 Arduino Mega 2560

#include <Servo.h>
Servo servo1;
int val = 1500;

void setup() {
servo1.attach(7);
servo1.writeMicroseconds(val);
Serial.begin(9600); 
}

void loop(){

if(Serial.available()){ 

int val = Serial.read();
Serial.write(val);
servo1.writeMicroseconds(val);

}
} 
4

1 回答 1

0

不要使用Serial.write(). 它用于写入字节。而是使用Serial.println(...)which 将打印一行并处理多种输入类型。

另一个建议是不要Serial.read()仅用于整数。如此处Serial.parseInt()所述使用

于 2021-10-09T13:39:49.747 回答