Arduino 步进电机实验报告 步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数 字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的 转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响, 当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定
Arduino 步进电机实验报告 步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数 字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的 转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响, 当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固 定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通 过控制脉冲个数来控制角位移量,步进电机从而达到准确定位的目的;同时可以通过控制 脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 实验目的: (1)了解步进电动机工作原理。 (2)熟悉步进电机驱动器使用方法。 (3)掌握步进电动机转向控制编程。 实验要求: (1)简要说明步进电动机工作原理。 (2)熟记步进电机驱动器的使用方法。 (3)完成步进电动机转速转向控制编程与实现。 (4)提交经调试通过的程序一份并附实验报告一份。 实验准: 1. Arduino UNO R3 开发板 Arduino 是一块基于开放原始代码的 Simple i/o 平台,并且具有开发语言 和开发环境都很简单、易理解的特点。让您可以快速使用 Arduino 做出有趣的东 西。它是一个能够用来感应和控制现实物理世界的一套工具。它由一个基于单片 机并且开放源码的硬件平台,和一套为 Arduino 板编写程序 的开发环境组成。 Arduino 可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并 且可以控制各式各样的电灯、电机和其他物理设。Arduino 项目可以是单独的, 也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP) 进行通讯。 1 2. ULN2003 芯片 ULN2003 是高耐压、大电流复合晶体管阵列,由七个硅 NPN 复合晶体管组 成。可以用来驱动步进电机。 因本次使用的步进电机功率很小,所以可以直接使用一个 ULN2003 芯片进行 驱动,如果是大功率的步进电机,是需要对应的驱动板的。 3. 五线四相步进电机 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。 在非超载的情况下,步进电机电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数, 而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机 按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度 一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的 2 目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调 速的目的。 注意图中 5 条线的颜色:蓝、粉、黄、橙、步进电机红,这个顺序很重要。 4. 电位器 电位器是具有三个引出端、阻值可按某种变化规律调节的电阻元件。电位器 通常由电阻体和可移动的电刷组成。当电刷沿电阻体移动时,步进电机在输出端即获得与 位移量成一定关系的电阻值或电压。 实验原理 : 通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁 场。该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场方向 一致。当定子的矢量磁场旋转一个角度。转子也随着该磁场转一个角度。每输入 3 一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的脉冲数成 正比、转速与脉冲频率成正比。改变绕组通电的顺序,电机就会反转。所以可用 控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的转动。 工业使用的步进电机与本次实验使用的不同,下面图式两种不同款式的工业 用步进电机: 使用步进电机前一定要仔细查看说明书,确认是四相还是两相,各个线怎样 连接,本次实验使用的步进电机是四相的,不同颜色的线定义如下图: 下面是电机的端口结构图,1,3 为一组,2,4 为一组,5 号是共用的 VCC。 4 ULN2003 结构图如下: 硬件连接图如下: 实验内容: 1.准好实验所需材料。 2.把 Arduino、步进电机、驱动器、可调电源连接好。 3.编写控制程序。 4.把下载线连接到电脑上进行下载。 5.试验完成后整理好自己的材料。 实验结果与分析: 实验整体结果图如下: 5 可以观察到当转动电位器时,步进电机会随着转动。当电位器停止转动时, 步进电机也随之停止转动。步进电机并且二者转动的方向一致。 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱 动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度 (及步进角)。你可以通过控制脉冲个数来控制角位移量,从而达到准确定位的 目的;同时你也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达 到调速的目的。在本实验中转动电位器就相当给步进电机加了一个脉冲信号。 实验小结: 通过此次的 Arduino 实验我们了解到步进电机是一种感应电机,它的工作原 理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流 为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的, 多相时序控制器。本实验中由电位器的旋转变化来控制其步进电机的电压变化, 让其得到相应的脉冲信号来控制电机的转动。同时还可以通过控制脉冲频率来控 制电机转动的速度和加速度,从而达到调速的目的。 同时通过查阅资料我们也知道了如今虽然步进电机已被广泛地应用,但步进 电机并不能像普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信 号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉 及到机械、电机、电子及计算机等许多专业知识。步进电机作为执行元件,是机 电一体化的关键产品之一,广泛应用在各种自动化控制系统中。随着微电子和计 6 算机技术的发展,步进电机步进电机的需求量与日俱增,在各个国民经济领域都有应用。 在这次实验过后不仅锻炼了我们的动手能力,同时实验的成功也为我们即将 走上工作岗位增加了信心。后感谢老师能给我们这一次好的锻炼机会。 实验所用程序: /* * 步进电机跟随电位器旋转 * (或者其他传感器)使用 0 号模拟口输入 * 使用 arduino IDE 自带的 Stepper.h 库文件 */ #include Stepper.h // 这里设置步进电机旋转一圈是多少步 #define STEPS 100 // attached to 设置步进电机的步数和引脚 Stepper stepper(STEPS, 8, 9, 10, 11); // 定义变量用来存储历史读数 int previous = 0; void setup() { // 设置电机每分钟的转速为 90 步 stepper.setSpeed(90); } void loop() { // 获取传感器读数 int val = analogRead(0); // 移动步数为当前读数减去历史读数 7 stepper.step(val - previous); // 保存历史读数 previous = val; } 8
以上信息由无锡惠斯通电机科技有限公司整理编辑,了解更多步进电机,两相步进电机,混合式步进电机信息请访问http://www.huistong.com