51单片机驱动安装失败了怎么办(51单片机步进电机编程)
2022-01-10 18:42:09

最近有好多小伙伴私信我说,导师给他们布置了关于四线步进电机控制的相关设计,问我能不能写个类似的文章,今天我刚好有点时间,我们就一起探讨一下吧。

51单片机控制四线步进电机驱动实现正反转和任意角度速度控制

想要弄清楚步进电机的控制方式先要弄清楚它的接线方式和工作原理

步进电机结构和工作原理:

1.步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电动机的转速、停止的位置只取决于控制脉冲信号的频率和脉冲数。

2.脉冲数越多,电机转动的角度越大。

3.脉冲的频率越高,电机转速越快,但不能超过最高频率,否则电机的力矩迅速减小,电机不转。按力矩产生的原理可以分为:

(1)反应式:转子无绕组,由被激磁的定子绕组产生反应力矩实现步进运行

(2)激磁式:定、转子均有激磁绕组(或转子用永久磁钢),由电磁力矩实现步进运行按输出力矩大小可分为:

(1)伺服式:输出力矩在百分之几之几至十分之几(N.m)只能驱动较小的负载,要与液压扭矩放大器配用,才能驱动机床工作台等较大的负载

(2)功率式:输出力矩在5~50 N.m以上,可以直接驱动机床工作台等较大的负载按定子数可分为:

(1)单定子式(2)双定子式(3)三定子式(4)多定子式按各相绕组分布可分为;

(1)径向分布式:电机各相按圆周依次排列

步进电机和驱动板的连接方式:

51单片机控制四线步进电机驱动实现正反转和任意角度速度控制

鉴于时间原因我就用仿真软件做了一个单片机四线步进电机驱动项目 供大家参考学习,希望你看完后会有所收获。

项目软件程序功能:当按下SW1时步进电机正转,按下SW2后步进电机反转,并可以根据源码任意调节旋转速度和每一个脉冲旋转角度

以下是仿真图:

51单片机控制四线步进电机驱动实现正反转和任意角度速度控制
51单片机控制四线步进电机驱动实现正反转和任意角度速度控制
51单片机控制四线步进电机驱动实现正反转和任意角度速度控制

程序参考源代码如下:经过实际验证,软硬件可以实现设计功能,实验成功。

/C语言程序:/

#include <reg52.h> //

#define uchar unsigned char

#define uint unsigned int

uchar table_begin;

uint maichong; //脉冲

uchar zhuansu; //转速

uchar flag; //方向

sbit key_fuwei=P3^0; //复位键

sbit key_z=P3^1; //正转键

sbit key_f=P3^2; //反转键

sbit key_jia=P3^3; //加速键

sbit key_jian=P3^6; //减速键

sbit A1=P2^0;

sbit A2=P2^1;

sbit A3=P2^2;

sbit A4=P2^3;

void display();

void delayms(xms);

void delay(uchar x)

{

uchar i,j; //延时

for(i=0;i<x;i++)

for(j=100;j>0;j–);

}

void fuwei(void) //复位

{

flag=2;

zhuansu=0;

}

