问题描述
嗨,我正在尝试使用 Arduino Uno 板从 rc 发射器读取数据,我有一个信号引脚从接收器连接到 Arduino 上的引脚 9。这是我非常感谢的代码,我想要实现的只是从接收器读取 pmw。我能够将伺服器插入接收器,并且可以与电机一起正常工作,当我尝试将 Arduino 与接收器一起使用时,我只是在挣扎。当我运行我的程序时,我在串行监视器中得到的只是一些完全不相关的值,例如 9991,9972,10030,10050。
我想要一个可以映射到 0-255 的 pmw 值以控制电机
我的default transaction attribute: 电池 -> ESC(用于 BEC 将 5 伏电压调节回接收器)-> 接收器 -> ch3 信号引脚 -> Arduino uno (pin9)
void setup() {
Serial.begin(9600);
}
void loop() {
int pwm = pulseIn(9,HIGH,25000);
Serial.println(pwm);
delay (5);
}
解决方法
您正在使用 pulseIn
返回时间(以毫秒为单位)。它等待高信号的时间。如果您需要实际值,请使用 analogRead
。您仍然可以使用pulseIn
,只是不要使用返回值
void setup() {
Serial.begin(9600);
}
void loop() {
byte pwm = analogRead(A5) / 4;
Serial.println(pwm);
delay(5);
}