找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2569|回復(fù): 9
收起左側(cè)

關(guān)于STC15單片機步進(jìn)電機轉(zhuǎn)一圈的程序運行有點小問題

[復(fù)制鏈接]
ID:482449 發(fā)表于 2019-3-12 16:33 | 顯示全部樓層 |閱讀模式
//——————————————單四拍        ————————————————————
        for(j=0;j<64;j++)//內(nèi)部電機轉(zhuǎn)64圈=輸出軸轉(zhuǎn)1圈
        {
        for(i=0;i<16;i++)//16×4=64,64個脈沖內(nèi)部電機轉(zhuǎn)一圈
        {
                        for(index=0;index<3;index++)//一輪4個脈沖
                        {
                                        switch(index)
                                        {
                                                        case 0:MOTOA=1;MOTOB=0;MOTOC=0;MOTOD=0;break;
                                                        case 1:MOTOA=0;MOTOB=1;MOTOC=0;MOTOD=0;break;  
                                                        case 2:MOTOA=0;MOTOB=0;MOTOC=1;MOTOD=0;break;
                                                        case 3:MOTOA=0;MOTOB=0;MOTOC=0;MOTOD=1;break;
                                        }
                                delay(4);        
                        }
                }
        }
這是步進(jìn)電機轉(zhuǎn)一圈的程序,問題是我這延時4毫秒,總延時有4*4*16*64毫秒大約等于16秒,但電機轉(zhuǎn)一圈只花了11秒,為什么呀,光光延時就要16秒,都沒算上程序運行的時間,是芯片問題還是步進(jìn)電機的問題,電機型號是28BYJ48。
想不通想不通,暈了


回復(fù)

使用道具 舉報

ID:404160 發(fā)表于 2019-3-12 18:33 | 顯示全部樓層
軟件延時精度不夠。
回復(fù)

使用道具 舉報

ID:479969 發(fā)表于 2019-3-12 20:08 | 顯示全部樓層
for(index=0;index<3;index++)//一輪4個脈沖
回復(fù)

使用道具 舉報

ID:479969 發(fā)表于 2019-3-12 20:11 | 顯示全部樓層
for(index=0;index<3;index++)//一輪4個脈沖
改為
for(index=0;index<4;index++)//一輪4個脈沖
不然index只要0,1,2這3個狀態(tài)。當(dāng)然時間少啦!能轉(zhuǎn)就不錯了,正常丟相不能轉(zhuǎn)動。
回復(fù)

使用道具 舉報

ID:332366 發(fā)表于 2019-3-12 21:10 | 顯示全部樓層
能不能看看你的延時函數(shù)?
回復(fù)

使用道具 舉報

ID:265635 發(fā)表于 2019-3-12 22:41 | 顯示全部樓層
延時跟晶振有關(guān)系。
回復(fù)

使用道具 舉報

ID:482449 發(fā)表于 2019-3-13 16:59 | 顯示全部樓層

我試過了,延時大了不轉(zhuǎn),延時小了也不轉(zhuǎn),現(xiàn)在這個范圍差不多剛好
回復(fù)

使用道具 舉報

ID:482449 發(fā)表于 2019-3-13 17:00 | 顯示全部樓層
ly143 發(fā)表于 2019-3-12 21:10
能不能看看你的延時函數(shù)?

void delay(unsigned int t)
{
  unsigned int i, j;
  for(i=0; i<t; i++)
  {
    for(j=845;j>0;j--);
  }
}
晶振使用內(nèi)部晶振12M,請問我這個對嗎
回復(fù)

使用道具 舉報

ID:482449 發(fā)表于 2019-3-13 17:01 | 顯示全部樓層
liu_kl 發(fā)表于 2019-3-12 22:41
延時跟晶振有關(guān)系。

晶振是12M,程序在樓上,希望大佬指點迷津
回復(fù)

使用道具 舉報

ID:482449 發(fā)表于 2019-3-13 17:09 | 顯示全部樓層

原來如此,太久沒用接觸編程真的忘了好多,感謝
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表