使用 arduino 进行无线电控制

问题描述

嗨,我正在尝试使用 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);
}