以下内容来源于《51单片机轻松入门 基于STC15W4K系列》,只要把这章内容搞懂后想怎么控制就怎么控制。
第15章 步进 电 机 测 试 15.1 步进电机特点 步进电机也称为步进马达,相比其它电机有以下特点: ① 步进电机旋转角度和输入脉冲成正比,通常市面所售步进电机说明书会说明其步进角(也就是一个脉冲所产生的旋转角度),比如常见的小体积永磁式电机的步进角是7.5°,则送给它48个脉冲使步进电机正好转动一圈。 ② 步进电机误差很小,没有累积误差,因此控制步进电机正反转还是会回到原来的位置,不会因为误差累积而使初始位置越来越远。 ③ 具有自保持特性,任何一相线圈加上电源后,电机本身具有自保持力矩,不送脉冲情况下会停止在一定位置,不会改变。 ④ 步进电机空载最高启动频率一般能达到450Hz,使用频率不能超过允许最高频率,否则电机只能振动,无法运转。 ⑤ 常见步进电机供电电压是5V、12V、24V,供电电压允许误差±10%,电机外壳上一般都会对供电电压规格作相应标识。 常见步进电机外形与内部电路如图15-1所示。
15.4 步进电机驱动实例 例15.1 步进电机正反转测试,使用图15-7或图15-8的电路,采用1-2相励磁,要求上电后顺转200步,然后反转200步,如此循环,完整实验代码如下。 // 使用P20、P21、P22、P23口驱动电机 #include "STC15W4K.H " unsigned char codeBiaoGe[8]={0x08,0x0C,0x04,0x06,0x02,0x03,0x01,0x09}; //表格,换算成二进制 1000,1100,0100,0110 ,0010,0011, 0001 1001 //P2口输出低4位驱动电机 A B /A /B //1——2相励磁,发8次脉冲(顺序输出上面表格)转动4步 void PROT_Init(void) { P2M1 =0x80; // 1000 0000 P2.0、P2.1、P2.2、P2.3、接驱动功率管,推挽输出 P2M0 = 0x0f; // 0000 1111 P2.7 接接霍尔传感器信号输入,高阻输入 } void shun200() // 顺转200步 { unsigned int i; unsigned charn; n=0; for(i=0;i<400;i++) // 200步,i/2为实际步数 { P2=BiaoGe[n]|0xf0; // 不影响P2口高4位 delay3ms(); n=n+1; if (n>7) { n=0; } } P2&=0xf0; // 保证电机绕组断电 } void fan200() // 反转200步 { unsigned int i; unsigned charn; n=8; for(i=0;i<400;i++) // 200步,i/2为实际步数 { n=n-1; P2=BiaoGe[n]|0xF0; //不影响P2口高4位 delay3ms(); if (n==0) { n=8; } } P2&=0xf0; // 保证电机绕组断电 } void main(void) { PROT_Init(); // 初始化端口 while(1) { shun200(); delay1s(); fan200(); delay1s(); } }
|