/*void Display(void) //显示

{

unsigned char b1, b2;

b1=zhuansu/10;

b2=zhuansu%10;

if(flag == 0) //0

P0=0x71;//显示F

else

P0=0x79;

A1=0;

delayms(3);

A1=1;

P0=0x40;

A2=0; //显示–

delayms(3);

A2=1;

P0=table2[b1];

A3=0; //显示十位

delayms(3);

A3=1;

P0=table2[b2];

A4=0;

delayms(3); //显示个位

A4=1;

void display()

{

uchar b1,b2,b3,b4;

if(flag0)

P0=0x71;//显示F

else

P0=0x79;

if(flag1)

P0=0x7c;//显示b

else

P0=0x71;

b1=10;

b2=0x3f;

b3=zhuansu/10;

b4=zhuansu%10;

//P0=table2;

A1=0; //P2.0

delay(1);

A1=1;

P0=b2;

A2=0; //P2.1

delay(1);

A2=1;

P0=table2[b3];

A3=0; //P2.3

delay(1);

A3=1;

P0=table2[b4];

A4=0; //P2.4

delay(1);

A4=1;

}

void key() //按键扫描

{

if(key_fuwei0)

{

delay(5);

if(key_fuwei0)

fuwei();

}

if(key_z0)

{

delay(5);

if(key_z0)

{

flag=0;

zhuansu=10;

while(key_z0);

}

}

if(key_f0)

{

delay(5);

if(key_f0)

{

flag=1;

zhuansu=10;

while(key_f0);

}

}

if(key_jia0)

{

delay(5);

if(key_jia0)

{

zhuansu++;

if(zhuansu21)

zhuansu=20;

while(key_jia0);

}

}

if(key_jian0)

{

delay(5);

if(key_jian0)

{

zhuansu–;

if(zhuansu<=0)

zhuansu=0;

while(key_jian==0);

}

}

}

void dispose() //脉冲函数

{

switch(zhuansu)

{

case 0: flag=2; break;

case 1: maichong=300; break;

case 2: maichong=295; break;

case 3: maichong=290; break;

case 4: maichong=280; break;

case 5: maichong=260; break;

case 6: maichong=240; break;

case 7: maichong=200; break;

case 8: maichong=180; break;

case 9: maichong=160; break;

case 10: maichong=120; break;

case 11: maichong=80; break;

case 12: maichong=70; break;

case 13: maichong=60; break;

case 14: maichong=40; break;

case 15: maichong=35; break;

case 16: maichong=30; break;

case 17: maichong=25; break;

case 18: maichong=20; break;

case 19: maichong=15; break;

case 20: maichong=10; break;

}

if(flag0)

table_begin=0;

else

if(flag1)

table_begin=4;

}

void zhuandong(void)

{

uint i,j;

if(zhuansu>0&&zhuansu<=20)

{

for(j=0+table_begin;j<4+table_begin;j++)

{

P1=table1[j];

for(i=0;i<maichong;i++)

display();

}

}

}

……………………

最近有好多小伙伴私信我说,导师给他们布置了关于四线步进电机控制的相关设计,问我能不能写个类似的文章,今天我刚好有点时间,我们就一起探讨一下吧。

51单片机控制四线步进电机驱动实现正反转和任意角度速度控制

想要弄清楚步进电机的控制方式先要弄清楚它的接线方式和工作原理

步进电机结构和工作原理:

1.步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电动机的转速、停止的位置只取决于控制脉冲信号的频率和脉冲数。

2.脉冲数越多,电机转动的角度越大。

3.脉冲的频率越高,电机转速越快,但不能超过最高频率,否则电机的力矩迅速减小,电机不转。按力矩产生的原理可以分为:

(1)反应式:转子无绕组,由被激磁的定子绕组产生反应力矩实现步进运行

(2)激磁式:定、转子均有激磁绕组(或转子用永久磁钢),由电磁力矩实现步进运行按输出力矩大小可分为:

(1)伺服式:输出力矩在百分之几之几至十分之几(N.m)只能驱动较小的负载,要与液压扭矩放大器配用,才能驱动机床工作台等较大的负载

(2)功率式:输出力矩在5~50 N.m以上,可以直接驱动机床工作台等较大的负载按定子数可分为:

(1)单定子式(2)双定子式(3)三定子式(4)多定子式按各相绕组分布可分为;

(1)径向分布式:电机各相按圆周依次排列

步进电机和驱动板的连接方式:

51单片机控制四线步进电机驱动实现正反转和任意角度速度控制

鉴于时间原因我就用仿真软件做了一个单片机四线步进电机驱动项目 供大家参考学习,希望你看完后会有所收获。

项目软件程序功能:当按下SW1时步进电机正转,按下SW2后步进电机反转,并可以根据源码任意调节旋转速度和每一个脉冲旋转角度

以下是仿真图:

51单片机控制四线步进电机驱动实现正反转和任意角度速度控制
51单片机控制四线步进电机驱动实现正反转和任意角度速度控制
51单片机控制四线步进电机驱动实现正反转和任意角度速度控制

程序参考源代码如下:经过实际验证,软硬件可以实现设计功能,实验成功。

/C语言程序:/

#include <reg52.h> //

#define uchar unsigned char

#define uint unsigned int

uchar table_begin;

uint maichong; //脉冲

uchar zhuansu; //转速

uchar flag; //方向

sbit key_fuwei=P3^0; //复位键

sbit key_z=P3^1; //正转键

sbit key_f=P3^2; //反转键

sbit key_jia=P3^3; //加速键

sbit key_jian=P3^6; //减速键

sbit A1=P2^0;

sbit A2=P2^1;

sbit A3=P2^2;

sbit A4=P2^3;

void display();

void delayms(xms);

void delay(uchar x)

{

uchar i,j; //延时

for(i=0;i<x;i++)

for(j=100;j>0;j–);

}

void fuwei(void) //复位

{

flag=2;

zhuansu=0;

}

/*void Display(void) //显示

{

unsigned char b1, b2;

b1=zhuansu/10;

b2=zhuansu%10;

if(flag == 0) //0

P0=0x71;//显示F

else

P0=0x79;

A1=0;

delayms(3);

A1=1;

P0=0x40;

A2=0; //显示–

delayms(3);

A2=1;

P0=table2[b1];

A3=0; //显示十位

delayms(3);

A3=1;

P0=table2[b2];

A4=0;

delayms(3); //显示个位

A4=1;

void display()

{

uchar b1,b2,b3,b4;

if(flag0)

P0=0x71;//显示F

else

P0=0x79;

if(flag1)

P0=0x7c;//显示b

else

P0=0x71;

b1=10;

b2=0x3f;

b3=zhuansu/10;

b4=zhuansu%10;

//P0=table2;

A1=0; //P2.0

delay(1);

A1=1;

P0=b2;

A2=0; //P2.1

delay(1);

A2=1;

P0=table2[b3];

A3=0; //P2.3

delay(1);

A3=1;

P0=table2[b4];

A4=0; //P2.4

delay(1);

A4=1;

}

void key() //按键扫描

{

if(key_fuwei0)

{

delay(5);

if(key_fuwei0)

fuwei();

}

if(key_z0)

{

delay(5);

if(key_z0)

{

flag=0;

zhuansu=10;

while(key_z0);

}

}

if(key_f0)

{

delay(5);

if(key_f0)

{

flag=1;

zhuansu=10;

while(key_f0);

}

}

if(key_jia0)

{

delay(5);

if(key_jia0)

{

zhuansu++;

if(zhuansu21)

zhuansu=20;

while(key_jia0);

}

}

if(key_jian0)

{

delay(5);

if(key_jian0)

{

zhuansu–;

if(zhuansu<=0)

zhuansu=0;

while(key_jian==0);

}

}

}

void dispose() //脉冲函数

{

switch(zhuansu)

{

case 0: flag=2; break;

case 1: maichong=300; break;

case 2: maichong=295; break;

case 3: maichong=290; break;

case 4: maichong=280; break;

case 5: maichong=260; break;

case 6: maichong=240; break;

case 7: maichong=200; break;

case 8: maichong=180; break;

case 9: maichong=160; break;

case 10: maichong=120; break;

case 11: maichong=80; break;

case 12: maichong=70; break;

case 13: maichong=60; break;

case 14: maichong=40; break;

case 15: maichong=35; break;

case 16: maichong=30; break;

case 17: maichong=25; break;

case 18: maichong=20; break;

case 19: maichong=15; break;

case 20: maichong=10; break;

}

if(flag0)

table_begin=0;

else

if(flag1)

table_begin=4;

}

void zhuandong(void)

{

uint i,j;

if(zhuansu>0&&zhuansu<=20)

{

for(j=0+table_begin;j<4+table_begin;j++)

{

P1=table1[j];

for(i=0;i<maichong;i++)

display();

}

}

}

……………………

未解决
您可能还需要
天天领红包,单单有红包
51岁农村人不能外出打工,想在家做小生意,有哪些项目可以选择
51Talk发布在线英语教育系统,产品矩阵打造增长新引擎
为什么我的云服务器更换不了公网 IP?
12306每天几点放票,最新12306放票规律
审批单的审批编号可以自己编辑吗?
16岁如何在一部手机上快速赚钱(无广告真正赚钱游戏)
一般纳税人证明是什么?
智能导购会员如何取消入会?
日程支持一键拉群吗?
分享链接能生成卡片形式吗?
5g下载速度多少正常(解密5G网络正常下载速率)
5G降温,5G手机销量暴跌,新款5G手机大减而4G手机增加
5G消息或年底商用华为、小米、OPPO等已通过测试
5G泡沫严重,5G用户数竟然比5G手机累计销量多近1.5亿
5G时代的来临,创业者有哪些最新创业机会
5G时代杀手级应用来了高通安蒙:5G正为XR等注入全新活力
5G手机市场进入新阶段,荣耀OV围攻小米
5G手机占比超过六成,让人吃惊的是4G版iPhone依然热销
5G成国内云计算巨头反超国际巨头新跳板
5G彩墨屏活色生香海信阅读手机A7评测
5G应用于工业互联网、自动驾驶存在重大缺陷
5G套餐太贵4G套餐也能连5G网络,而且速度也变快了
5G基站耗电量有多恐怖看看运营商要采取休眠措施就知道了
5G基站耗电量凶猛,再有新证,难怪运营商都承受不了
5G只是小菜一碟,华为能上天入地,因为有这样一位人物
5G发展面临窘境,5G手机销量环比下滑,手机企业对5G热情降温
5G发展困难,贪婪的手机企业不愿降价,运营商无奈再开4G价格战
5G+大屏幕荣耀X10Max就是个追剧利器
59岁的人,手里有20万积蓄,在农村做什么能保障下半生衣食无忧
58集团是什么企业,盘点58同城的五个创始人
正在加载...