Robofun 機器人論壇

標題: Arduino L298P 如何同時控制兩顆直流馬達? [打印本頁]

作者: zxm10193    時間: 2011-9-22 01:42
標題: Arduino L298P 如何同時控制兩顆直流馬達?
小弟最近才剛接觸Arduino
我是看到這個網址http://www.89idea.com/blog/?p=141
裡面有介紹馬達正轉反轉,但是我怎麼試都只能單獨一顆馬達轉動
這下面是網址得程式碼加上我自己改的但是我不知道我這樣做到底對不對= =
但是我執行只有一顆馬達轉動  不知道市我程式碼錯 ,還是馬達的線有接錯
假如我是把
digitalWrite(E1,HIGH);
digitalWrite(M1,LOW);
或是
digitalWrite(E2, HIGH);
digitalWrite(M2, LOW);
刪掉 另外邊的馬達都會轉動  但是假如是把這4行同時打在一起 卻不能兩個馬達同時轉動...不知道有沒有人可以解除我的問題

int E1 = 5;
int M1 = 4;
int E2 = 6;
int M2 = 7;
void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(E1, OUTPUT);
pinMode(E2, OUTPUT);
}
void loop()
{


digitalWrite(E1,HIGH);
digitalWrite(M1,LOW);

digitalWrite(E2, HIGH);
digitalWrite(M2, LOW);


}
作者: vegewell    時間: 2011-9-22 11:52
會不會電流不夠大
[電源接入問題,主要要注意如果L298驅動板和Arduino控制器和感測器IO擴展板共用同一個電源,那麼這個電源的品質和功率的要求更高,由於馬達是耗電元件,運行時電流消耗較大,電源功率不夠,會導致電源電壓下降,致使電壓達不到Arduino控制器的5V要求,程式會運行不正常,需格外注意。]
------------------------------
你改一下程式看看
int E1 = 5;
int M1 = 4;
int E2 = 6;
int M2 = 7;

void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
}

void loop()
{
digitalWrite(M1,HIGH);
analogWrite(E1, HIGH);
delay(100);
digitalWrite(M2, HIGH);
analogWrite(E2, HIGH);
delay(100);

}
作者: zxm10193    時間: 2011-9-22 15:41
本帖最後由 zxm10193 於 2011-9-22 15:54 編輯

我剛剛把你給的程式碼複製上去  燒進去  馬達反而不會動了....  還是哪裡有問題需要再查看一下??
我有在另外在接一個外部電源給L298P   我用9V的電池

板子上只有亮紅燈  馬達沒有動作...是我的馬達線有接錯?
+-+-  從左到右    我馬達正接+ 負接- 應該沒有接錯吧..
作者: vegewell    時間: 2011-9-22 18:02
本帖最後由 vegewell 於 2011-9-22 18:12 編輯

你的線看起來正確,
M1 E1接一個馬達 ,
M2 E2接一個馬達,
你的馬達是DC?是幾v?
電源線 正負有沒有接錯?
換部份程式以下看看(HIGH 改成100)
-------------------------
void loop()
{
digitalWrite(M1,HIGH);
analogWrite(E1, 100);
delay(100);
digitalWrite(M2, HIGH);
analogWrite(E2, 100);
delay(100);

}
作者: zxm10193    時間: 2011-9-22 19:11
馬達是 那種軌道車 直流馬達   我是買田宮模型馬達組合
我改完變成 可以同時兩輪後退   
想請問一下  
為什麼裡面的數值改成100就可以呢?  因為我找到的網站都是打 HIGH LOW  
那個100的意思是什麼???  書上沒有看到...
這樣我要如何改成 同時向前?
作者: vegewell    時間: 2011-9-22 20:04
回復 5# zxm10193

要改成同時向前,換部份程式以下看看:
-------------------------
void loop()
{
digitalWrite(M1,LOW);
analogWrite(E1, 100);
digitalWrite(M2, LOW);
analogWrite(E2, 100);
delay(100);
}
========================================
裡面的數值改成100 是PWM調速,
你就把100改成 5 至 250 之間的數目 可以改變馬達的轉速,
硬體沒問題的話,那軟體就自己多多嘗試了.
作者: zxm10193    時間: 2011-9-27 23:06
感謝大大的指導   我車子可以順利的前進後退了!!!!
作者: mjm2246    時間: 2012-2-24 22:24
回復 7# zxm10193


   同樣的程式碼
不同馬達

可是完全不會有反應耶
請問是哪裡出了問題
作者: vanne9458    時間: 2012-7-28 11:43
回復 4# vegewell


   我用大大的程式碼 我的車(或板子)會發出類似蜂鳴器的聲音耶 我的車是用rp5-ch02   其中一顆馬達的紅黑線無論我怎麼接入我L298P的M1+ or M1-
   都會有這聲音
作者: vegewell    時間: 2012-7-28 20:05
回復 9# vanne9458


會出類似蜂鳴器的聲音,
可能你的rp5-ch02,
有這個   
Orangutan SV-328 Robot Controller

是的話,那是自我保護裝置的聲音,
小心驅動晶片發燙.
作者: vanne9458    時間: 2012-7-30 10:14
回復 10# vegewell


   我的沒有這塊SV328的機器人控制板 就很單純的兩顆6V馬達而已
作者: kc1206    時間: 2012-12-4 21:15
回復 9# vanne9458

你是用PWM方式供電馬達,所以會發出類似蜂鳴器的聲音,像用DCC控制火車模型一樣。
作者: cc1357    時間: 2022-3-13 00:28

谢谢大大分享




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2