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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

DM542驅動器控制電機如何使其來回轉動,有無大佬指導下?

查看數: 2663 | 評論數: 13 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2022-10-29 09:04

正文摘要:

#include <REGX52.H> unsigned char timer0; sbit ENA=P1^0; sbit PWM=P1^1; sbit DIR=P1^2; void delay(unsigned int a) {      unsigned char b=0;      &n ...

回復

ID:1048790 發表于 2022-10-31 15:23
yzwzfyz 發表于 2022-10-31 09:43
1、前進:DIR=1,給出一個脈沖,間隔一個時間TJ,再給出一個脈沖,再間隔一個時間TJ,再……。
2、后退:D ...

大佬  能詳細地指導下嗎? 你這有點多我有點懵
ID:123289 發表于 2022-10-31 09:43
1、前進:DIR=1,給出一個脈沖,間隔一個時間TJ,再給出一個脈沖,再間隔一個時間TJ,再……。
2、后退:DIR=0,給出一個脈沖,間隔一個時間TJ,再給出一個脈沖,再間隔一個時間TJ,再……。
3、做個定時器,時常數就是TJ,這樣每間隔一個TJ,給出一個脈沖就可以了,轉向只要切換DIR。
4、關鍵點:把TJ做成變量,讓每次的TJ都可以變化。
加速:每發一個脈沖就將TJ-N。例如:起步,將TJ調到最大,如:800ms,而后每次-5:800-5,800-5*2,800-5*3,800-5*4……,直到速最快:例如=10ms。
減速:每發一個脈沖就將TJ+N。例如:當前TJ=25,而后每次+10:25+10,25+10*2,25-10*3,25+10*4……,直到你滿意的速率。
換向:不要立即改變DIR,而是先減速,停止時(你認為可以了),再改變DIR,再從起動開始加速。
5、TJ的最小值(最快速)、最大值(停止前)、加減速的N量,自己根據負載大小實踐一下就可以得到了。

運行離開不了物理概念,主要是牛頓的加速度定律,
記住:先做方案,再畫出流程圖,走通流程圖、再寫程序。
ID:1048790 發表于 2022-10-30 17:02
gongnn 發表于 2022-10-29 12:22
void main()
{
     kongzhi_Init();

大佬  這個程序不行 跟我的差不多 想讓它來回轉動的話  這樣貌似不太行
ID:1048790 發表于 2022-10-29 22:16
Hephaestus 發表于 2022-10-29 21:02
測一下驅動器DIR+、DIR-兩者之間的電壓,很可能是接錯了。

用的是共陽極接法DIR+接的是正5V, DIR-接的才是I/O口 應該接線沒問題吧
ID:883242 發表于 2022-10-29 21:02

測一下驅動器DIR+、DIR-兩者之間的電壓,很可能是接錯了。
ID:1048790 發表于 2022-10-29 20:10
gongnn 發表于 2022-10-29 19:57
單片機有沒有供電,接線對不對。單片機定時器有沒有。

程序再簡化點,切換dir方向后直接用delay函數延時 ...

試過了 還是不太行
ID:220661 發表于 2022-10-29 19:57
單片機有沒有供電,接線對不對。單片機定時器有沒有。

程序再簡化點,切換dir方向后直接用delay函數延時試試。
ID:1048790 發表于 2022-10-29 19:19
Hephaestus 發表于 2022-10-29 12:07
改DIR就來回動了,為什么你不改?

改了 還是不行
ID:1048790 發表于 2022-10-29 19:10
gongnn 發表于 2022-10-29 12:22
void main()
{
     kongzhi_Init();

大佬 你這個跟我的是一樣的把  都是只會往一個方向轉到底,并不能使其來回轉動啊
ID:1048790 發表于 2022-10-29 18:53
Hephaestus 發表于 2022-10-29 12:07
改DIR就來回動了,為什么你不改?

我試了下  電機還是只會往一個方向運行
ID:220661 發表于 2022-10-29 12:22
void main()
{
     kongzhi_Init();
           while(1)
                 {
     while(1)
     {
                        
                                  DIR=1;
        if(timer0>0.1)
        {
            timer0=0;
        }
        if(timer0<1)
        {
            PWM=0;
        }
        else
        {
            PWM=1;
        }
                                       
     }
                      DIR=0;
                 if(timer0>0.1)
        {
            timer0=0;
        }
        if(timer0<1)
        {
            PWM=0;
        }
        else
        {
            PWM=1;
        }  
                                
     }
         }

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

ID:883242 發表于 2022-10-29 12:07
改DIR就來回動了,為什么你不改?
ID:1048790 發表于 2022-10-29 10:36
不知道該如何調試 使其來回轉動

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

Powered by 單片機教程網

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