1、目录隐藏 1 步进电机简介 2 步进电机分类 3 步进电机驱动原理 4 步进电机的驱动方式 5 步进电机的选型参数 6 步进电机驱动电路 7 步进电机控制小实验o 7.1 实验内容简介o 7.2 系统结构框图o 7.3 程序设计流程o 7.4 程序代码分析o 7.5 实验操作及分析步进电机简介步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制
2、脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机分类永磁式其转子使用永磁材料制成的,转子本身就是一个磁源。它的输出转矩大,动态性能好。转子的极数与定子的极数相同,所以步距角一般较大。需供给正负脉冲信号。反应式其转子是由软磁材料制成的,转子中没有绕组。它的结构简单,成本低,步距角可以做的很小,但动态性能较差。混合式综合了反应式和永磁式两者的优点,它的输出转矩大,动态性能好,步距角小,但是结构复杂,成本较高。步进电机驱动原理通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场。该磁场会带动转子旋转一角
3、度,使得转子的一对磁场方向与定子的磁场方向一致。当定子的矢量磁场旋转一个角度。转子也随着该磁场转一个角度。下图为步进电机驱动原理示意图:上图中的步进电机定子由两组线圈组成,所以又称为两相四线步进电机。图中依次给 X,Y,X,Y加正激励,使其电机内部的磁场进行一个顺时针的转动,然后带动转子也进行顺时针方向的转动。下图是步进电机逆时钟转动时驱动示意图:步进电机的驱动方式 全步 半步步进电机的选型参数步进电机选型的主要参数: 工作电压:电机正常工作时,电源驱动电压 工作电流:电机正常工作时,电源驱动电流 相数:电机中定子磁极的对数 步距角:转子转动一次,最小的角度 保持转矩:转子不打滑时,最大输出力
4、矩步进电机驱动电路步进电机的驱动电流一般在几百毫伏这个量级,直接使用单片机的 I/O 口,显然是无法直接驱动的。一般步进电机在驱动的时候,都会加一个驱动电路,可以使用三极管驱动电路。但是由于一个步进电机,一般需要的驱动路数较多,如 28BYJ48 这个四相步进电机,至少需要 4 路驱动,此时,电路设计时一般使用专门的步进电机驱动芯片。常用的步进电机驱动芯片有:ULN2003 或 ULN2803。Rumble 开发板上使用的是 ULN2003。关于 ULN2003 的介绍,参见硬件知识点中的 ULN2003。ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范
5、围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003A 由 7 组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动 7 组负载的能力,为单片双极型大功率高速集成电路。Rumble 开发板中步进电机驱动电路设计如下图所示:步进电机控制小实验实验内容简介实验目的: 掌握步进电机的工作原理; 掌握步进电机的使用方法;实验要求: 使用按键控制步进电机的运行; 加速、减速控制; 正转、反转控制;实验分析: 硬件部分: 按键使用 Rumble 开发板上的 SW4(加速)、SW5(正转/反转)、SW6(减速) 步进电机型号:28BYJ48 软件部分: 使用定时器中
6、断来产生驱动脉冲; 使用轮询判断按键输入系统结构框图500pxMedia:motot1sd.svg300px程序设计流程定时器中断服务程序主程序设计流程程序代码分析定时器中断服务程序void timer0(void) interrupt 1TH0=(65536-T0_COUNT)/256;TL0=(65536-T0_COUNT)%256;timecount-;/timecount 减到 0,步进电机转动一次if(timecount=0)/恢复变量标志timecount=flag_time;/马达转动*bus_addr=tab_motormotor_phase2)flag_time-;/设定范围
7、/减速if(!SW6)delay100us(TIME_BDJ);while(!SW6);delay100us(TIME_BDJ);if(flag_time2)flag_time-;/设定范围/减速if(!SW6)if(flag_time20)flag_time+;/正转、反转if(!SW5)flag_rotation=(flag_rotation+1)%2;void init()/MCUET0=1;EA=1;TR0=1;/MOTORbus_addr=MOTOR_ADDR;*bus_addr=0xff;timecount=flag_time;motor_phase=0;flag_rotation
8、=1;/正转/LEDled_addr=LED_ADDR;/T0TMOD=0x01;TH0=(65536-T0_COUNT)/256;TL0=(65536-T0_COUNT)%256;实验操作及分析使用 STC_ISP 将编译生成的.hex 文件下载到 Rumble 开发板中烧写完成后,程序开始运行,步进电机以一定的速率开始运行,同时 LED 灯(开发板上部)以一定频率开始依次熄灭然后再点亮。连续按 SW4,明显观察到步进电机转速下降,同时 LED 灯频率也下降;连续按 SW6,明显观察到步进电机转速加快,同时 LED 灯频率也上升;按 SW5,观察到步进电机改变转动方向,LED 灯也改变依次熄灭和点亮的方向。