热度 5
2022-6-24 09:27
1930 次阅读|
1 个评论
本项目使用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. * Home Page - SriTu Hobby */ #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遥控车程序 最后,上传更新后的程序。这样,操作遥控,小车就按指挥运行了。