找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

DM542驅(qū)動(dòng)器控制電機(jī)如何使其來(lái)回轉(zhuǎn)動(dòng),有無(wú)大佬指導(dǎo)下?

查看數(shù): 2449 | 評(píng)論數(shù): 13 | 收藏 0
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 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 ...

回復(fù)

ID:1048790 發(fā)表于 2022-10-31 15:23
yzwzfyz 發(fā)表于 2022-10-31 09:43
1、前進(jìn):DIR=1,給出一個(gè)脈沖,間隔一個(gè)時(shí)間TJ,再給出一個(gè)脈沖,再間隔一個(gè)時(shí)間TJ,再……。
2、后退:D ...

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

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

大佬  這個(gè)程序不行 跟我的差不多 想讓它來(lái)回轉(zhuǎn)動(dòng)的話(huà)  這樣貌似不太行
ID:1048790 發(fā)表于 2022-10-29 22:16
Hephaestus 發(fā)表于 2022-10-29 21:02
測(cè)一下驅(qū)動(dòng)器DIR+、DIR-兩者之間的電壓,很可能是接錯(cuò)了。

用的是共陽(yáng)極接法DIR+接的是正5V, DIR-接的才是I/O口 應(yīng)該接線沒(méi)問(wèn)題吧
ID:883242 發(fā)表于 2022-10-29 21:02

測(cè)一下驅(qū)動(dòng)器DIR+、DIR-兩者之間的電壓,很可能是接錯(cuò)了。
ID:1048790 發(fā)表于 2022-10-29 20:10
gongnn 發(fā)表于 2022-10-29 19:57
單片機(jī)有沒(méi)有供電,接線對(duì)不對(duì)。單片機(jī)定時(shí)器有沒(méi)有。

程序再簡(jiǎn)化點(diǎn),切換dir方向后直接用delay函數(shù)延時(shí) ...

試過(guò)了 還是不太行
ID:220661 發(fā)表于 2022-10-29 19:57
單片機(jī)有沒(méi)有供電,接線對(duì)不對(duì)。單片機(jī)定時(shí)器有沒(méi)有。

程序再簡(jiǎn)化點(diǎn),切換dir方向后直接用delay函數(shù)延時(shí)試試。
ID:1048790 發(fā)表于 2022-10-29 19:19
Hephaestus 發(fā)表于 2022-10-29 12:07
改DIR就來(lái)回動(dòng)了,為什么你不改?

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

大佬 你這個(gè)跟我的是一樣的把  都是只會(huì)往一個(gè)方向轉(zhuǎn)到底,并不能使其來(lái)回轉(zhuǎn)動(dòng)啊
ID:1048790 發(fā)表于 2022-10-29 18:53
Hephaestus 發(fā)表于 2022-10-29 12:07
改DIR就來(lái)回動(dòng)了,為什么你不改?

我試了下  電機(jī)還是只會(huì)往一個(gè)方向運(yùn)行
ID:220661 發(fā)表于 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;
        }  
                                
     }
         }

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

ID:883242 發(fā)表于 2022-10-29 12:07
改DIR就來(lái)回動(dòng)了,為什么你不改?
ID:1048790 發(fā)表于 2022-10-29 10:36
不知道該如何調(diào)試 使其來(lái)回轉(zhuǎn)動(dòng)

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

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

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