单片机控制交流电机正反转的C语言程序是什么?

单片机控制交流电机正反转的C语言程序是什么?,第1张

这个很简单,我教你怎么玩,下面是思路和方式

思路:有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用P0.0到P0.2来代替;输出2个或以上(这看你接什么显示器,如果是PC的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用P1.0、P1.1;

PS:显示那块我不知道你怎么处理,但是需要与一个全局变量转动次数k连接起来,另外两个输入接近开关选用NPN传感器或用光电隔离,总之有效信号能把管脚电压拉低就可以了,具体硬件要注意什么,有需要就问我

现在我们来写程序:

#include <reg51.h> //选用晶振11.0592MHz

unsigned char k=0 //k表示正反转次数

sbit X0=P3^2//调节按钮

sbit X1=P1^1//上限位接近开关信号

sbit X2=P1^2//下限位接近开关信号

sbit Y1=P0^0//电机上升(注意:我使用的是管脚输出为0时候,电机运动,这样可以避免启动时候,单片机自复位对电机点动的影响)

sbit Y2=P0^1//电机下降

void delay50ms(unsigned int i)

{

unsigned int j

for (ii>0i--)

for(j=46078j>0j--)

}

main()

{

IT0=1 //下降沿触发

EX0=1 //开P3.2外部中断

EA=1 //总中断开

while(1)

while(k)

{

Y1=0 //正转

while(X1==1) //等待正转接近开关反应

Y1=1 //正转停

delay50ms(1)//停止时间50ms

Y2=0//反转

while(X2==1)//等待反转接近开关反应

Y2=1 //反转停

k--//圈数减一

}

}

void counter0(void) interrupt 0

{

k++//外部中断控制圈数加一

//这个位置可以加你显示程序

}

程序已经通过测试,放上去就能用,很好玩哟,呵呵

首先要看你的电机是直流电机还是步进电机。直流电机就简单了,只有两根线,电机两端电压正负极改变就可以实现正转反转。不过要加电机驱动芯片,或者H桥电路,电机驱动芯片可以选择L298N,加上适当的外围电路就可以直接用单片机控制电机了。比如让单片机P1.0 = 0,P1.1 = 1;(单片机I/0口要与电机驱动芯片的输入脚相连)这样的话,电机驱动芯片就会输出一个电压差,可以使直流电机向一个方向转,如果使P1.0 = 1,P1.1 = 0,则电机驱动芯片会输出一个和刚才相反的电压,使电机向相反的方向转动。H桥电路和电机驱动芯片的原理差不多,网上多的是。我这说的只是简单的原理,实际中,L298N的输入端和单片机相连的时候要加光耦隔离,否则单片机会工作不正常。步进电机就稍微复杂点,也得需要电机驱动芯片才行,只不过控制信号是按一定的规律给的,规律变了,电机转动的方向也就变了。楼上给出的貌似是步进电机的驱动程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7805737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存