步骤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
-
发射器
+关注
关注
6文章
843浏览量
53403 -
遥控车
+关注
关注
9文章
81浏览量
23692
发布评论请先 登录
相关推荐
评论