arduino uno模拟遥控器控制无刷电机

原理:arduino模拟遥控器

以无人机的无刷电机为例,遥控器与无刷电机进行校准:

1.遥控器将油门打到最大

2.接收机油门输出端口的pwm输出最大,(一般在2000左右)

3.pwm输出到电调

4.给电调上电

5.因为输出到电调的pwm比较大,电调进行校对,设定现在的值为最大值,并发出滴滴声

6.遥控器将油门打到最小

7.接收机油门油门输出端口的pwm输出最小,(一般在1000左右)

8.pwm输出到电调

9.电调设定现在的值为最小值,并发出滴滴滴声

10.慢慢把遥控器往上掰,无刷电机开始转动。

我们用arduino代替遥控器和接收机,只需要arduino去模拟遥控器的pwm输出给电调就好了,不用纠结接收机的pwm具体是多少,因为电调会和arduino的pwm重新校对最大值和最小值。

接线

电调与无刷电机的线接好,不用考虑接线顺序,随便调转接的2根线就能实现正反转。

电调的白线是数据端口接arduion 9号端口。(arduino输出pwm给电调)

电调的红色是电源端口接arduion 的vin端口。(给arduino供电)

电调的黑线是共地端口接arduion 的GND端口。(共地)

假如电调没有红色的电源线,可以不接。但是要而外给arduino供电。

程序

#include <Servo.h>

Servo myservo1;//
int Max=2000;       //转速最大时候的pwm
int Min=1000;       //转速最小时候的pwm
int pos=Min;        //初始转速赋值
int sign=0;         //标志位,用于切换转速增大还是减小


void setup() {
     myservo1.attach(9);  //pwm输出口为9号端口
     myservo1.write(Max); //输出定义的pwm最大值,模拟遥控器油门打到最大
     delay(5000);         //等待电机设定最大值,会滴滴的发出声音
     myservo1.write(Min); //输出定义的pwm最小值,模拟遥控器油门打到最小
     delay(5000);         //等待电机设定最小值,会滴滴滴的发出声音
     Serial.begin(9600);  
}
void loop()    //电机转速从小变大再变小,反复循环. pwm数值会从串口输出。
{
  delay(10);                
  if(sign==0)              //让转速逐渐增大,增大到最大速度的一半
  {
    Serial.println(pos);  
    myservo1.write(pos);   //输出pwm到9号端口
    pos++;
    if(pos==(Max+Min)/2)
    sign=1;   
  }
  if(sign==1)              //让转速逐渐减小,减小到电机停止转动
  {
    Serial.println(pos);
    myservo1.write(pos);   //输出pwm到9号端口
    pos--;
    if(pos==Min)
    sign=0;
  }
  
}
Arduino航模遥控器SBUS是一款用于无人机和遥控器之间数字信号传输的串行总线通信协议。它是Futaba公司开发的一种数字通信协议,可以通过单根信号线传输16个通道的数据。 Arduino航模遥控器SBUS的主要特点包括: 1. **高效传输**:SBUS协议能够通过单根信号线实现多达16个通道的数据传输,这对于需要多通道控制的航模来说尤为重要。 2. **简化接线**:使用SBUS协议的遥控器可以极大地简化接线工作,相较于传统的PWM输出方式,SBUS只需要三根线即可实现对16个伺服通道和2个数字通道的控制。 3. **广泛兼容**:由于SBUS是Futaba公司开发的标准,它在航模领域得到了广泛的应用和支持,许多接收机和飞控系统都支持SBUS协议。 4. **开源共享**:随着航模爱好者社区的发展,越来越多的开源项目开始支持SBUS协议,如开源自制的6通道航模遥控器等,这为航模爱好者提供了更多的学习和实践机会。 5. **提升性能**:采用SBUS协议的遥控器能够提供更精准的控制和更高的信号传输效率,这对于提高航模的飞行性能和稳定性有着直接的影响。 在实际应用中,采用SBUS协议的Arduino航模遥控器具有以下优点: 1. **简化设计**:通过实现SBUS输出,可以大大简化遥控器的设计,减少所需的接线数量,使得整体设计更加简洁高效。 2. **扩展功能**:SBUS协议不仅支持多个伺服通道的输出,还可以实现数字通道的传输,这意味着除了基本的飞行控制外,还可以通过遥控器实现更多的功能扩展。 3. **降低成本**:相比于传统的多通道PWM输出方式,采用SBUS协议可以在保证性能的同时,降低硬件成本和复杂度。 4. **提升体验**:对于航模爱好者而言,使用SBUS协议的遥控器能够提供更好的操控体验,尤其是在进行复杂飞行动作时,能够获得更加精准的控制效果。 5. **促进创新**:开源社区的支持和SBUS协议的应用促进了航模领域的技术创新,爱好者可以根据自己的需求定制和改进遥控器的功能。 综上所述,Arduino航模遥控器SBUS通过高效的数字通信协议,为航模爱好者提供了一个高性能、易操作且可扩展的遥控解决方案。它不仅简化了遥控器的设计和接线,还提高了信号传输的效率和准确性,为航模的精确控制和多样化功能提供了强大的支持。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值