怎么用单片机控制马达
答案:2 悬赏:30 手机版
解决时间 2021-02-25 12:14
- 提问者网友:你挡着我发光了
- 2021-02-25 08:42
怎么用单片机控制马达
最佳答案
- 五星知识达人网友:怙棘
- 2021-02-25 08:48
马达种类繁多,控制方法也相差很大,比如步进电机,以下是一种方法:
#include
#define uchar unsigned char
uchar stepd[]={0x01,0x03,0x02,0x06,0x04,0xc0,0x08,0x09};
uchar num=0,fx=0;
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
void t0isr() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
P2=stepd[num];
if(fx==0){num++;num%=8;}
if(fx==1)
{
if(num==0)num=7;
else num--;
}
}
main()
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(key1==0)
{
while(key1==0);
TR0=~TR0;
}
if(key2==0)
{
while(key2==0);
fx=0;
}
if(key3==0)
{
while(key3==0);
fx=1;
}
}
}
#include
#define uchar unsigned char
uchar stepd[]={0x01,0x03,0x02,0x06,0x04,0xc0,0x08,0x09};
uchar num=0,fx=0;
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
void t0isr() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
P2=stepd[num];
if(fx==0){num++;num%=8;}
if(fx==1)
{
if(num==0)num=7;
else num--;
}
}
main()
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(key1==0)
{
while(key1==0);
TR0=~TR0;
}
if(key2==0)
{
while(key2==0);
fx=0;
}
if(key3==0)
{
while(key3==0);
fx=1;
}
}
}
全部回答
- 1楼网友:何以畏孤独
- 2021-02-25 09:28
1、通过设置pwm波的占空比来控制直流电机的转速,占空比越大,转速越快,越小转速越低.
2、当然单片机的i/o口是不能直接驱动电机的,所以你还需要用一个马达驱动芯片.像lg9110、cmo825等.马达驱动ic可以将单片机i/o输出信号放大,这样电机中流过的电流足够大,电机才能转起来.
3、你要是不清除pwm是怎么回事呢,可以先作一些了解,再来知道有征对性地提问就好了.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