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

標題: 單片機+TB6600+兩相四線步進電機迷惑 [打印本頁]

作者: xmfjfhcel    時間: 2020-1-16 08:42
標題: 單片機+TB6600+兩相四線步進電機迷惑
請大神指點哦,為什么42步進電機的轉速與計算的不一樣啊?采用共陽接法。換了TB6600,低速轉動時不卡頓了,但是轉速不是期望的。
我撥的是16細分,按說3200個脈沖一轉。4MS一個脈沖,則轉一圈的時間大約應為:4*3200=12800MS =12.8秒。 但我在測試的時候, 看了時間,轉一圈大約花了30幾秒…………確定TB6600是16細分的了(32細分更慢)
程序如下,最簡單的沒有加別的任何功能:
#include<reg52.h>
//電機控制引腳
sbit CLK  = P1^0;          //PUL-
sbit ENA  = P1^1;           //ENA-
sbit DIR  = P1^2;          //DIR-

unsigned int SPEED=4000;                                                   //脈沖頻率初始4ms
void Init_time()                                 //初始化定時器
{
        TMOD |= 0x01;
        TH0=(65536-SPEED)/256;                  //給time0裝初值
        TL0=(65536-SPEED)%256;
        IE = 0x82;
        TR0=1;                                         //打開中斷
        EA=1;
}
void Enter_Timer0() interrupt 1                                //進入定時器中斷
{
        TH0=(65536-SPEED)/256;
        TL0=(65536-SPEED)%256;
        CLK=~CLK;                                          //4ms發送脈沖
}

void main()

{
        ENA=1;                   //ENA-接的控制口,但一樣的,如果ENA=0,步進電機卡起
        CLK=0;
        DIR=1;                   //DIR-接的控制口。初始化電機        低電平有效,測試,DIR=1,是反轉, DIR=0正轉。
        Init_time();   //初始化定時器           
        while(1)
        {
               
        }        
}







TB6600.JPG (79.04 KB, 下載次數: 87)

TB6600.JPG

作者: baiyun1234    時間: 2020-1-16 09:09
sbit CLK  = P1^0;          //PUL- 脈沖
sbit ENA  = P1^1;           //ENA-使能
sbit DIR  = P1^2;          //DIR- 方向
1.你的步進電機是脈沖和方向控制的。你的電機動作說明使能信號OK;
2.你控制步進電機,你首先需要確定輸出方向,而不是先確定輸出脈沖;
3.你上來就3200的脈沖,你的電機能加起來速?最好做成梯形的加減速。
4.建議你先調成200脈沖,延時做長一點,看看能正常轉不,如果你的步進電機一上電就接收高頻率輸出,也會不卡頓,那樣慢悠悠轉的。
5.如果你使用的輸出頻率較高,建議使用STC 1T的單片機,有100KHZ的高速脈沖輸出功能。
作者: xuyaqi    時間: 2020-1-16 09:18
直接東西都有了直接測一下數據都有了,用不著去算,算錯說明概念理解有錯。
作者: coulomb    時間: 2020-1-16 10:30
步進馬達接法可能有誤?
TB6600的升級版;如所附照片的驅動器,是接兩相四線的步進馬達.
樓主所說的"采用共陽接法"是不正確的.
可否秀出馬達及單片機的原理圖,方便討論市接法是否正確.
作者: cccc888    時間: 2020-1-16 14:19
從代碼看出(4000==4ms),好像是晶振12M,輸出4ms高4ms低,周期8ms,
從實際運行看,晶振可能是11.05,那么結果基本是對的.
作者: xmfjfhcel    時間: 2020-1-16 14:38
接線如圖, DIR+, PUL+, ENA+ 連在一起接的開發板的+5V輸出。

DIR-, PUL-, ENA-分別接STC89C52的IO端口。

TB6600接線.jpg (186.21 KB, 下載次數: 90)

TB6600接線.jpg

作者: xmfjfhcel    時間: 2020-1-16 14:55
xuyaqi 發表于 2020-1-16 09:18
直接東西都有了直接測一下數據都有了,用不著去算,算錯說明概念理解有錯。

嗯, 新手就是沒搞懂問題出在哪點了……
作者: xmfjfhcel    時間: 2020-1-16 15:02
baiyun1234 發表于 2020-1-16 09:09
sbit CLK  = P1^0;          //PUL- 脈沖
sbit ENA  = P1^1;           //ENA-使能
sbit DIR  = P1^2;    ...

謝謝幫助了。
2.程序這兒定義是要改為這樣么:
void main()

{
        ENA=1;                   //ENA-接的控制口,但一樣的,如果ENA=0,步進電機卡起
        DIR=1;                   //DIR-接的控制口。初始化電機        低電平有效,測試,DIR=1,是反轉, DIR=0正轉。
        CLK=0;
        Init_time();   //初始化定時器           
        while(1)
        {
               
        }        
}
3.這個3200是說的電機轉一圈需要3200個脈沖得, 4ms輸出一個脈沖感覺這個頻率不高哦。
4.調成200個脈沖一圈, 步進角度是1.8度,就是不細分。4ms一個脈沖, 200個脈沖就是800ms, 0.8秒就要轉一圈,這個我回去試試看看。不知道我的理解是不是有錯的地方哈。
作者: xmfjfhcel    時間: 2020-1-16 15:12
4MS一個脈沖的話,頻率是不是250HZ? 這該是比較慢的了哦……理論上12.8秒/圈, 我買的兩相四線的步機最轉速是1000轉/秒的哦。關鍵是它轉一圈居然要超過30秒得,這不科學,思來想去,沒找到問題在哪兒, 看了步進電機最好從低速到高速再穩定,這個速度該是低速了………………。
作者: xmfjfhcel    時間: 2020-1-16 16:49
cccc888 發表于 2020-1-16 14:19
從代碼看出(4000==4ms),好像是晶振12M,輸出4ms高4ms低,周期8ms,
從實際運行看,晶振可能是11.05,那么結果基 ...

謝謝謝謝CCCC888的幫助解惑,應該是你說的這樣的了。 高4ms, 低4ms, 就是8ms了。........
我沒有考慮到,感謝大神。
作者: 山頂任風吹    時間: 2022-2-15 18:20
我也遇到這個問題也沒解決,但發現將speed直接用200也好還是2000也好,轉速和圈數就對了,請哪位高手指點
作者: 快樂眼淚    時間: 2022-4-14 06:55
兩個脈沖是一步,時間上差不多的
作者: 2717876846    時間: 2023-7-31 17:33
山頂任風吹 發表于 2022-2-15 18:20
我也遇到這個問題也沒解決,但發現將speed直接用200也好還是2000也好,轉速和圈數就對了,請哪位高手指點

speed(速度)、





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1