Arduino 教程—控制小型直流电机的方向和速度

如何使用Arduino开发板和L293D电机驱动芯片控制小型直流电机的方向和速度。

这个教学项目使用一个电位器来控制电机的速度 、使用一个按钮来控制电机的正反转。

元器件和材料

要搭建本课程中所描述的项目,您需要以下器件和材料。

  1. 小型直流电机 6V 1个

2. L293D电机驱动芯片 1片

3. 10 kΩ 可变电阻器 1只

4. 轻触按钮开关 1只

### 使用ArduinoTB6612驱动器控制直流电机 #### 连接说明 为了使Arduino与TB6612驱动器以及直流电机协同工作,需按照特定的方式连接各个元件。确保所有连线稳固可靠,并确认电源供应正常[^1]。 - **AIN1** **AIN2**: 控制左侧电机方向; - **BIN1** **BIN2**: 控制右侧电机方向; - **PWMA** **PWMB**: 接入PWM信号端口以调整转速; - **STBY (Standby)**: 设置为高电平激活芯片; 对于Arduino而言: - 将AIN1、AIN2接到数字I/O引脚上; - BIN1、BIN2同样接入不同的数字I/O接口; - PWMA、PWMB则应连至支持PWM输出的功能针脚; - STBY保持常高状态即可。 #### 示例代码展示 下面是一份简单的C++源码片段,展示了怎样利用上述配置来操控两台直流马达前进或停止的动作逻辑。 ```cpp // 定义TB6612FNG控制器上的引脚编号 const int AIN1_PIN = 8; // 左侧电机正向/反向切换 const int AIN2_PIN = 9; const int BIN1_PIN = 10; // 右侧电机正向/反向切换 const int BIN2_PIN = 11; const int PWMA_PIN = 3; // PWM输入给定左轮功率等级 const int PWMB_PIN = 5; // PWM输入给定右轮功率等级 const int STBY_PIN = 7; // 备用模式启用开关 void setup() { pinMode(AIN1_PIN, OUTPUT); pinMode(AIN2_PIN, OUTPUT); pinMode(BIN1_PIN, OUTPUT); pinMode(BIN2_PIN, OUTPUT); pinMode(PWMA_PIN, OUTPUT); pinMode(PWMB_PIN, OUTPUT); digitalWrite(STBY_PIN,HIGH); // 启用TB6612 } void loop(){ forward(); // 前进一段时间 delay(2000); // 等待2秒 stopMotors(); // 刹停 } void forward(){ // 让两个电机都向前转动 analogWrite(PWMA_PIN, 200); // 设定速度值范围是从0~255之间变化 analogWrite(PWMB_PIN, 200); digitalWrite(AIN1_PIN, HIGH); digitalWrite(AIN2_PIN, LOW); digitalWrite(BIN1_PIN, HIGH); digitalWrite(BIN2_PIN, LOW); } void stopMotors(){ // 关闭所有电机活动 digitalWrite(AIN1_PIN,LOW); digitalWrite(AIN2_PIN,LOW); digitalWrite(BIN1_PIN,LOW); digitalWrite(BIN2_PIN,LOW); } ``` 此段程序实现了基本的方向控制功能——即让一对安装于小型车辆底盘两侧的小型直流电动机同步运转从而推动车子直线前行,在经过指定延时期限之后再令其停下。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值