arduino mega 2560 通过 L298N二路直流电机控制板实现小车简单运动
2016-06-12 16:20
633 查看
1 硬件
arduino mega r3 开发板
L298N二路直流电机驱动板
2 电路连接
HF_DJ2Z_01为一款光耦隔离型可调速电机驱动板,可完美的插接在arduino mega r3控制板上驱动2路电机,也可以将驱动板上标有IN1、IN2、IN3、IN4、ENA、ENB对应的引脚用杜邦线接出,连接到其他型号的arduino控制板上的输出引脚上使用。本驱动板可以使用光耦隔离达到更好的驱动效果,使用光耦时需要将拨码开关拨到带数字的一端,然后在5V电源接口接入5V电源。
IN1、IN2、IN3、IN4、ENA、ENB为输入引脚,OUT1、OUT2、OUT3、OUT4为输出引脚,接两路直流电机。IN1、IN2、ENA对应OUT1、OUT2连接的电机,IN3、IN4、ENB对应OUT3、OUT4对应的电机。
组合后的照片
3、arduino软件开发环境搭建
第一步是安装arduino板子的开发软件arduino IDE
Arduino
IDE下载 http://www.arduino.cn/thread-5838-1-1.html
软件安装好后将arduino通过数据下载线与电脑的USB链接
注:
Arduino驱动安装方法
http://www.arduino.cn/thread-1008-1-1.htmlArduino驱动安装失败的解决方法:
Arduino驱动问题一键修复工具beta http://www.arduino.cn/thread-12349-1-1.html
安装驱动数据无效 http://www.arduino.cn/thread-7531-1-1.html
系统找不到指定文件 http://www.arduino.cn/thread-2485-1-1.html
第二步打开arduino IDE软件进行如下设置
点击窗口上的工具菜单,依次设置红色箭头所指内容,端口选择时会提示板子的接口,编辑器选择USBasp即可
到此开发环境搭建完毕!
4 编写代码实现小车电机运动(实例)
打开arduino IDE 文件 >>新建,弹出一个新项目编辑窗口,在窗口内进行代码编辑。
本例代码:
// Example by gaolvzhou
#define ENA 9
#define IN1 7
#define IN2 8
#define ENB 10
#define IN3 12
#define IN4 13
void setup() {
pinMode(ENA, OUTPUT); //PWM
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT); //PWM
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
// Speed
analogWrite(ENA, 200);
analogWrite(ENB, 200);
// foreward 5 seconds
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(5000);
//rollback 5 seconds
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(5000);
// stop
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(5000);
// Forward
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(5000);
// Forward in high speed
analogWrite(ENA, 255);
analogWrite(ENB, 255);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(5000);
}
上面代码编写好后,在arduino链接在电脑上的状态下,通过arduino IDE软件将代码烧录到arduino板子上: 项目 >> 上传 (不同版本的IDE可能路径不同,但是一般都是上传按钮)
5 通电实现小车电机运动
arduino mega r3 开发板
L298N二路直流电机驱动板
2 电路连接
HF_DJ2Z_01为一款光耦隔离型可调速电机驱动板,可完美的插接在arduino mega r3控制板上驱动2路电机,也可以将驱动板上标有IN1、IN2、IN3、IN4、ENA、ENB对应的引脚用杜邦线接出,连接到其他型号的arduino控制板上的输出引脚上使用。本驱动板可以使用光耦隔离达到更好的驱动效果,使用光耦时需要将拨码开关拨到带数字的一端,然后在5V电源接口接入5V电源。
IN1、IN2、IN3、IN4、ENA、ENB为输入引脚,OUT1、OUT2、OUT3、OUT4为输出引脚,接两路直流电机。IN1、IN2、ENA对应OUT1、OUT2连接的电机,IN3、IN4、ENB对应OUT3、OUT4对应的电机。
驱动板引脚 | 对应Arduino引脚 | 功能 |
IN1 | 7 | 电机1输入 |
IN2 | 8 | 电机1输入 |
ENA | 9 | 电机1PWM |
IN3 | 12 | 电机2输入 |
IN4 | 13 | 电机2输入 |
ENB | 10 | 电机2PWM |
5 | 2 | 电机1编码器中断 |
6 | 3 | 电机2编码器中断 |
1 | | 电机1编码器4引脚 |
2 | | 电机2编码器4引脚 |
3、arduino软件开发环境搭建
第一步是安装arduino板子的开发软件arduino IDE
Arduino
IDE下载 http://www.arduino.cn/thread-5838-1-1.html
软件安装好后将arduino通过数据下载线与电脑的USB链接
注:
Arduino驱动安装方法
http://www.arduino.cn/thread-1008-1-1.htmlArduino驱动安装失败的解决方法:
Arduino驱动问题一键修复工具beta http://www.arduino.cn/thread-12349-1-1.html
安装驱动数据无效 http://www.arduino.cn/thread-7531-1-1.html
系统找不到指定文件 http://www.arduino.cn/thread-2485-1-1.html
第二步打开arduino IDE软件进行如下设置
点击窗口上的工具菜单,依次设置红色箭头所指内容,端口选择时会提示板子的接口,编辑器选择USBasp即可
到此开发环境搭建完毕!
4 编写代码实现小车电机运动(实例)
打开arduino IDE 文件 >>新建,弹出一个新项目编辑窗口,在窗口内进行代码编辑。
本例代码:
// Example by gaolvzhou
#define ENA 9
#define IN1 7
#define IN2 8
#define ENB 10
#define IN3 12
#define IN4 13
void setup() {
pinMode(ENA, OUTPUT); //PWM
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT); //PWM
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
// Speed
analogWrite(ENA, 200);
analogWrite(ENB, 200);
// foreward 5 seconds
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(5000);
//rollback 5 seconds
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(5000);
// stop
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(5000);
// Forward
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(5000);
// Forward in high speed
analogWrite(ENA, 255);
analogWrite(ENB, 255);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(5000);
}
上面代码编写好后,在arduino链接在电脑上的状态下,通过arduino IDE软件将代码烧录到arduino板子上: 项目 >> 上传 (不同版本的IDE可能路径不同,但是一般都是上传按钮)
5 通电实现小车电机运动
相关文章推荐
- [Leetcode] 60. Permutation Sequence
- Easyui里面动态设置输入框的可见性
- poj 1947 Rebuilding Roads 树形DP
- UED学习网站
- UE4 简易天空盒制作
- iOS UI自适应:用“代码”还是“可视化xib”?_个人选择还是xib的autolayout和sizeclasses
- Easyui的combobox实现动态数据级联效果
- View的requestDisallowInterceptTouchEvent对事件的影响
- Sort a Map<Key, Value> by values (Java)
- UED大全
- 杭电OJ 1005 Number Sequence
- 【XTU】2016湘潭邀请赛 I Substring Query【AC自动机+分块】
- SSh结合Easyui实现Datagrid的分页显示
- UITabBarController设置选中时图片和文字的颜色
- 基于easyui的弹出窗口,自己留个以后用
- mysql: Packet for query is too large 和Data too long for column
- UITextView的使用详解
- Web Performance Test : 为Request的Post参数名添加XPath支持
- Web Performance Test: 如果使用Plugin过滤Dependent Request
- RCP:如何移除Toolbar中的Quick Access