使用L293D电机驱动器和Arduino PWM控制直流电动机
该项目展示了如何使用L293D电机驱动芯片和Arduino的脉宽调制(PWM)功能来控制直流电机的速度和方向。该设置允许精确的电机控制,使其适用于各种应用。
以下是一些使用此设置的项目想法:
- 机器人技术:控制小机器人轮子的运动。
- 自动化设备:创建自动窗帘、百叶窗或小型传送带。
- 风扇控制:根据温度读数调整冷却风扇的速度。
- 太阳能追踪器:将小型太阳能电池板定位以全天跟随太阳。
硬件/组件
- Arduino Uno(或兼容板)
- L293D 电机驱动IC
- 直流电动机(针对L293D的电压和电流限制,额定电流最高至600毫安)
- 9V 电源(用于电机)
- 连接电线
- 面包板(推荐)
接线指南
L293D芯片充当Arduino与直流电机之间的接口。它允许Arduino控制电机的速度和方向。该芯片需要为电机提供单独的电源,因为Arduino无法为大多数电机提供足够的电流。(视频时间:04:04)
%%接线%%
代码解释
Arduino代码控制L293D驱动器,进而控制直流电机。该代码使用PWM调节电机速度,并通过数字信号切换方向。
以下是代码中可配置的关键参数:
#define P1A 10 // Arduino pin connected to L293D input 1A
#define P2A 11 // Arduino pin connected to L293D input 2A
#define EN12 9 // Arduino pin connected to L293D enable pin (1,2EN)
const int speedStep = 15; // Increment for speed changes
const int speedDelay = 1000; // Delay between speed steps (in milliseconds)
TheL293D()函数控制电机的方向和速度。'L' 设置电机顺时针旋转,'R' 设置电机逆时针旋转。spd参数控制速度(0-255)和en启用(1)或禁用(0)电机。(视频时间:09:24)
void L293D(char dir,int spd, int en)
{
if(dir =='L') // Clockwise rotation
{
// ...
analogWrite(P1A,spd); // Set speed using PWM
digitalWrite(P2A,LOW);
}else{ // Counter-clockwise rotation
// ...
digitalWrite(P1A,LOW);
analogWrite(P2A,spd); // Set speed using PWM
}
}
现场项目/演示
该视频展示了项目的运行情况,显示了电机的速度和方向变化。示波器读数可视化了控制电机的PWM信号。(视频中在11:07)
章节
- [00:00] L293D直流电机控制简介
- [00:30] 项目演示和说明
- [01:12] L293D 电机驱动器概览
- [02:08] 直流电机规格
- [02:30] L293D 数据表说明
- [04:40] 接线说明和演示
- [07:05] Arduino 代码解释
- [11:07] 项目演示和示波器读数
144-Arduino source for L293D motor driver (loop)
语言: C++
This code has not been parsed yet. Please return to the admin panel to parse it.
145-Source for a simple L293D motor controller using Arduino (CW, CCW, and STOP)
语言: C++
This code has not been parsed yet. Please return to the admin panel to parse it.
文件📁
没有可用的文件。