直流电机和步进电机怎么用单片机同时控制

步进电机先运转,停止后直流电机运转,没有按键操作,如此循环,步进电机为28byj-48,求AT89S52单片机的编程,谢谢

我简单说下思路:利用T0计时器中断在设置切换时间,切换一个转换标志位用来控制电机运行方式。
方法很简单,让我们来做个实验,程序如下:
#include <reg51.h> //选用晶振11.0592MHz
unsigned char fangshi=1;
unsigned int time1=0;
sbit Y1=P0^0; //步进电机运行(注意:我使用的是管脚输出为0时候,电机运动,这样可以避免启动时候,单片机自复位对电机点动的影响)
sbit Y2=P0^1; //直流电机运行

main()
{
unsigned char i;
//自检测T0时间设置
ET0=1;
TMOD|=0x01;
TH0=0XFC; //1ms中断扫描
TL0=0X66;
IT0=1; //下降沿触发
TR0=1; //开启扫描
while(1)
{
while(fangshi)
{
Y1=~Y1; //步进电机取反
for(i=50;i>0;i--); //设置你的脉冲间隔时间
}
Y1=1; //步进电机关闭
while(!fangshi)Y2=0; //直流电机启动
Y2=1;
}
}
void counter1(void) interrupt 1 //T0计时器中断
{
time1++;
if(time1<180)fangshi=1; //180对应10秒,先步进电机运行时间在这改动
if(time1>=180)
{
fangshi=0;
if(time1>=360) //在运行直流电机运行时间在这改动
time1=0; //切换到步进电机运行方式
}
}
硬件方面可以用三极管驱动小电压步进电机和小电压直流电机;如果是大功率电机,单片机能简单的用继电器控制控制直流电机,但不能控制大功率步进电机,大功率步进电机控制电路相对复杂,我就不说了
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-04
那就分时咯
第2个回答  2012-04-05
分时控制
第3个回答  2012-04-05
用状态机 程序自己写

单片机能不能同时连接步及电动机和直流电动机?
如果单片机的IO口线足够的话,是可以同时连接步进电机和直流电机的。但是由于单片机的端口驱动能力有限,所以往往不能提供足够大的功率去驱动电机,必须要外加驱动电路。常用的驱动电路有H桥驱动电路等,直流电机要用一组H桥电路,而步进电机要同时使用两组H桥驱动电路。电机的H桥驱动电路图如图所示。

步进电机用单片机控制转动
很简单,看你的意思,你应该已经有了与之配套的【步进电机驱动器】,那就可以用单片机I\/O口控制了,一路输出CP脉冲信号,一路输出DIR方向信号,电源接好后,连通电路,就OK了。简单的C51调试程序:一个大的FOR循环里包含:【C P脉冲信号】:可以用一个有限的FOR循环(循环时间可控制在几秒钟左右)...

怎样用单片机来控制电机的方向?
控制电机的方向的话,如果是用步进电机的话,可以控制它的脉序的顺序来控制它的正反转的。但是如果是直流电机的话,是可以通过 电机控制芯片 来控制它的正反转的。如果是步进电机的话,控制它的正反转需要自己写程序,比较麻烦一点,但是容易精确控制它转动的角度,从而控制移动的距离和速度。如果是直流电...

如何用单片机控制步进电机?
该电路是一个步进电机驱动电路,通过控制脉冲Ui,可以实现步进电机的转动。步进电机的一个线圈被表示为图中的W,通过光耦OT和脉冲变压器T与控制脉冲Ui相连。当控制脉冲Ui为高电平时,光耦OT导通,使得线圈W接收到脉冲信号,产生磁场,推动步进电机转动一个步进角度。当控制脉冲Ui为低电平时,光耦OT截断,线...

单片机控制电机正反转动的c语言程序
首先要看你的电机是直流电机还是步进电机。直流电机就简单了,只有两根线,电机两端电压正负极改变就可以实现正转反转。不过要加电机驱动芯片,或者H桥电路,电机驱动芯片可以选择L298N,加上适当的外围电路就可以直接用单片机控制电机了。比如让单片机P1.0 = 0,P1.1 = 1;(单片机I\/0口要与电机驱动...

msp430f169单片机控制步进电机和直流电机的程序
delay(int time){int i;for(i=0;i<=time;i++);} main(){int i;\/\/int count[4];\/\/ int count[9]={0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1,0xf9};\/\/高四位置为高电平,关掉点电机电源,否则三极管会烧坏;while(1){ for(i=0;i<9;i++){ P1=count[i];delay(1000);} } }...

如何用单片机实现对四个步进电机的速度控制呢
表控可以同时控制4个步进电机,对于你说的速度控制讲解如下:上图是表控的表格设置界面,省去了麻烦的编程,轻松实现步进电机控制。图中,第2行工作模式设置为“脉冲”模式,光标在脉冲模式的第2行时,脉冲频率项及脉冲个数输入项分别显示脉冲个数的单位,数据输入框显示为绿色。脉冲输出单位为:百万、...

如何用一个单片机控制多个步进电机
要实现真正意义上的同时,用FPGA\/CPLD是可以完成的。 话说回来,也许你的同时并不是说一定严格地同时工作,只是说一个单片机去控制四个步进电机,那就好办多了。 一个步进电机,比如四相5线那种,四个IO口可控制一个,四个步进电机就要一陆个,驱动芯片用ULN二00三即可。 当然,如果你的IO口不...

单片机如何控制两个步进电机同步
根据我的实战经验,不要用同一路输出,这样在实际运用过程中万一一台失步你将如何是好?为了确保良好同步,其一两台步进电机型号相同、驱动器型号相同、细分数相同,其二独立的原点信号,其三每做完一个循环时间允许的情况下各自找一次“原点”,其三正常运行过程中两路方向信号和脉冲性号在同一语句里发出。...

单片机怎么控制步进电机
由于是四相电机,步进电机之所以可以转动就需要给相绕组提供连续的脉冲,所以需要4个端口来控制四相绕组的工作状态(P15应该是不需要的),具体的编码要看电机的拍数;一旦明白这些,你就可以很容易编写代码来控制电机的转动了,还有在脉冲间你可以设置不同的延时时间来调节电机的转速。

相似回答