arduino步进电机程序库_Arduino基础入门篇27—步进电机驱动库的使用
本篇介绍步进电机驱动库的使用,通过读取电位器输入,控制步进电机转动相应角度。
Stepper库是官方提供的驱动库,我们启动Arduino IDE,点击「文件」—「示例」就能找到Stepper库,官方提供了四个例程。关于Stepper库可参考官方介绍。
1. 实验材料
Uno R3开发板
配套USB数据线
面包板及配套连接线
ULN2003驱动板
步进电机
电位器
2. 实验步骤
1. 根据原理图搭建电路。
原理图在上一篇基础上添加了电位器的连接。ULN2003驱动板上IN1、IN2、IN3、IN4分别连接UNO开发板的数字引脚2,3,4,5;驱动板电源输入+、-引脚分别连接UNO开发板的5V、GND;电位器中间引脚连接Uno模拟引脚A0,电位器两端引脚分别连接Uno的5V和GND。
实验原理图如下图所示:
实验原理图
实物连接图如下图所示:
实物连接图
2. 修改Stepper源文件。
由于我们使用的步进电机和官方驱动库中有所差异,所以需要对驱动库稍加修改。
找到Arduino IDE安装目录,进入\libraries\Stepper\src\,用文本文件打开Stepper.cpp。将255行switch包含的case注释掉。
库文件
拷贝如下代码到switch中。
case 0: // 1010
digitalWrite(motor_pin_1, HIGH);
digitalWrite(motor_pin_2, LOW);
digitalWrite(motor_pin_3, LOW);
digitalWrite(motor_pin_4, LOW);
break;
case 1: // 0110
digitalWrite(motor_pin_1, LOW);
digitalWrite(motor_pin_2, HIGH);
digitalWrite(motor_pin_3, LOW);
digitalWrite(motor_pin_4, LOW);
break;
case 2: //0101
digitalWrite(motor_pin_1, LOW);
digitalWrite(motor_pin_2, LOW);
digitalWrite(motor_pin_3, HIGH);
digitalWrite(motor_pin_4, HIGH);
break;
case 3: //1001
digitalWrite(motor_pin_1, LOW);
digitalWrite(motor_pin_2, LOW);
digitalWrite(motor_pin_3, LOW);
digitalWrite(motor_pin_4, HIGH);
break;
修改后
保存并关闭Stepper.cpp。
3. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。
/*
* MotorKnob
*
* A stepper motor follows the turns of a potentiometer
* (or other sensor) on analog input 0.
*
* http://www.arduino.cc/en/Reference/Stepper
* This example code is in the public domain.
*/
#include
// change this to the number of steps on your motor
#define STEPS 200
// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
Stepper stepper(STEPS, 2, 3, 4, 5);
// the previous reading from the analog input
int previous = 0;
void setup() {
// set the speed of the motor to 90 RPMs
stepper.setSpeed(90);
}
void loop() {
// get the sensor value
int val = analogRead(0);
// move a number of steps equal to the change in the
// sensor reading
stepper.step(val - previous);
// remember the previous value of the sensor
previous = val;
}
4. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。
程序下载
3. 实验现象
步进电机跟随电位器旋转而转动。
实验现象
4. 实验分析
程序中使用Stepper库,设置步进电机四相驱动引脚,设置转动速度。主循环中读取A0口模拟输入,与上次数据作比较,以上次数据为参考点驱动步进电机转动。
arduino步进电机程序库_Arduino基础入门篇27—步进电机驱动库的使用相关推荐
- arduino步进电机程序库_Arduino入门教程15(步进电机驱动库的使用):Arduino Uno R3+ULN2003+步进电机 使用Stepper驱动库,控制步进电机转动角度...
本篇介绍步进电机驱动库的使用,通过读取电位器输入,控制步进电机转动相应角度. Stepper库是官方提供的驱动库,我们启动Arduino IDE,点击「文件」-「示例」就能找到Stepper库,官方提 ...
- Arduino基础入门篇16—数码管库的使用
Arduino官方提供了丰富的驱动库来方便对外设进行操作,很多爱好者也在开源精神下提供了很多第三方库.本篇介绍数码管库的使用,通过读取电位器输入,使用数码管库驱动数码管显示对应数据. SevSeg库是 ...
- arduino点阵声音频谱_Arduino基础入门篇19—点阵屏
将8个LED发光二极管封装在一起就组成了数码管,将更多的LED组合在一起就组成了点阵屏.本篇我们来认识点阵屏,通过Arduino的IO口直接驱动点阵屏来了解其驱动方式. 1. 点阵屏介绍 LED点阵屏 ...
- arduino 光控灯_Arduino基础入门篇11—光控灯
阅读本文大概需要3分钟. 本篇介绍光敏电阻,通过模拟输入采集环境光强来控制LED灯亮度,做一个无需人为干预的自动控制设备. 传感器是一种检测装置,能感受并采集到被测量的信息,在当下物联网.智能家居中占 ...
- arduino二位数码管_Arduino基础入门篇17—四位数码管的驱动
本篇介绍四位数码管的使用,通过数码管库驱动四位数码管从0开始累加显示数字. 1. 四位数码管介绍 根据实际需要,把多个一位数码管封装在一起就成了多位数码管.常见的有两位.三位.四位.五位.六位等. 多 ...
- ardruino控制继电器_Arduino基础入门篇24—继电器控制
继电器是一种电子控制器件,是用较小的电流去控制较大电流的一种"自动开关",通常应用于自动控制电路中起着自动调节.安全保护.转换电路等作用. 本篇介绍继电器的使用,通过串口发送命令来 ...
- 32读取ltc的温度值_Arduino基础入门篇29—模拟温度传感器LM35
温度传感器就是利用物质随温度变化特性的规律,把温度转换成可输出信号的传感器,是普遍应用的传感器之一.本篇介绍模拟温度传感器-LM35. 1. LM35介绍 LM35是很常用的温度传感器元件,电路连接非 ...
- 12864液晶8x16ascii点阵_Arduino基础入门篇31—LCD1602液晶显示
LCD1602显示 LCD1602也叫1602字符型液晶,是一种专门用来显示字母.数字.符号的点阵型液晶模块,能同时显示16X2即32个字符.本篇我们来认识LCD1602,驱动它显示「Hello Wo ...
- Linux基础入门篇知识回顾
Linux基础入门篇知识回顾 一.回顾书籍 二.基础知识 1.计算机基础知识 1.1计算机的特点及发展趋势 ①特点 ②发展趋势 1.2计算机系统组成 ①计算机硬件概念 ②计算机硬件各部分功能 ![在这 ...
最新文章
- Taylayout 底部的滑动线高度设置
- 【Python爬虫】知识点简单总结
- Set,List,Collection,Collections的区别?
- [postgresql]postgresql的递归查询sql实例
- SSMS 18.0运行时闪退
- mysql的配置步骤
- 5 python 页面说明_Python爬虫爬取网易云的音乐
- 《C#高级编程(第六版)》泛型学习笔记(一):泛型优点和特性 (转载)
- 服务器内存傲腾基本参数信息,服务器傲腾内存
- Ubuntu22.04安装网易云音乐实操笔记
- 如何迅速分析出系统CPU的瓶颈在哪里
- ubuntu 虚拟机设置全屏
- 隔行插入行——《超级处理器》应用
- 实用计算机基础,计算机基础知识考题5[实用].pdf
- Win7 64位系统下思维导图XMind的Java环境配置
- 推荐:孙梦迪 张子默 张子衡
- 手机软件整理-其他类和GPS类软件
- JavaScript 在元素前后添加元素
- 常用的服务器操作命令
- 用企业微信如何做私域运营?
热门文章
- ffmpeg转换格式
- 排列公式和组合公式_排列与组合:排列公式与组合公式之间有什么区别?
- 从头开始开发gis_DevRel工程师一:从头开始建立开发人员关系团队
- 领略ES10的新功能
- SAS在金融中的应用五
- 浮点型的三个特殊值 Double.NEGATIVE_INFINITY Double.POSITIVE_INFINITY Double.NaN
- java aspectj_AspectJ的基本用法
- dell加装固态硬盘_技术丨如何进行笔记本硬盘拆装?
- 【java】多线程控制(二)- - -线程池
- C++ 学习笔记---零散的基础知识