Arduino电机控制03.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语言进行编码控制你的电路。通过单击“New”打开一个新的草图文件。

Sketch

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。

结果

电机将在一个方向上旋转一圈,然后在另一个方向上旋转一圈。

发布者:suiyublg,转转请注明出处:https://huibian.net/1603-2/

(0)
suiyublg的头像suiyublg
上一篇 2017年4月27日 17:13
下一篇 2017年4月29日 17:15

相关推荐

  • Arduino教程33.Arduino micros()函数

    micros()函数返回Arduino板开始运行当前程序时的微秒数。该数字在大约70分钟后溢出,即回到零。在16 MHz Arduino板(例如Duemilanove和Nano)上,此函数的分辨率为4微秒(即返回值总是4的倍数)。在8 MHz Arduino板(例如LilyPad)上,此函数的分辨率为8微秒。 micros()函数语法 micros () ;…

    2017年3月29日
    22500
  • Arduino教程16.Arduino 比较运算符

    假设变量A为10,变量B为20,则: 运算符名称 运算符简写 描述 例子 等于 == 检查两个操作数的值是否相等,如果相等,则条件为真(true)。 (A == B)不为真 不等于 != 检查两个操作数的值是否相等,如果值不相等,则条件为真。 (A != B)为真 小于 < 检查左操作数的值是否小于右操作数的值,如果是,则条件为真。 (A < B…

    2017年3月23日
    24500
  • Arduino进阶03.Arduino 随机数

    要生成随机数,可以使用Arduino随机数函数。我们有两个函数: randomSeed(seed) randomSeed(seed)函数重置Arduino的伪随机数生成器。虽然random()返回的数字的分布本质上是随机的,但是顺序是可预测的。你应该将发生器重置为某个随机值。如果你有一个未连接的模拟引脚,它可能会从周围环境中拾取随机噪音。这些可能是无线电波,…

    2017年4月7日
    4911315
  • Arduino教程06.Arduino 变量和常量

    在我们开始解释变量类型之前,我们需要确定一个非常重要的主题,称为变量范围。

    2017年3月22日
    35102
  • Arduino教程05.Arduino 数据类型

    C中的数据类型是指用于声明不同类型的变量或函数的扩展系统。变量的类型确定它在存储器中占用多少空间以及如何解释存储的位模式。

    下表提供了你将在Arduino编程期间使用的所有数据类型。

    2017年3月21日
    37803

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
欢迎大家来到大雄学编程!