使用Arduino UNO开发板和L293D马达驱动器的遥控车设计

今日头条

1142人已加入

描述

本项目使用Arduino UNO开发板和L293D马达驱动器,制作了一个可由任何IR控制器进行控制的遥控车。

 

驱动器红外遥控车项目电路图



小车通电后,L293D马达端罩和IR接收模块通过Arduino UNO板子激活,IR接收器开始接收红外线。当IR接收器的接收值与程序匹配时,啮合马达就按照对应的数值正传或反转。

需要牢记的是,虽然使用了L293D马达驱动器支架,马达端子是1、2不用的,因为这两个端子对IR遥控不起作用。因此,我们只能用3、4端子。

 

驱动器项目物料照片



项目BOM表如下:
 Arduino UNO开发板 x 1
 IR接收模块 x 1
 L293D马达驱动器 x 1
 啮合马达 x 4 
 Robot轮子 x 4
 锂离子电池 x 2
 锂离子电池支架 x 1
 硬纸板
 跳线

 

驱动器IR遥控车硬件制作

 

首先,制作车架。先把纸板切成车架的轮廓,剪出四个轮子的位置。再将马达与轮子啮合后,用胶水将马达粘在车架上。

接着,按照电路图,将马达驱动器连接到Arduino开发板,再用胶水固定在车架的中心位置。

第三步,将IR接收模块胶粘在车架上,并按照电路图连接于马达驱动器。

第四步,将锂离子电池支架胶粘到车架上,再与马达驱动器连接。

硬件连接正确后,剩下的就是上传软件了。

第一,从IR遥控器获得IR数值,IR遥控器类型不限。这需要先下载IR库、AFmotor库两个库文件。

/*IR remote control car with Arduino.
* http://srituhobby.com
*/

#include
#include

AF_DCMotor motor1(3);
AF_DCMotor motor2(4);

IRrecv IR(A0);
decode_results result;

int Speed = 150;

#define up 0
#define down 0
#define left 0
#define right 0
#define Stop 0

void setup() {
 Serial.begin(9600);
 motor1.setSpeed(Speed);
 motor2.setSpeed(Speed);
 IR.enableIRIn();
}

void loop() {
 if (IR.decode(&result)) {
   Serial.println(result.value);
   IR.resume();
 }
 delay(100);
 if (result.value == up ) {
   motor1.run(FORWARD);
   motor2.run(FORWARD);
 } else if (result.value == down ) {
   motor1.run(BACKWARD);
   motor2.run(BACKWARD);
 } else if (result.value == Stop) {
   motor1.run(RELEASE);
   motor2.run(RELEASE);
 } else if (result.value == left) {
   motor1.run(FORWARD);
   motor2.run(BACKWARD);
 } else if (result.value == right) {
   motor1.run(BACKWARD);
   motor2.run(FORWARD);
 }
}

将上述代码上传到对应端口后,运行serial monitor获得IR数值,将这些数值拷下来再粘贴到程序中。

 

驱动器更新后的IR遥控车程序

 

最后,上传更新后的程序。这样,操作遥控,小车就按指挥运行了。
 

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

全部0条评论

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

×
20
完善资料,
赚取积分