怎样用遥控飞机发射器来控制任何遥控车

电子说

1.2w人已加入

描述

步骤1:收集零件!

所需零件

1。 Flysky发送器和接收器

2。 L298n电动机驱动器护罩(下面是该护罩的零件清单和教程)

3。 Arduino Mega 2560版本4。遥控车

5。 9v电池

6。 7v镍镉电池

步骤2:发射器

在本教程中,我将使用flysky ct6b发射器。操作员通过无线电链路控制飞机,无线电链路通过电磁辐射即PPM信号(脉冲位置调制)连接到接收器。基本上,R/C设备由操作员操作的发射器和接收由R/C发射器发射的信号的接收器组成。PPM是脉冲位置调制(PPM)。信号调制的一种形式,其中M个消息位通过在可能的时移之一中发送单个脉冲进行编码。每T秒重复一次,以使传输的比特率为每秒M/T比特。它主要用于光通信系统,在该系统中,几乎没有或几乎没有多径干扰。

有关PPM的更多信息,请访问-http://en.wikipedia.org/wiki/Pulse-position_modulation

带有任何微控制器(在我的情况下为arduino)的飞机R/C发射器,我们必须首先解码PPM信号。要解码这些信号,我将使用arduino编程环境。

步骤3:电动机驱动器护罩

遥控车

遥控车

要将任何电机控制的设备与微控制器一起使用,我们需要一个电机驱动器,基本上可以让您添加一个外部电池来控制设备。在这里,我将使用L298n电动机驱动器,该电动机驱动器可使用高达24v和4 A的电流。

现在,我将向您展示如何为arduino制造自己的L298电动机驱动器屏蔽。

零件清单

1。 L298N双H桥IC

2。 IN4004二极管

3。防盗条

4。标准PCB(印刷电路板)

5。散热器

6。基本工具和一些导线

L298n H桥

H桥的基本原理是能够控制电动机的方向,即向前或向后。这是通过管理流经称为晶体管的电路元件的电流来实现的。编队看起来像H,因此得名-H-Bridge。 L298使用此原理来控制电动机。易于使用。

第4步:Flysky接收器

遥控车

现在我们必须连接flysky接收器。

将接收器连接到arduino

将要使用的接收器的任何两个通道连接到arduino引脚9和10。

将电池连接到接收器

将正极连接到接收器的负极和9v电池。确保所有接地都已连接(例如,arduino的接地,接收器的接地以及两个电池的接地)。通常,当所有地面都未连接时会发生很多问题。

步骤5:我使用的遥控车

带有悬架的凉爽R/C赛车,使其易于在许多地形上使用!

因此,首先,我们必须从R/C赛车上拆除电路。

确保不损坏任何组件。除非这是一辆损坏了的旧车:)。

现在,将两根电线焊接到每个电动机上,然后将这些电线连接到

L298n屏蔽层,如上一步中的示意图所示。

第6步:对Arduino进行编程

最后,我们获得了对PPM信号进行解码并将其转换的代码,以便L298能够理解它们。我使用pulseIn()函数读取了发射器摇杆值!

下面是不言自明的代码!

/*这是用Vishnu编写的使用飞机发射器控制任何遥控汽车的代码Chaitanya Karpuram。请享用!! */ int motor1Left = 5;//将引脚5定义为连接到马达

int motor1Right = 6;//将引脚6定义为与电机连接

int motor2Left = 7;//定义引脚7表示连接到电机 motor2Right = 8;//定义了引脚8表示连接到电机通道1 = 9;//定义分别连接到arduino的引脚9和10的通道

int channel2 = 10;//分别连接到arduino的引脚9和10。//稍后用于

int Channel2;//存储值

void setup()

{

pinMode(motor1Left,OUTPUT);//初始化电机pin

pinMode(motor1Right,OUTPUT);

pinMode(motor2Left,OUTPUT) ;

pinMode(motor2Right,OUTPUT);//作为输出

pinMode(channel1,INPUT);//初始化通道

pinMode(channel2,INPUT);//作为输入

Serial.begin (9600);//将波特率设置为9600 bps

}

void loop()

{

Channel1 =(pulseIn(channel1,HIGH));//检查channel1

的值Serial.println(Channel1);//如果(Channel1》 1300 && Channel1 《1500)/*在串行监视器

上打印通道值/*如果满足这些条件,请执行以下操作。这些是我从变送器获得的值,您可以根据您的变送器值进行自定义*/

{

digitalWrite(motor1Left,LOW);//将两个

digitalWrite(motor1Right,LOW);//都设置为低

}

if(Channel1 《1300)//检查Channel1是否小于1300

{

digitalWrite(motor1Left,HIGH);//左移

digitalWrite(motor1Right,LOW);//电动机正转

}

if(Channel1》 1500)//检查Channel1是否大于1500

{

digitalWrite(motor1Left,LOW);//将右

digitalWrite( motor1Right,HIGH);//电机正转

}

Channel2 =(pulseIn(channel2,HIGH));//检查channel1

Serial.println(Channel2)的值;//如果(Channel2》 1300 && Channel1 《1500)//在串行监视器上打印通道值

//如果满足这些条件,请执行以下操作

{

digitalWrite(motor2Left,LOW );//将两个

digitalWrite(motor2Right,LOW);//都设置为低

}

if(Channel2 《1300)//检查Channel2是否小于1300

{

digitalWrite(motor2Left,LOW);//向左旋转

digitalWrite(motor2Right,HIGH);//电动机向后

}

if(Channel2》 1500)//检查Channel2是否更大大于1500

{

digitalWrite(motor2Left,HIGH);//向右旋转

digitalWrite(motor2Right,LOW);//电机向后

}

/*注意-检查以下各项的值您在串行监视器中获得的通道,并相应地调整if语句中的值。以棒为中心的情况下,读数为1400至1470。举起棒时,其读数为1470以上,而放下时为1300以下。

*/

责任编辑:wv 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分