本篇介绍步进电机驱动库的使用,通过读取电位器输入,控制步进电机转动相应角度。

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—步进电机驱动库的使用相关推荐

  1. arduino步进电机程序库_Arduino入门教程15(步进电机驱动库的使用):Arduino Uno R3+ULN2003+步进电机 使用Stepper驱动库,控制步进电机转动角度...

    本篇介绍步进电机驱动库的使用,通过读取电位器输入,控制步进电机转动相应角度. Stepper库是官方提供的驱动库,我们启动Arduino IDE,点击「文件」-「示例」就能找到Stepper库,官方提 ...

  2. Arduino基础入门篇16—数码管库的使用

    Arduino官方提供了丰富的驱动库来方便对外设进行操作,很多爱好者也在开源精神下提供了很多第三方库.本篇介绍数码管库的使用,通过读取电位器输入,使用数码管库驱动数码管显示对应数据. SevSeg库是 ...

  3. arduino点阵声音频谱_Arduino基础入门篇19—点阵屏

    将8个LED发光二极管封装在一起就组成了数码管,将更多的LED组合在一起就组成了点阵屏.本篇我们来认识点阵屏,通过Arduino的IO口直接驱动点阵屏来了解其驱动方式. 1. 点阵屏介绍 LED点阵屏 ...

  4. arduino 光控灯_Arduino基础入门篇11—光控灯

    阅读本文大概需要3分钟. 本篇介绍光敏电阻,通过模拟输入采集环境光强来控制LED灯亮度,做一个无需人为干预的自动控制设备. 传感器是一种检测装置,能感受并采集到被测量的信息,在当下物联网.智能家居中占 ...

  5. arduino二位数码管_Arduino基础入门篇17—四位数码管的驱动

    本篇介绍四位数码管的使用,通过数码管库驱动四位数码管从0开始累加显示数字. 1. 四位数码管介绍 根据实际需要,把多个一位数码管封装在一起就成了多位数码管.常见的有两位.三位.四位.五位.六位等. 多 ...

  6. ardruino控制继电器_Arduino基础入门篇24—继电器控制

    继电器是一种电子控制器件,是用较小的电流去控制较大电流的一种"自动开关",通常应用于自动控制电路中起着自动调节.安全保护.转换电路等作用. 本篇介绍继电器的使用,通过串口发送命令来 ...

  7. 32读取ltc的温度值_Arduino基础入门篇29—模拟温度传感器LM35

    温度传感器就是利用物质随温度变化特性的规律,把温度转换成可输出信号的传感器,是普遍应用的传感器之一.本篇介绍模拟温度传感器-LM35. 1. LM35介绍 LM35是很常用的温度传感器元件,电路连接非 ...

  8. 12864液晶8x16ascii点阵_Arduino基础入门篇31—LCD1602液晶显示

    LCD1602显示 LCD1602也叫1602字符型液晶,是一种专门用来显示字母.数字.符号的点阵型液晶模块,能同时显示16X2即32个字符.本篇我们来认识LCD1602,驱动它显示「Hello Wo ...

  9. Linux基础入门篇知识回顾

    Linux基础入门篇知识回顾 一.回顾书籍 二.基础知识 1.计算机基础知识 1.1计算机的特点及发展趋势 ①特点 ②发展趋势 1.2计算机系统组成 ①计算机硬件概念 ②计算机硬件各部分功能 ![在这 ...

最新文章

  1. Taylayout 底部的滑动线高度设置
  2. 【Python爬虫】知识点简单总结
  3. Set,List,Collection,Collections的区别?
  4. [postgresql]postgresql的递归查询sql实例
  5. SSMS 18.0运行时闪退
  6. mysql的配置步骤
  7. 5 python 页面说明_Python爬虫爬取网易云的音乐
  8. 《C#高级编程(第六版)》泛型学习笔记(一):泛型优点和特性 (转载)
  9. 服务器内存傲腾基本参数信息,服务器傲腾内存
  10. Ubuntu22.04安装网易云音乐实操笔记
  11. 如何迅速分析出系统CPU的瓶颈在哪里
  12. ubuntu 虚拟机设置全屏
  13. 隔行插入行——《超级处理器》应用
  14. 实用计算机基础,计算机基础知识考题5[实用].pdf
  15. Win7 64位系统下思维导图XMind的Java环境配置
  16. 推荐:孙梦迪 张子默 张子衡
  17. 手机软件整理-其他类和GPS类软件
  18. JavaScript 在元素前后添加元素
  19. 常用的服务器操作命令
  20. 用企业微信如何做私域运营?

热门文章

  1. ffmpeg转换格式
  2. 排列公式和组合公式_排列与组合:排列公式与组合公式之间有什么区别?
  3. 从头开始开发gis_DevRel工程师一:从头开始建立开发人员关系团队
  4. 领略ES10的新功能
  5. SAS在金融中的应用五
  6. 浮点型的三个特殊值 Double.NEGATIVE_INFINITY Double.POSITIVE_INFINITY Double.NaN
  7. java aspectj_AspectJ的基本用法
  8. dell加装固态硬盘_技术丨如何进行笔记本硬盘拆装?
  9. 【java】多线程控制(二)- - -线程池
  10. C++ 学习笔记---零散的基础知识