- Arduino 教程
- Arduino - 首页
- Arduino - 概述
- Arduino - 开发板描述
- Arduino - 安装
- Arduino - 程序结构
- Arduino - 数据类型
- Arduino - 变量和常量
- Arduino - 运算符
- Arduino - 控制语句
- Arduino - 循环
- Arduino - 函数
- Arduino - 字符串
- Arduino - 字符串对象
- Arduino - 时间
- Arduino - 数组
- Arduino 函数库
- Arduino - I/O 函数
- Arduino - 高级 I/O 函数
- Arduino - 字符函数
- Arduino - 数学库
- Arduino - 三角函数
- Arduino 高级
- Arduino - Due 和 Zero
- Arduino - 脉冲宽度调制
- Arduino - 随机数
- Arduino - 中断
- Arduino - 通信
- Arduino - 互联集成电路
- Arduino - 串行外设接口
- Arduino 项目
- Arduino - 闪烁 LED
- Arduino - 渐变 LED
- Arduino - 读取模拟电压
- Arduino - LED 条形图
- Arduino - 键盘注销
- Arduino - 键盘消息
- Arduino - 鼠标按钮控制
- Arduino - 键盘串口
- Arduino 传感器
- Arduino - 湿度传感器
- Arduino - 温度传感器
- Arduino - 水位检测器/传感器
- Arduino - PIR 传感器
- Arduino - 超声波传感器
- Arduino - 连接开关
- 电机控制
- Arduino - 直流电机
- Arduino - 伺服电机
- Arduino - 步进电机
- Arduino 和声音
- Arduino - 音调库
- Arduino - 无线通信
- Arduino - 网络通信
- Arduino 有用资源
- Arduino - 快速指南
- Arduino - 有用资源
- Arduino - 讨论
Arduino - 步进电机
步进电机或步进电动机是一种无刷同步电机,它将一个完整的旋转分成若干个步骤。与施加固定直流电压时连续旋转的无刷直流电机不同,步进电机以离散的步进角旋转。
因此,步进电机制造的每转步数为 12、24、72、144、180 和 200,导致每步步进角为 30、15、5、2.5、2 和 1.8 度。步进电机可以有反馈或无反馈地控制。
想象一下 RC 飞机上的电机。电机以非常快的速度向一个方向或另一个方向旋转。您可以通过向电机提供的功率量来改变速度,但您无法告诉螺旋桨在特定位置停止。
现在想象一下打印机。打印机内部有很多运动部件,包括电机。其中一个电机充当送纸器,旋转滚筒以在打印墨水时移动纸张。此电机需要能够移动精确距离的纸张,以便能够打印下一行文本或图像的下一行。
另一个电机连接到螺纹杆上,该螺纹杆使打印头来回移动。同样,需要将该螺纹杆移动精确的量以依次打印一个字母。这就是步进电机派上用场的地方。
步进电机的工作原理?
普通的直流电机只能在一个方向上旋转,而步进电机可以以精确的增量旋转。
步进电机可以根据需要旋转精确的度数(或步数)。这使您可以完全控制电机,允许您将其移动到精确的位置并保持该位置。它通过在电机内部线圈上通电非常短的时间来实现这一点。缺点是您必须始终为电机供电才能使其保持在您想要的位置。
您现在只需要知道,要移动步进电机,您需要告诉它在一个方向或另一个方向上移动一定数量的步数,并告诉它在该方向上步进的速度。步进电机种类繁多。此处描述的方法可用于推断如何使用本教程中未提及的其他电机和驱动器。但是,始终建议您查阅与您拥有的型号相关的电机和驱动器的规格书和指南。
所需组件
您将需要以下组件 -
- 1 × Arduino UNO 开发板
- 1 × 小型双极步进电机,如下面的图片所示
- 1 × LM298 驱动 IC
步骤
按照电路图,并按照下图所示进行连接。
草图
在您的计算机上打开 Arduino IDE 软件。使用 Arduino 语言进行编码将控制您的电路。通过点击新建来打开一个新的草图文件。
Arduino 代码
/* Stepper Motor Control */ #include <Stepper.h> const int stepsPerRevolution = 90; // change this to fit the number of steps per revolution // for your motor // initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); void setup() { // set the speed at 60 rpm: myStepper.setSpeed(5); // initialize the serial port: Serial.begin(9600); } void loop() { // step one revolution in one direction: Serial.println("clockwise"); myStepper.step(stepsPerRevolution); delay(500); // step one revolution in the other direction: Serial.println("counterclockwise"); myStepper.step(-stepsPerRevolution); delay(500); }
代码注释
此程序驱动单极或双极步进电机。电机连接到 Arduino 的数字引脚 8-11。
结果
电机将沿一个方向旋转一圈,然后沿另一个方向旋转一圈。