欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
51單片機(jī)+ULN2003為什么電機(jī)轉(zhuǎn)動(dòng)不明顯
[打印本頁(yè)]
作者:
上好佳kkk
時(shí)間:
2025-9-13 14:55
標(biāo)題:
51單片機(jī)+ULN2003為什么電機(jī)轉(zhuǎn)動(dòng)不明顯
這是我的程序,電機(jī)會(huì)轉(zhuǎn)動(dòng),但是最快轉(zhuǎn)一圈用了10s,怎么讓它更快呢?定時(shí)器的時(shí)間也該過(guò)了,但是還是不快#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit jiasu = P3^2; //加速
sbit jiansu = P3^3; //減速
sbit begin = P3^0; //開(kāi)始
sbit fangxiang = P3^7; //方向鍵
sbit MOTOR_A=P1^0;
sbit MOTOR_B=P1^1;
sbit MOTOR_C=P1^2;
sbit MOTOR_D=P1^3;
uchar code PHASE_CW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //四相八拍電平表
uchar code PHASE_CCW[]={0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03};
uchar code tab1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff };
bit fx_flag = 0; // 方向標(biāo)志位
uchar phase = 0; // 當(dāng)前相位
uint cycle_cnt = 0; // 計(jì)數(shù)器
uint timelong =10; // 固定每個(gè)相位
uchar sudu = 0; // 默認(rèn)速度檔位
uchar sudu_num; // 數(shù)碼管顯示
void motor_speed();
volatile uchar phaseIndex = 0; // 相序索引(全局變量,需加volatile)
volatile bit direction = 0; // 轉(zhuǎn)向(全局變量)
void Timer0_Init(void)
{
TMOD &= 0xF0; // 清除T0模式
TMOD |= 0x01; // 設(shè)置T0為模式1(16位自動(dòng)重裝)
TH0 = 0xFC; // 定時(shí)初值(1ms@12MHz)
TL0 = 0x18; // 65536 - 1000 = 64536 = 0xFC18
ET0 = 1; // 使能T0中斷
TR0 = 1; // 啟動(dòng)T0
EA = 1; // 使能總中斷
}
void Timer0_ISR(void) interrupt 1
{
static uint cnt=0;
TH0 = 0xFC; // 重裝初值(1ms)
TL0 = 0x18;
cnt++;
if(cnt>=timelong)
{
cnt=0;
// 輸出當(dāng)前相序電平
if (direction == 0)
{ // 正轉(zhuǎn)
switch (PHASE_CW[phaseIndex])
{
case 0x01: MOTOR_A=1; MOTOR_B=0; MOTOR_C=0; MOTOR_D=0; break;
case 0x03: MOTOR_A=1; MOTOR_B=1; MOTOR_C=0; MOTOR_D=0; break;
case 0x02: MOTOR_A=0; MOTOR_B=1; MOTOR_C=0; MOTOR_D=0; break;
case 0x06: MOTOR_A=0; MOTOR_B=1; MOTOR_C=1; MOTOR_D=0; break;
case 0x04: MOTOR_A=0; MOTOR_B=0; MOTOR_C=1; MOTOR_D=0; break;
case 0x0C: MOTOR_A=0; MOTOR_B=0; MOTOR_C=1; MOTOR_D=1; break;
case 0x08: MOTOR_A=0; MOTOR_B=0; MOTOR_C=0; MOTOR_D=1; break;
case 0x09: MOTOR_A=1; MOTOR_B=0; MOTOR_C=0; MOTOR_D=1; break;
}
}
else
{ // 反轉(zhuǎn)
switch (PHASE_CCW[phaseIndex])
{
case 0x01: MOTOR_A=1; MOTOR_B=0; MOTOR_C=0; MOTOR_D=0; break;
case 0x09: MOTOR_A=1; MOTOR_B=0; MOTOR_C=0; MOTOR_D=1; break;
case 0x08: MOTOR_A=0; MOTOR_B=0; MOTOR_C=0; MOTOR_D=1; break;
case 0x0C: MOTOR_A=0; MOTOR_B=0; MOTOR_C=1; MOTOR_D=1; break;
case 0x04: MOTOR_A=0; MOTOR_B=0; MOTOR_C=1; MOTOR_D=0; break;
case 0x06: MOTOR_A=0; MOTOR_B=1; MOTOR_C=1; MOTOR_D=0; break;
case 0x02: MOTOR_A=0; MOTOR_B=1; MOTOR_C=0; MOTOR_D=0; break;
case 0x03: MOTOR_A=1; MOTOR_B=1; MOTOR_C=0; MOTOR_D=0; break;
}
}
// 相序索引遞增(循環(huán)0~7)
phaseIndex++;
if (phaseIndex >= 8) phaseIndex = 0;
}
}
void Delays(uint Xms)
{
unsigned int i,j;
for(i=Xms;i>0;i--)
for(j=110;j>0;j--);
}
void keyscan()
{
if(jiasu == 0)
{
Delays(5);
if(jiasu == 0)
{
sudu++;
if(sudu >= 5)
sudu = 4;
motor_speed();
while(jiasu == 0);
}
}
if(jiansu == 0)
{
Delays(5);
if(jiansu == 0)
{
if(sudu > 0)
sudu--;
motor_speed();
while(jiansu == 0);
}
}
if(begin == 0)
{
Delays(5);
if(begin == 0)
{
sudu = 2;
motor_speed();
while(begin == 0);
}
}
if(fangxiang == 0)
{
Delays(5);
if(fangxiang == 0)
{
fx_flag = ~fx_flag;
direction = fx_flag; // 同步方向標(biāo)志
while(fangxiang == 0);
}
}
}
void motor_speed()
{
switch(sudu)
{
case 0:
sudu_num = 1;
timelong = 20; //最慢
break;
case 1:
sudu_num = 2;
timelong = 10;
break;
case 2:
sudu_num = 3;
timelong = 5;
break;
case 3:
sudu_num = 4;
timelong = 3;
break;
case 4:
sudu_num = 5;
timelong = 1; //最快
break;
}
}
void main()
{
motor_speed();
Timer0_Init(); // 初始化定時(shí)器
while(1)
{
keyscan(); // 循環(huán)掃描按鍵
}
}
作者:
上好佳kkk
時(shí)間:
2025-9-13 17:15
補(bǔ)充:是步進(jìn)電機(jī)
作者:
rundstedt
時(shí)間:
2025-9-13 17:58
ULN2003只能接電壓控制的玩具級(jí)步進(jìn)電機(jī),本來(lái)就轉(zhuǎn)不快。
作者:
keemee
時(shí)間:
2025-9-13 19:13
減速電機(jī),要考慮減速比
作者:
lei848200
時(shí)間:
2025-9-13 22:52
上好佳kkk 發(fā)表于 2025-9-13 17:15
補(bǔ)充:是步進(jìn)電機(jī)
驅(qū)動(dòng)電壓、電流是否足夠。不足的話(huà)容易失步。另步進(jìn)電機(jī)好像有啟動(dòng)頻率,啟動(dòng)的時(shí)候頻率要低,后面逐步加速。
作者:
a399288395
時(shí)間:
2025-9-14 07:50
電機(jī)是多少V, 供電電壓又是多少V? 如果是5V 是不是接的USB 5V, 功率不足;
作者:
chchking
時(shí)間:
2025-9-14 15:18
脈沖數(shù) 驅(qū)動(dòng)具力
作者:
suncat0504
時(shí)間:
2025-9-14 15:45
步進(jìn)電機(jī)轉(zhuǎn)動(dòng)快慢,由兩個(gè)因素決定:
1、步進(jìn)脈沖時(shí)序變化速度
2、步進(jìn)電機(jī)自身的參數(shù)
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1