欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4588|回復: 36
打印 上一主題 下一主題
收起左側

有沒有辦法能讓51單片機控制多路步進電機時,各個電機獨立控制,互不干擾?

  [復制鏈接]
跳轉到指定樓層
樓主
ID:1055885 發表于 2023-1-13 15:19 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
遇到一個問題,我用Delay函數做延時語句時,一路步進電機減速時,其他電機也跟著減速,有沒有什么辦法能解決呢?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:57657 發表于 2023-1-13 21:17 | 只看該作者
程序邏輯有問題,控制多個步進電機用定時器中斷。
回復

使用道具 舉報

板凳
ID:152164 發表于 2023-1-13 22:09 | 只看該作者
用定時器產生脈沖,一個定時器控制一路電機。一般單片機都有2個以上定時器
回復

使用道具 舉報

地板
ID:857072 發表于 2023-1-13 23:03 來自觸屏版 | 只看該作者
不用Delay,改定時器用。
回復

使用道具 舉報

5#
ID:1055885 發表于 2023-1-14 12:08 來自觸屏版 | 只看該作者
ziiyn 發表于 2023-1-13 22:09
用定時器產生脈沖,一個定時器控制一路電機。一般單片機都有2個以上定時器

如果控制4路呢,52單片機只有兩個定時器
回復

使用道具 舉報

6#
ID:1055885 發表于 2023-1-14 12:10 來自觸屏版 | 只看該作者
npn 發表于 2023-1-13 21:17
程序邏輯有問題,控制多個步進電機用定時器中斷。

控制4路步進電機要怎么分配定時器呢?
回復

使用道具 舉報

7#
ID:152164 發表于 2023-1-14 15:50 | 只看該作者
叫大個不叫老朱 發表于 2023-1-14 12:08
如果控制4路呢,52單片機只有兩個定時器

換單片機,STC15有3路定時器加PCA模塊配成1路定時器。或者直接換成有5個定時器的單片機,按鍵掃描和顯示之類的最好再用一個定時器
回復

使用道具 舉報

8#
ID:152164 發表于 2023-1-14 15:52 | 只看該作者
叫大個不叫老朱 發表于 2023-1-14 12:08
如果控制4路呢,52單片機只有兩個定時器

非要用52的話就只有用兩個單片機,兩個單片機進行通訊聯動控制
回復

使用道具 舉報

9#
ID:152164 發表于 2023-1-14 15:54 | 只看該作者
叫大個不叫老朱 發表于 2023-1-14 12:08
如果控制4路呢,52單片機只有兩個定時器

我記得52有T0 ,T1 ,T2, 3個定時器的吧
回復

使用道具 舉報

10#
ID:161164 發表于 2023-1-14 17:52 | 只看該作者
本帖最后由 lkc8210 于 2023-1-14 20:33 編輯
叫大個不叫老朱 發表于 2023-1-14 12:08
如果控制4路呢,52單片機只有兩個定時器

用一個定時器產生四個心跳標志位
各步進根據各自的標志位逐步輸出
回復

使用道具 舉報

11#
ID:57657 發表于 2023-1-14 20:25 | 只看該作者
叫大個不叫老朱 發表于 2023-1-14 12:10
控制4路步進電機要怎么分配定時器呢?

用74HC595控制100路都可以。
回復

使用道具 舉報

12#
ID:408539 發表于 2023-1-15 00:07 | 只看該作者
用延時程序會造成整個程序大部分時間都卡在 延時上,,,整個程序運行效率不高
要學會用定時器,無論你控制幾個電機  只要一個定時器就夠了
利用定時器中斷產生時間基準,如1ms
當定時器進入中斷后 變臉自加加
當加到你需要的值時候  換相 , 處理完記得清零變量
這樣你要控制多個電機不同轉速  只要聲明幾個相應變量 即可

