您的位置 首页 方案

51单片机驱动步进电机(双四拍和八拍)

步进电机是一种将电脉冲转化为相应的线位移和角位移的电磁机械装置。具有快速启动停止能力,在电机的负荷不超过他提供的转矩时,可以通…

  步进电机是一种将电脉冲转化为相应的线位移和角位移的电磁机械设备。具有快速发动中止才能,在电机的负荷不超越他供给的转矩时,能够经过输入脉冲来操控他在一会儿的中止和发动。步进电机的步距角和转速只和输入脉冲的频率有关。

  一般电机的转子为永磁体,当电流流过定子绕组时,定子绕组发生一矢量磁场。该磁场会带动转子旋转一视点,使得转子的一对磁场方向与定子的磁场方向共同。当定子的矢量磁场旋转一个视点。转子也跟着该磁场转一个视点。每输入一个电脉冲,电动机滚动一个视点行进一步。它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。改动绕组通电的次序,电机就会回转。所以可用操控脉冲数量、频率及电动机各相绕组的通电次序来操控步进电机的滚动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状况改动一次,也就对应转子转过必定的视点(一个步距角)。当通电状况的改动完结一个循环时,转子转过一个齿距。四相步进电机能够在不同的通电方法下运转,常见的通电方法有单(单相绕组通电)四拍(A-B-C-D-A),双(双相绕组通电)四拍(AB-BC-CD-DA-AB),八拍(A-AB-B-BC-C-CD-D-DA-A)。

以下代码为8拍:

sbit P00        = P0^0;sbit P01        = P0^1;sbit P02        = P0^2;sbit P03        = P0^3;//设置成推挽形式-将引脚强制拉高--void init_gpio(void){P0M1 = P0M1 & 0X0;P0M2 = P0M2  0XFF;P0 = 0X0;    }//--horizontal motor#define A P00#define B P01#define C P02#define D P03#define    h_Coil_A        {A = 1;B = 0;C = 0;D = 0;}#define    h_Coil_AB        {A = 1;B = 1;C = 0;D = 0;}#define    h_Coil_B        {A = 0;B = 1;C = 0;D = 0;}#define    h_Coil_BC        {A = 0;B = 1;C = 1;D = 0;}#define    h_Coil_C        {A = 0;B = 0;C = 1;D = 0;}#define    h_Coil_CD        {A = 0;B = 1;C = 1;D = 0;}#define    h_Coil_D        {A = 0;B = 0;C = 0;D = 1;}#define    h_Coil_DA        {A = 0;B = 0;C = 1;D = 1;}#define    h_Coil_OFF        {A = 0;B = 0;C = 0;D = 0;}void h_Right_Motor(){h_Coil_Adelay_ms(speed);h_Coil_ABdelay_ms(speed);h_Coil_Bdelay_ms(speed);h_Coil_BCdelay_ms(speed);h_Coil_Cdelay_ms(speed);h_Coil_CDdelay_ms(speed);h_Coil_Ddelay_ms(speed);h_Coil_DAdelay_ms(speed);}void h_Left_Motor(){h_Coil_DAdelay_ms(speed);h_Coil_Ddelay_ms(speed);h_Coil_CDdelay_ms(speed);h_Coil_Cdelay_ms(speed);h_Coil_BCdelay_ms(speed);h_Coil_Bdelay_ms(speed);h_Coil_ABdelay_ms(speed);h_Coil_Adelay_ms(speed);}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/265479.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部