【问题标题】:radio control with arduino使用 arduino 进行无线电控制
【发布时间】:2021-06-25 15:34:41
【问题描述】:

您好,我正在尝试使用 Arduino Uno 板从 rc 发送器读取数据,我有一个信号引脚从接收器连接到 Arduino 上的引脚 9。这是我非常感谢一些帮助的代码,我想要实现的只是从接收器读取 pmw。我能够将伺服器插入接收器,并且当我尝试将 Arduino 与接收器一起使用时,它与电机一起工作得很好。当我运行我的程序时,我在串行监视器中得到的只是完全不相关的值,例如 9991,9972,10030,10050。

我想要一个 pmw 值,我可以映射到 0-255 以控制电机

我的Circuit: 电池 -> 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);
}

【问题讨论】:

    标签: arduino radio servo transmission


    【解决方案1】:

    您正在使用pulseIn,它返回一个时间(以毫秒为单位)。时间是它等待高信号的时间。如果您想要实际值,请使用analogRead。还是可以使用pulseIn,只是不要使用返回值

    void setup() {
      Serial.begin(9600);
    }
    
    void loop() {
      byte pwm = analogRead(A5) / 4;
      Serial.println(pwm);
      delay(5);
    }
    

    【讨论】:

    • 感谢您的帮助,但是这仍然没有返回与来自控制器的信号有任何关系的值您还有什么建议吗?
    • @OliverM 尝试完全省略 pulseIn
    • 您好,再次感谢您的帮助,但是我完全切断了 pulseIn 行,但是我现在只是得到不同的随机值,例如 370,但是当我移动棍子时没有任何变化
    • 你能编辑你的问题并包括你的接线吗?如果您包含您所期望的内容也会有所帮助。
    • 我已经包括了接线,我希望最终能够实现的是让 Arduino 从接收器接收值,以便以后控制电机或伺服等。
    猜你喜欢
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多