搜索代码

使用Arduino和L293D通过红外遥控器控制直流电动机

使用Arduino和L293D通过红外遥控器控制直流电动机

该项目展示了如何使用红外(IR)遥控器、Arduino Uno 和 L293D 电机驱动芯片控制直流电机的方向和速度。该设置允许精确控制电机,使其适用于多种应用。

这个项目为您的DIY电子项目打开了一扇可能性的大门。以下是一些可以帮助您入门的想法:

  • 遥控机器人:使用红外遥控器控制小机器人的运动。
  • 自动窗帘系统:远程打开和关闭窗帘或百叶窗。
  • 互动艺术装置:创作动态艺术作品,其中的活动部分由红外遥控器控制。
  • 平移和俯仰系统:使用红外遥控器控制摄像头或传感器的平移和倾斜。

硬件/组件

  • Arduino Uno
  • L293D电机驱动IC
  • 直流电机
  • 红外遥控器和接收器
  • 二极管 (1N4001 x4)
  • 连接线
  • 电源(例如,电动机的9V电池)

布线指南

%%WIRING%%

(in video at 02:14)

L293D芯片需要连接Arduino和外部电源供给电机。二极管用于防反击保护。红外接收器连接到Arduino的5V和GND引脚,信号引脚连接到数字引脚11(可在代码中配置)。电机连接到L293D的输出引脚,这些引脚由Arduino控制。

代码解释

(视频中在07:30)

提供的Arduino代码利用IRremote库解码来自红外遥控器的信号。代码中重要的可配置参数包括:


const char type ='B';// W for white, B for black. Must keep single quotes like 'B' or 'W'
const boolean PCB = 0;// if receiver is PCB set to 1, if not set to 0. See video for details

设置type将变量设置为'W'表示白色遥控器,'B'表示黑色遥控器(在视频的07:41)。PCB如果您的红外接收器有PCB,则变量应设置为1;如果是裸模块,则应设置为0(在视频的07:50处)。


const String RIGHT=">";// move motor to the right (CW) with this key on remote
const String LEFT ="<";// move motor to the left (CCW) with this key on remote
const String STOP ="OK";// stop motor with this key on remote

这些行定义了用于控制电动机的红外遥控按钮标签。确保这些标签与您的遥控器上的标签匹配(视频中在 08:12)。您可以自定义这些标签以使用遥控器上的不同按钮。


#define P1A 2 // define pin 2 as for P1A
#define P2A 7 // define pin 7 as for P2A
#define EN12 8 // define pin 8 as for 1,2EN enable
int RECV_PIN = 11;

这些行定义了用于控制 L293D 电机驱动器的 Arduino 引脚(在视频中为 09:52)。P1AP2A控制方向,和EN12启用电机。RECV_PIN是连接到红外接收器信号输出的引脚(视频中的 06:52)。如果使用不同的引脚,请修改这些。

现场项目/演示

(视频中在14:15)

该视频演示了项目的实际操作,展示了直流电机如何响应红外遥控命令。演示说明了如何控制电机顺时针和逆时针旋转,以及如何使用不同的遥控按钮停止电机。

章节

  • [00:00] 介绍与项目概述
  • 项目组件和先决条件
  • [02:14] 接线说明
  • [07:30] 代码说明和配置
  • [14:15] 使用黑色遥控器和电路板的项目演示
  • [16:04] 使用银色遥控器和PCB的演示
  • [17:42] 使用银色遥控器和裸模块的演示
  • [18:23] 使用黑色遥控器和裸露模块的演示
142-Source for controlling a servo motor with an IR remote controller using Arduino
语言: C++
This code has not been parsed yet. Please return to the admin panel to parse it.
143-Source for a simple L293 motor controller using Arduino
语言: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

文件📁

没有可用的文件。