void TM0_Isr() interrupt 1
{
motor1++;//電機1
motor2++;//電機2
motor3++;電機3
motor4++;電機4
}
void main()
{
    TMOD = 0x00;
    TL0 = 0x66;                                 //65536-11.0592M/12/1000
    TH0 = 0xfc;
    TR0 = 1;                                    //啟動定時器
    ET0 = 1;                                    //使能定時器中斷
    EA = 1;
    while (1){if(motor1==10){motor1=0;     }  //判斷是否=10Ms   清空變量   然后電機1換相
if(motor2==20){motor2=0;     } //判斷是否=20Ms   清空變量   然后電機2換相
if(motor3==30){motor3=0;     } //判斷是否=30Ms   清空變量   然后電機2換相
if(motor4==40){motor4=0;     }//判斷是否=40Ms   清空變量   然后電機2換相
}
按這個思路就算10個電機不同轉速都不會卡


回復

使用道具 舉報

13#
ID:1055885 發表于 2023-1-15 00:52 來自觸屏版 | 只看該作者
ziiyn 發表于 2023-1-14 15:54
我記得52有T0 ,T1 ,T2, 3個定時器的吧

是的,我記錯了,尷尬
回復

使用道具 舉報

14#
ID:1055885 發表于 2023-1-15 00:55 來自觸屏版 | 只看該作者
ziiyn 發表于 2023-1-14 15:52
非要用52的話就只有用兩個單片機,兩個單片機進行通訊聯動控制

聯動控制應該可以的,顯示和檢測用一個單片機,動作部分用另一個單片機
回復

使用道具 舉報

15#
ID:408539 發表于 2023-1-15 09:48 | 只看該作者
叫大個不叫老朱 發表于 2023-1-15 00:55
聯動控制應該可以的,顯示和檢測用一個單片機,動作部分用另一個單片機

只要單片機IO足夠,并且顯示不是很復雜一個單片機就可以處理,
回復

使用道具 舉報

16#
ID:526108 發表于 2023-1-15 09:58 | 只看該作者
學過紅外線發射函數嗎?使用一個定時器就能同時控制多個步進電機,通過載波把步進電機所有信號載入波形中
回復

使用道具 舉報

17#
ID:1044091 發表于 2023-1-16 07:08 來自觸屏版 | 只看該作者
真正寫程序時用定時器,不用delay。
回復

使用道具 舉報

18#
ID:1055885 發表于 2023-1-16 07:21 來自觸屏版 | 只看該作者
明記冷氣 發表于 2023-1-15 09:48
只要單片機IO足夠,并且顯示不是很復雜一個單片機就可以處理,

數碼管動態顯示和步進電機需要同時工作,還要加入光電檢測,我在網上找了很久沒有解決辦法,大部分都說需要兩個單片機
回復

使用道具 舉報

19#
ID:1055885 發表于 2023-1-16 07:23 來自觸屏版 | 只看該作者
qq624353765 發表于 2023-1-15 09:58
學過紅外線發射函數嗎?使用一個定時器就能同時控制多個步進電機,通過載波把步進電機所有信號載入波形中

哈哈,還沒學,我現在去學,我自己DIY一個機器,0基礎開始學,用到什么學什么,有思路我就一定能做出來
回復

使用道具 舉報

20#
ID:1055885 發表于 2023-1-16 07:33 來自觸屏版 | 只看該作者
qq624353765 發表于 2023-1-15 09:58
學過紅外線發射函數嗎?使用一個定時器就能同時控制多個步進電機,通過載波把步進電機所有信號載入波形中

我要實現的是兩個以上的步進電機在某一時段同時工作,其中某個步進電機減速,但是其他步進還能正常運轉,紅外能實現嗎
回復

使用道具 舉報

21#
ID:1044091 發表于 2023-1-16 11:53 | 只看該作者
叫大個不叫老朱 發表于 2023-1-16 07:21
數碼管動態顯示和步進電機需要同時工作,還要加入光電檢測,我在網上找了很久沒有解決辦法,大部分都說需 ...

用STC8H8K64U,有5個定時器,64kb flash,一片就夠了。STC8H1K08系列有3個定時器,flash也小多了只有8K不一定夠用,代碼還要復雜一點點,能省幾塊錢,如果是做設備沒必要。
回復

使用道具 舉報

22#
ID:961114 發表于 2023-1-16 14:23 | 只看該作者
用 STC8G2K64S4-36I-LQFP48/LQFP32, 有 45路步進電機專用增強型15位PWM, 可以同時控制 45路 步進電機
回復

使用道具 舉報

23#
ID:525244 發表于 2023-1-18 07:59 來自觸屏版 | 只看該作者
用一個定時器就行,定時時間短點,然后各電機的時間累加。判斷到時間了就控制電機信號或標志位!
回復

使用道具 舉報

24#
ID:1055885 發表于 2023-1-18 11:19 來自觸屏版 | 只看該作者
STC莊偉 發表于 2023-1-16 14:23
用 STC8G2K64S4-36I-LQFP48/LQFP32, 有 45路步進電機專用增強型15位PWM, 可以同時控制 45路 步進電機

我感覺我可能不會用
回復

使用道具 舉報

25#
ID:1055885 發表于 2023-1-18 11:41 來自觸屏版 | 只看該作者
明記冷氣 發表于 2023-1-15 00:07
用延時程序會造成整個程序大部分時間都卡在 延時上,,,整個程序運行效率不高
要學會用定時器,無論你控制幾 ...

這個思路是啟動時間不同吧,脈沖發生頻率應該要怎樣呢
回復

使用道具 舉報

26#
ID:1055885 發表于 2023-1-18 11:44 來自觸屏版 | 只看該作者
lkc8210 發表于 2023-1-14 17:52
用一個定時器產生四個心跳標志位
各步進根據各自的標志位逐步輸出

這個對我來說就有點超綱了,剛接觸單片機不久
回復

使用道具 舉報

27#
ID:1003077 發表于 2023-1-19 17:51 | 只看該作者
lkc8210 發表于 2023-1-14 17:52
用一個定時器產生四個心跳標志位
各步進根據各自的標志位逐步輸出

如果定時時間允許,這個方法很好!!!
回復

使用道具 舉報

28#
ID:408539 發表于 2023-1-20 20:58 | 只看該作者
叫大個不叫老朱 發表于 2023-1-18 11:41
這個思路是啟動時間不同吧,脈沖發生頻率應該要怎樣呢

這只是一個讓幾個步進電機可以在不同轉速下運行的思路;
你要隨意調速 把if里面的固定條件換成變量
在其他地方賦值一下就可以改變轉速了
如果你想控制啟停  在if命令里追加上另一個條件即可
有了思路 自己去探索 才能真正學到東西
回復

使用道具 舉報

29#
ID:1055885 發表于 2023-1-21 22:22 來自觸屏版 | 只看該作者
明記冷氣 發表于 2023-1-20 20:58
這只是一個讓幾個步進電機可以在不同轉速下運行的思路;
你要隨意調速 把if里面的固定條件換成變量
在 ...

我用開發板測試了一下,數碼管也帶起來了,我是改變的定時器初值,不過這樣定時器就比較局限,控制進入定時器次數應該可以更好
回復

使用道具 舉報

30#
ID:1055885 發表于 2023-1-21 22:24 來自觸屏版 | 只看該作者
Hjc12345678 發表于 2023-1-19 17:51
如果定時時間允許,這個方法很好!!!

能詳細一點嗎,怎么用一個定時器產生四個標志位呢,不斷裝入初值嗎
回復

使用道具 舉報

31#
ID:1044091 發表于 2023-1-26 12:22 來自觸屏版 | 只看該作者
電機需要獨立實時調速嗎?那樣要一個電機一個定時器比較好。如果只是轉起來,共用一個定時器也行,產生4個標志位。
回復

使用道具 舉報

32#
ID:1061592 發表于 2023-1-27 09:32 | 只看該作者
試試多線程
回復

使用道具 舉報

33#
ID:161164 發表于 2023-1-27 10:26 | 只看該作者
叫大個不叫老朱 發表于 2023-1-21 22:24
能詳細一點嗎,怎么用一個定時器產生四個標志位呢,不斷裝入初值嗎

參考一下

回復

使用道具 舉報

34#
ID:1055885 發表于 2023-1-28 21:53 來自觸屏版 | 只看該作者
ebrowser 發表于 2023-1-27 09:32
試試多線程

多線程成本高了
回復

使用道具 舉報

35#
ID:1055885 發表于 2023-1-28 21:54 來自觸屏版 | 只看該作者
ningsy 發表于 2023-1-26 12:22
電機需要獨立實時調速嗎?那樣要一個電機一個定時器比較好。如果只是轉起來,共用一個定時器也行,產生4個 ...

部分電機同時啟動,但是不是同時停止
回復

使用道具 舉報

36#
ID:1061711 發表于 2023-1-29 11:11 | 只看該作者
明記冷氣 發表于 2023-1-15 00:07
用延時程序會造成整個程序大部分時間都卡在 延時上,,,整個程序運行效率不高
要學會用定時器,無論你控制幾 ...

兄弟解答詳細,學習了,牛XXX
回復

使用道具 舉報

37#
ID:285175 發表于 2023-3-31 17:18 | 只看該作者
單片機在delay,肯定等delay完了才會去發脈沖,所以不能用delay。用定時器試試
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表