【Arduino蓝牙小车】L298N电机驱动模块详解
原文链接:[Arduino] 从零制作蓝牙小车 - 饮猫的学习日志
1. L298N模块的使用
这是一个L298N电机驱动模块的图片。你可能会觉得接口有一点点多。但其实搞清楚它的控制原理后就能很快完成接线。
输出A、输出B两个接口分别与小车的两个电机相连(不用区分正负);12V供电接口与12V锂电池正极相连;GND接口同时与电池负极和Arduino的GND接口相连;5V供电接口与Arduino的Vin接口相连。
对于通道A使能、逻辑输入这几个接口,网络上的文章描述的都较为复杂。此处我会给出一个更简单的理解方式。注:由于通道AB的功能相同,下文只对一个通道进行描述。
图中的两个5V针脚会恒定输出5V电压;两个使能针脚可以理解为开关,当接到5V电压时,对应通道打开;1、2针脚用于控制电机的转动方向,1、2针脚分别为高电平时电机会转动且转动方向相反,其他情况电机不转动。
2. 接线方式
如果我们想利用PWM来对电机进行调速,我们有两种接线方式:
2.1 接线方式一(不推荐)
我们不拔除通道使能与5V之间的跳帽。这种情况下,通道会一直保持打开状态。我们分别将1、2两个针脚接到Arduino的两个PWM接口,通过分别控制1、2两个针脚对应的输出来控制电机旋转方向和速度。显然,这种接线方式会占用较多的PWM引脚(对于每个通道需要占用两个PWM引脚),但不需要占用普通引脚。在PWM引脚较少的情况下不推荐使用这种方案。
2.2 接线方式二(推荐)
拔除通道使能与5V之间的跳帽,将使能针脚与Arduino的PWM引脚相连、1、2两个针脚与Arduino的两个普通引脚相连。这是,我们可以通过PWM引脚来控制通道的开关,用于调速;控制1、2两个针脚的电平来控制电机的转动方向。对于每个通道,这种接线方式只需要占用一个PWM引脚,但是会占用两个普通引脚。我们需要根据实际的引脚数量在两种接线方式中进行权衡。本文接下来的代码部分以第二种接线方式为例。
3. Arduino代码
3.1 电机基础信息配置
#define Motor1_M1_Port 12
#define Motor1_M2_Port 13
#define Motor1_PWM_Port 3#define Motor2_M1_Port A4
#define Motor2_M2_Port A5
#define Motor2_PWM_Port 11
3.2 电机初始化函数
void motorInit() {// 设置引脚模式pinMode(Motor1_M1_Port, OUTPUT);pinMode(Motor1_M2_Port, OUTPUT);pinMode(Motor2_M1_Port, OUTPUT);pinMode(Motor2_M2_Port, OUTPUT);// 将引脚置于低电平digitalWrite(Motor1_M1_Port, LOW);digitalWrite(Motor1_M2_Port, LOW);digitalWrite(Motor2_M1_Port, LOW);digitalWrite(Motor2_M2_Port, LOW);
}
3.3 电机速度设置函数
void motorSetSpeed(int v1, int v2) {// 设置转动方向if (v1 >= 0) {digitalWrite(Motor1_M1_Port, LOW);digitalWrite(Motor1_M2_Port, HIGH);} else {digitalWrite(Motor1_M1_Port, HIGH);digitalWrite(Motor1_M2_Port, LOW);}if (v2 >= 0) {digitalWrite(Motor2_M1_Port, LOW);digitalWrite(Motor2_M2_Port, HIGH);} else {digitalWrite(Motor2_M1_Port, HIGH);digitalWrite(Motor2_M2_Port, LOW);}// 设置速度 通过PWM控制analogWrite(Motor1_PWM_Port, abs(v1)); // Value = 0 ~ 255analogWrite(Motor2_PWM_Port, abs(v2)); // Value = 0 ~ 255
}
至此,电机的驱动代码全部完成。
【Arduino蓝牙小车】L298N电机驱动模块详解相关推荐
- 用寻迹模块L298n电机驱动模块制作Arduino寻迹小车四路(含清单,代码,接线,注意事项)
本帖是在参考了很多博客之后进行的一次实战加总结,参考连接如下: Arduino智能小车寻迹篇 不适用PWM调速彻底解决L298n电机驱动转速不同的问题 1.工作原理 总体思想:小车通过四路寻迹模块得到 ...
- Arduino CNC电机扩展板详解(A4988驱动42步进电机)
原文地址:http://www.taichi-maker.com/homepage/reference-index/motor-reference-index/arduino-cnc-shield/ ...
- Android低功耗蓝牙(BLE)使用详解
代码地址如下: http://www.demodashi.com/demo/13390.html 与普通蓝牙相比,低功耗蓝牙显著降低了能量消耗,允许Android应用程序与具有更严格电源要求的BLE设 ...
- Arduino:数码管显示原理详解和Proteus仿真实验
Arduino:数码管显示原理详解和Proteus仿真实验 Proteus仿真 数码管介绍 数码管是半导体发光元件,其基本单元是发光二极管.根据段数,数码管分为七段管和八段管. 八段管比七段管还多一个 ...
- LE Audio 蓝牙协议规范(3)-EA,PA详解
LE Audio 蓝牙协议规范 LE Audio 蓝牙协议规范(1)-LE 状态 LE Audio 蓝牙协议规范(2)-物理信道及PDU LE Audio 蓝牙协议规范(3)-EA,PA详解 文章目录 ...
- 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发详解
转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50909410 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发详解 ...
- 【Arduino学习笔记】使用L298N电机驱动模块驱动直流电机
L298N是Arduino的电机驱动模块,能驱动步进电机和两路直流电机,驱动步进电机和直流电机的文章网上百度一大堆,这里我想说的是L298N模块外接独立12V电压驱动电机的方法.我使用的L298N模块 ...
- Arduino 项目笔记 | 基于 Arduino 单片机的 A4988 和 L298N电机驱动模块实验记录
目录 1. Arduino Nano 简介 2. 技术规格 3. 输入和输出 1. A4988 简介 2. A4988 引脚定义图及功能说明 (四相步进电机) 3. Arduino使用A4988控制电 ...
- 微信小程序连接蓝牙模块发送数据的详解以及封装版
连接蓝牙 前言 详解 小程序链接蓝牙流程图 需要的数据 api openBluetoothAdapter:打开蓝牙适配器 getBluetoothAdapterState:查看蓝牙适配器状态 star ...
最新文章
- selection at the technology management
- jsp实现html注册,jsp+servlet实现最基本的注册登陆功能
- win10访问win7的共享文件夹
- 《Qt Quick 4小时入门》学习笔记4
- 在Python中将十六进制字符串转换为int
- 将TensorFlow训练的模型移植到Android手机
- 编译ROS-Academy-for-Beginners
- 黑客之门的魅力:感染与加载
- 【强化学习】动态规划
- edi系统三要素_EDI的三要素
- 最小二乘估计与卡尔曼滤波公式推导
- 基于微信小程序的点餐与预约餐桌的管理系统+后台管理
- 解决微信H5端用户注册登录
- 哈工大 计算机系统 一纸开卷CSAPP
- 通过百世单号自动识别快递公司,并查询大量物流情况
- 倒置字符串 将一句话的单词进行倒置,标点不倒置。
- 物联网无线通讯wifi模块AP和STA模式分别是什么意思?
- 「C++控制台生存游戏」暗黑体素 DarkVoxel 控制台版
- win10引导安卓x86_GPDwin安装安卓x86折腾记(上)
- 关于同步电机的Ldq测量
热门文章
- STIPC_编程挑战系列赛第一场(小郭的故事)_A.小郭最爱签到题
- MySQL day1
- 便携式医疗电子将科幻场景搬进生活
- 英语口语测试软件原理,Skype Translator实时语音翻译技术原理
- Java的静态方法和实例方法详解
- ssh免密登录(使用公钥私钥对登录)
- 软件测试面试总结(一)
- HTML用于布局网页页面的元素,HTML div布局标签元素
- 互联网思维(二)——流量时代,私域为王
- 诺基亚n79 java性能_诺基亚N79即将出现,N79与N82对比,综合性能与可买度提升大吗?...