線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3373
推到 Plurk!
推到 Facebook!

89C51控制直流馬達 AND 馬達驅動IC問題

答題得分者是:阿信
songgamesi
一般會員


發表:1
回覆:2
積分:0
註冊:2010-01-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-01-04 10:48:37 IP:118.170.xxx.xxx 訂閱
最下面檔案是我在別的地方找到的電路圖,但是有些問題想問,



以下是程式,

#include /* 載入 8051 相關暫存器含括檔 */
sbit m1 = P1^1; /* 定義P1.1接腳 */
sbit m2 = P1^2; /* 定義P1.2接腳 */
sbit k1 = P2^0; /* 按鍵控制馬達正轉轉快 */
sbit k2 = P2^1; /* 按鍵控制馬達正轉轉慢 */
sbit k3 = P2^2; /* 按鍵控制馬達反轉轉快 */
sbit k4 = P2^3; /* 按鍵控制馬達反轉轉慢 */
/*----------------------------*/
delay(int d) /* 延遲副程式 */
{
int i,j ;
for(i=0;i for(j=0;j<30;j );
}
/*----------------------------*/
still() /* 馬達正轉快速 */
{
while(1)
{
m1= 0;
m2= 0;
delay(800);
m2= 1;
delay(150);
}
}
/*----------------------------*/
still_2() /* 馬達正轉慢速 */
{
while(1)
{
m1= 0;
m2= 0;
delay(100);
m2= 1;
delay(800);
}
}
/*----------------------------*/
still_3() /* 馬達反轉快速 */
{
while(1)
{
m1= 1;
m2= 0;
delay(800);
m2= 1;
delay(150);
}
}
/*----------------------------*/
still_4() /* 馬達反轉慢速 */
{
while(1)
{
m1= 1;
m2= 0;
delay(100);
m2= 1;
delay(800);
}
}
/*----------------------------*/
void main() /* 主程式 */
{
if(k1==0) /* 控制馬達正轉轉快 */
{
still();
}
if(k2==0) /* 控制馬達正轉轉慢 */
{
still_2();
}
if(k2==0) /* 控制馬達反轉轉快 */
{
still_3();
}
if(k2==0) /* 控制馬達反轉轉慢 */
{
still_4();
}
}

編輯記錄
songgamesi 重新編輯於 2010-01-04 10:50:44, 註解 無‧
songgamesi 重新編輯於 2010-01-04 10:51:17, 註解 無‧
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-01-05 12:54:00 IP:114.32.xxx.xxx 訂閱
1.當然要補,Vcc要有104跟100uF,馬達用104/22Ω-1W。
2.Vcc需6V~18V,VS需0V~18V。
若使用6V~18V的馬達,兩個可以接在一起。
若使用3V小馬達,則Vcc接6V,VS接3V。
3.你的程式也有問題:(1)沒有做初始化 (2)沒有做按鍵除彈跳
(3)馬達轉動後無法切換狀態 (4)無停止功能。
4.馬達啟動瞬間會有大電流,電源供應器的電流設定要夠大。
songgamesi
一般會員


發表:1
回覆:2
積分:0
註冊:2010-01-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-01-06 15:35:52 IP:118.170.xxx.xxx 訂閱

===================引 用 阿信 文 章===================
1.當然要補,Vcc要有104跟100uF,馬達用104/22Ω-1W。
2.Vcc需6V~18V,VS需0V~18V。
若使用6V~18V的馬達,兩個可以接在一起。
若使用3V小馬達,則Vcc接6V,VS接3V。
3.你的程式也有問題:(1)沒有做初始化 (2)沒有做按鍵除彈跳
(3)馬達轉動後無法切換狀態 (4)無停止功能。
4.馬達啟動瞬間會有大電流,電源供應器的電流設定要夠大。

首先先謝謝(阿信)你真的很高興你可以來回答幫助我^^
可是還是有些問題需要你幫助,
1.你說的要補電容根電阻,是我只要按照 7257規格書上的 補上vcc的 10uf 根 馬達中間的0.1u 33Ω就好
還是按照你說的去補 會比較好呢!?
2.我的馬達是12v的,我是讓vcc vss都接5v , 這樣的話 會不會影響到馬達的速度。
3.我目前就按照我原本的電路跟程式去跑了,可是我的電路 7257那邊也沒補上電容根電阻,他有動作耶,我假如補上的話,會差在哪呢??
4.還有程式真的像你所說的,我沒停止功能,要切換動作,我也必須要按重置鑑才能執行下個動作= ="
不滿你說,這段程式 是我從網路上去尋找的,我對c語言真的是一個初學者,
可不可以請你告訴我程式方面 要怎麼修改,才不用按重置就可以直接執行下個動作和停止的功能。
5.你說的大電流 , 是我電源供應器那邊的電流設定 要設定多大阿???

希望你能繼續協助我....多謝了







阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-01-08 18:50:53 IP:114.32.xxx.xxx 訂閱
1.都可以。7257的電容是要吸收雜訊。馬達的電容電阻也是。
如果不加7257容易損壞,馬達會有反向電壓。
2.Vcc需6V~18V。Vss要接0V。
3.同1。
4.我想一想!
5.馬達正常轉動電流的3倍以上。
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-01-08 19:22:08 IP:114.32.xxx.xxx 訂閱
參考程式
[code cpp]
#include /* 載入 8051 相關暫存器含括檔 */
sbit m1 = P1^1; /* 定義P1.1接腳 */
sbit m2 = P1^2; /* 定義P1.2接腳 */
sbit k1 = P2^0; /* 按鍵控制馬達正轉轉快 */
sbit k2 = P2^1; /* 按鍵控制馬達正轉轉慢 */
sbit k3 = P2^2; /* 按鍵控制馬達反轉轉快 */
sbit k4 = P2^3; /* 按鍵控制馬達反轉轉慢 */
sbit k5 = P2^4; /* 按鍵控制馬達不動作 */
/*----------------------------*/
delay(int d) /* 延遲副程式 */
{
int i,j ;
for(i=0;i for(j=0;j<30;j );
}
char Status;

main {
Status=0;
while(1) {
scankey(); //按鍵掃描
switch (Status) {
case 0: still_0(); break; //馬達不動作
case 1: still_1(); break; //正轉快速
case 2: still_2(); break; //正轉慢速
case 3: still_3(); break; //反轉快速
case 4: still_4(); break; //反轉慢速
}
}
}

scankey() { //按鍵掃描
if (k1==0) {delay(10); if (k1==0) Status=1;}
if (k2==0) {delay(10); if (k2==0) Status=2;}
if (k3==0) {delay(10); if (k3==0) Status=3;}
if (k4==0) {delay(10); if (k4==0) Status=4;}
if (k5==0) {delay(10); if (k5==0) Status=0;}
}

still_0() { //馬達不動作
m1=0;
m2=0;
delay(950);
}

still_1() { //正轉快速
m1=0;
m2=0; delay(800);
m2=1; delay(150);
}

still_2() { //正轉慢速
m1=0;
m2=0; delay(150);
m2=1; delay(800);
}

still_3() { //反轉快速
m2=0;
m1=0; delay(800);
m1=1; delay(150);
}

still_3() { //反轉慢速
m2=0;
m1=0; delay(150);
m1=1; delay(800);
}
[/code]

編輯記錄
阿信 重新編輯於 2010-01-08 19:24:19, 註解 無‧
songgamesi
一般會員


發表:1
回覆:2
積分:0
註冊:2010-01-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2010-01-09 01:55:44 IP:118.170.xxx.xxx 訂閱
謝謝你 阿信大大,我明天會馬上按照你所說的去測試看看!!
真的非常謝謝你的協助與幫忙!!^^
系統時間:2024-04-19 19:30:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!