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项目05.Arduino 键盘注销

    本示例使用键盘库将你在计算机上的用户会话注销,此时ARDUINO UNO上的引脚2被拉至接地。草图同时按两个或三个按键的顺序模拟按键,并在短暂的延迟之后释放它们。 警告 – 当你使用 Keyboard.print()命令时,Arduino接管你的计算机键盘。为确保在使用此功能运行草图时不会失去对计算机的控制,请在调用Keybo…

    2017年4月16日
    49500
  • Arduino教程15.Arduino 算术运算符

    假设变量A为10,变量B为20,则: 运算符名称 运算符简写 描述 例子 赋值运算符 = 将等号右侧的值存储在等号左边的变量中。 A = B 加号 + 两个操作两个操作数相加 A + B将得出30 减号 – 从第一个操作数中减去第二个操作数 A – B将得出-10 乘号 * 将两个操作数相乘 A * B将得出200 除号 / 用分母除…

    2017年3月23日
    44600
  • Arduino教程05.Arduino 数据类型

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

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

    2017年3月21日
    59403
  • Arduino教程17.Arduino 布尔运算符

    假设变量A为10,变量B为20,则: 运算符名称 运算符简写 描述 例子 and(与) && 称为逻辑运算符与。如果两个操作数都是非零,那么条件为真。 (A && B)为真 or(或) || 称为逻辑OR运算符。如果两个操作数中的任何一个非零,则条件变为真。 (A || B)为真 not(非) ! 称为逻辑运算符非。用于反转其…

    2017年3月23日
    44300
  • Arduino函数库02.Arduino 高级I/O函数

    在本章中,我们将学习一些高级的输入和输出函数。

    2017年4月1日
    46800

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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