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

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

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

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

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

现在我们来写程序

#include <reg51h> //选用晶振110592MHz

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 (i;i>0;i--)

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

}

main()

{

IT0=1; //下降沿触发

EX0=1; //开P32外部中断

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++; //外部中断控制圈数加一

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

}

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

电机要实现正反转控制,将其电源的相序中任意两相对调即可(我们称为换相),通常是V相不变,将U相与W相对调,为了保证两个接触器动作时能够可靠调换电动机的相序,接线时应使接触器的上口接线保持一致,在接触器的下口调相。由于将两相相序对调,故须确保二个KM线圈不能同时得电,否则会发生严重的相间短路故障,因此必须采取联锁,就是互锁。

这个很简单,我教你怎么玩,下面是思路和方式\x0d\思路:有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用P00到P02来代替;输出2个或以上(这看你接什么显示器,如果是PC的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用P10、P11;\x0d\PS:显示那块我不知道你怎么处理,但是需要与一个全局变量转动次数k连接起来,另外两个输入接近开关选用NPN传感器或用光电隔离,总之有效信号能把管脚电压拉低就可以了,具体硬件要注意什么,有需要就问我\x0d\现在我们来写程序:\x0d\#include //选用晶振110592MHz\x0d\unsigned char k=0; //k表示正反转次数\x0d\sbit X0=P3^2; //调节按钮\x0d\sbit X1=P1^1; //上限位接近开关信号\x0d\sbit X2=P1^2; //下限位接近开关信号\x0d\sbit Y1=P0^0; //电机上升(注意:我使用的是管脚输出为0时候,电机运动,这样可以避免启动时候,单片机自复位对电机点动的影响)\x0d\sbit Y2=P0^1; //电机下降\x0d\void delay50ms(unsigned int i)\x0d\{ \x0d\ unsigned int j;\x0d\ for (i;i>0;i--)\x0d\ for(j=46078;j>0;j--);\x0d\}\x0d\main()\x0d\{\x0d\ IT0=1; //下降沿触发\x0d\ EX0=1; //开P32外部中断\x0d\ EA=1; //总中断开 \x0d\ while(1)\x0d\ while(k)\x0d\ {\x0d\ Y1=0; //正转\x0d\ while(X1==1); //等待正转接近开关反应\x0d\ Y1=1; //正转停\x0d\ delay50ms(1); //停止时间50ms\x0d\ Y2=0; //反转\x0d\ while(X2==1); //等待反转接近开关反应\x0d\ Y2=1; //反转停\x0d\ k--; //圈数减一 \x0d\ }\x0d\}\x0d\void counter0(void) interrupt 0\x0d\{\x0d\ k++; //外部中断控制圈数加一\x0d\ //这个位置可以加你显示程序\x0d\}\x0d\程序已经通过测试,放上去就能用,很好玩哟,呵呵

电机的起动绕组与运行绕组的电阻值是一样的,就是说电机的起动绕组与运行绕组是线径与线圈数完全一致的。

一般220伏电机有三种类型,改变正反转的解法:

一、如果电机是电容移相式,只需启动绕组头尾对调即可(一般有主绕组和启动绕组四个引出端头,串接电容的绕组就是启动绕组)。

二、如果电机是罩极式,由于罩极短路绕组已经固定,旋转方向是不可变换的;要想改变旋转方向,只能拆下电机转子作180度调头的办法解决。

三、如果电机是交直流式(带碳刷换向器),只需对调碳刷连接线即可。

扩展资料:

1、单相电机转动的原理

三相电机正反转的要点是换相,让三相存在120°的相位差,出现正反转的情况,想要单相电机正反转,就要搞清楚单相电机能够启动的原因。

在启动绕组后串联合适容量的电容让两个绕组的相位差相差90°,从而产生磁场旋转,如果这个连接方式记为正转;那么调换一下接进电容的电源线,电机就会产生相反的磁场,电机反转。

2、正反转的要求

很多电机是不可以实现正反转的,比如罩极电机、潜水泵电机等等,这些电机虽有的有电容,但是由于用途的特殊性,在使用的时候会对电机进行改造,增加单向轴承、反转卡套等等。无论是双电容电机还是单电容电机原则上都是可以实现正反转的。

/ 项目: 步进电机正反转(EE01学习板演示程序) 作者:一线工人 网站:电子工程师之家 >

以上就是关于单片机控制交流电机正反转的C语言程序全部的内容,包括:单片机控制交流电机正反转的C语言程序、写出电动机的正转和反转的工作过程 求大神解答、单片机控制交流电机正反转的C语言程序是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9279995.html

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

发表评论

登录后才能评论

评论列表(0条)

保存