久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開始

搜索
查看: 9776|回復(fù): 63
打印 上一主題 下一主題
收起左側(cè)

【Arduino】168種傳感器系列實(shí)驗(yàn)(170)---L293D四路電機(jī)驅(qū)動(dòng)板

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:513258 發(fā)表于 2020-10-26 18:53 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
37款傳感器與模塊的提法,在網(wǎng)絡(luò)上廣泛流傳,其實(shí)Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實(shí)踐出真知(一定要?jiǎng)邮肿觯┑睦砟睿詫W(xué)習(xí)和交流為目的,這里準(zhǔn)備逐一動(dòng)手試試做實(shí)驗(yàn),不管成功與否,都會(huì)記錄下來---小小的進(jìn)步或是搞不定的問題,希望能夠拋磚引玉。

【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
實(shí)驗(yàn)一百七十:L293D四路電機(jī)驅(qū)動(dòng)模塊 擴(kuò)展板 motor control shield 馬達(dá)板







分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:513258 發(fā)表于 2020-10-27 10:26 | 只看該作者
L293D
L293D是ST公司生產(chǎn)的一種高電壓、小電流電機(jī)驅(qū)動(dòng)芯片,其設(shè)計(jì)用于在4.5 V至36 V的電壓下提供高達(dá)600 mA的雙向驅(qū)動(dòng)電流。可以用于驅(qū)動(dòng)電感性負(fù)載,例如繼電器,螺線管,DC和雙極步進(jìn)電機(jī),以及在正電源應(yīng)用中的其他大電流/高壓負(fù)載。

每個(gè)輸出都是一個(gè)完整的圖騰柱驅(qū)動(dòng)電路,帶有一個(gè)達(dá)林頓晶體管沉和一個(gè)偽達(dá)林頓源。驅(qū)動(dòng)程序成對(duì)啟用,驅(qū)動(dòng)程序1和2由1,2EN啟用,驅(qū)動(dòng)程序3和4由3,4EN啟用。

L293D的工作溫度范圍為0°C至70°C。




回復(fù)

使用道具 舉報(bào)

板凳
ID:513258 發(fā)表于 2020-10-27 10:55 | 只看該作者
L293D特性
電源電壓范圍:4.5V至36V
單獨(dú)的輸入邏輯電源
內(nèi)部ESD保護(hù)
熱關(guān)斷
高噪聲抗擾度輸入的
通標(biāo)L293和L293DSGS的功能替代
輸出電流1A每通道(600毫安L293D)
峰值輸出電流每通道2A(1.2 L293D)
輸出鉗位二極管的感性瞬態(tài)抑制(L293D)

L293D參數(shù)
制造商: STMicroelectronics
產(chǎn)品種類: 電機(jī)/運(yùn)動(dòng)控制器和驅(qū)動(dòng)器
類型: Driver
工作電源電壓: 4.5 V to 36 V
封裝 / 箱體: POWERDIP
封裝: Tube




回復(fù)

使用道具 舉報(bào)

地板
ID:513258 發(fā)表于 2020-10-27 11:06 | 只看該作者
該器件是單片集成的高電壓,高電流的四通道驅(qū)動(dòng)器,旨在接受標(biāo)準(zhǔn)的DTL或TTL邏輯電平并驅(qū)動(dòng)感性負(fù)載(例如繼電器螺線管,直流和步進(jìn)電機(jī))和開關(guān)功率晶體管。為了簡(jiǎn)化用作兩個(gè)橋接器的使用,每對(duì)通道都配備了一個(gè)使能輸入。 獨(dú)立為邏輯電路提供了電源輸入,允許在較低電壓下工作,并包括內(nèi)部鉗位二極管。該設(shè)備適合在高達(dá)5 kHz的頻率下切換應(yīng)用。L293D用16引線塑料組裝具有4個(gè)中心引腳連接到gether并用于散熱的包裝L293DD裝配在20引線表面中具有8個(gè)中心引腳連接到gether并用于散熱的安裝座。

內(nèi)部電路框圖



回復(fù)

使用道具 舉報(bào)

5#
ID:513258 發(fā)表于 2020-10-27 12:40 | 只看該作者
L293D引腳圖





回復(fù)

使用道具 舉報(bào)

6#
ID:513258 發(fā)表于 2020-10-27 13:04 | 只看該作者
本帖最后由 eagler8 于 2020-10-27 17:49 編輯


1,2EN:?jiǎn)⒂抿?qū)動(dòng)器通道1和2(高可用有效輸入)
<1-4> A:驅(qū)動(dòng)器輸入,同相
<1-4>Y:驅(qū)動(dòng)輸出
3,4EN:?jiǎn)⒂抿?qū)動(dòng)器通道3和4(高允許有效輸入)
4、5、12、13:設(shè)備接地和散熱器引腳。通過多個(gè)實(shí)心通孔連接到印刷電路板接地層
V CC1:用于內(nèi)部邏輯轉(zhuǎn)換的5V電源
V CC2:驅(qū)動(dòng)器的電源VCC 4.5 V至36 V

回復(fù)

使用道具 舉報(bào)

7#
ID:513258 發(fā)表于 2020-10-27 13:11 | 只看該作者
L293D電氣特性
(對(duì)于每個(gè)通道,VS = 24 V,VSS = 5 V,Tamb = 25°C,除非另有規(guī)定)




回復(fù)

使用道具 舉報(bào)

8#
ID:513258 發(fā)表于 2020-10-27 13:14 | 只看該作者

回復(fù)

使用道具 舉報(bào)

9#
ID:513258 發(fā)表于 2020-10-27 15:28 | 只看該作者

回復(fù)

使用道具 舉報(bào)

10#
ID:513258 發(fā)表于 2020-10-27 15:30 | 只看該作者

回復(fù)

使用道具 舉報(bào)

11#
ID:513258 發(fā)表于 2020-10-27 15:32 | 只看該作者

回復(fù)

使用道具 舉報(bào)

12#
ID:513258 發(fā)表于 2020-10-27 15:35 | 只看該作者



回復(fù)

使用道具 舉報(bào)

13#
ID:513258 發(fā)表于 2020-10-27 15:37 | 只看該作者

回復(fù)

使用道具 舉報(bào)

14#
ID:513258 發(fā)表于 2020-10-27 16:30 | 只看該作者
本帖最后由 eagler8 于 2020-10-28 10:46 編輯

L293D(雙H橋路)工作原理(視頻21分鐘)

https://www.bilibili.com/video/B ... 6911526506650231789


回復(fù)

使用道具 舉報(bào)

15#
ID:513258 發(fā)表于 2020-10-27 16:51 | 只看該作者
L293D四路電機(jī)驅(qū)動(dòng)模塊 擴(kuò)展板 motor control shield 馬達(dá)板



回復(fù)

使用道具 舉報(bào)

16#
ID:513258 發(fā)表于 2020-10-27 16:55 | 只看該作者
這是一款常用的直流電機(jī)驅(qū)動(dòng)模塊,采用293D芯片小電流直流電機(jī)驅(qū)動(dòng)芯片。管腳被做成了rduino兼容的,也方便了愛好者快速的基于rduino的開發(fā)。

rduino 是一款很好的電子制作入門,有了電機(jī)擴(kuò)展板可以很好的成為機(jī)器人開發(fā)平臺(tái)。這里介紹一款能驅(qū)動(dòng)各種簡(jiǎn)單到稍復(fù)雜項(xiàng)目的全功能的電機(jī)擴(kuò)展板。

適用范圍:rduino初學(xué)者,rduino實(shí)驗(yàn)器材平臺(tái),rduino互動(dòng)電子,Arduino機(jī)器人等。

特點(diǎn):功能多,操作方便,有強(qiáng)大的驅(qū)動(dòng)庫支持及功能更新。

缺點(diǎn):I/O占用較多在同時(shí)驅(qū)動(dòng)四路電機(jī)的情況下(相對(duì)rduino I/O少的版本而言),小功率。

可驅(qū)動(dòng)4路直流電機(jī)或者2路步進(jìn)電機(jī)的同時(shí)還能驅(qū)動(dòng)2路舵機(jī),支持最新rduino UNO, rduino Mega 2560

可以這樣搭配:
驅(qū)動(dòng)四路直流電機(jī)和兩路舵機(jī)
驅(qū)動(dòng)兩路直流電機(jī)和一路步進(jìn)電機(jī)和兩路舵機(jī)
驅(qū)動(dòng)兩路步進(jìn)電機(jī)和兩路舵機(jī)




回復(fù)

使用道具 舉報(bào)

17#
ID:513258 發(fā)表于 2020-10-27 17:00 | 只看該作者
L293D四路電機(jī)擴(kuò)展板特點(diǎn)
    * 2個(gè)5V伺服電機(jī)(舵機(jī))端口 聯(lián)接到Arduino的高解析高精度的定時(shí)器-無抖動(dòng)!
    * 多達(dá)4個(gè)雙向直流電機(jī)及4路PWM調(diào)速(大約0.5%的解析度)
    * 多達(dá)2個(gè)步進(jìn)電機(jī)正反轉(zhuǎn)控制,單/雙步控制,交錯(cuò)或微步及旋轉(zhuǎn)角度控制。
    * 4路H-橋:L293D 芯片每路橋提供.0.6A(峰值1.2A)電流并且?guī)в袩釘嚯姳Wo(hù),4.5V to 36V。
    * 下拉電阻保證在上電時(shí)電機(jī)保持停止?fàn)顟B(tài)。
    * 大終端接線端子使接線更容易(10 - 22AWG)和電源。
    * 帶有Arduino復(fù)位按鈕。
    * 2個(gè)大終端外部電源接線端子 保證邏輯和電機(jī)驅(qū)動(dòng)電源分離。
    * 兼容Mega, Diecimila, & Duemilanove。
    *下載方便使用的Arduino軟件庫快速進(jìn)行項(xiàng)目開發(fā)。




回復(fù)

使用道具 舉報(bào)

18#
ID:513258 發(fā)表于 2020-10-27 18:19 | 只看該作者
本帖最后由 eagler8 于 2020-10-28 13:18 編輯

L293D四路電機(jī)擴(kuò)展板電原理圖





回復(fù)

使用道具 舉報(bào)

19#
ID:513258 發(fā)表于 2020-10-28 10:55 | 只看該作者
本帖最后由 eagler8 于 2020-10-28 13:19 編輯

L293D四路電機(jī)擴(kuò)展板模塊原理
使用L293D來驅(qū)動(dòng)電機(jī)的,中間有一個(gè)74HC595芯片,是將串行信號(hào)轉(zhuǎn)為并行信號(hào)的,因?yàn)樵撃K是為arduino設(shè)計(jì)的,arduino的I/O口較少,控制4個(gè)直流電機(jī)需要12個(gè)引腳,使用74HC595可以減少4個(gè)引腳的使用,也可以取掉74HC595芯片,焊接接線,直接使用51單片機(jī)并行控制2個(gè)L293D芯片從而控制電機(jī)。

74HC595
74HC595是一個(gè)8位串行輸入、并行輸出的位移緩存器:并行輸出為三態(tài)輸出。在SCK 的上升沿,串行數(shù)據(jù)由SDL輸入到內(nèi)部的8位位移緩存器,并由Q7'輸出,而并行輸出則是在LCK的上升沿將在8位位移緩存器的數(shù)據(jù)存入到8位并行輸出緩存器。當(dāng)串行數(shù)據(jù)輸入端OE的控制信號(hào)為低使能時(shí),并行輸出端的輸出值等于并行輸出緩存器所存儲(chǔ)的值。簡(jiǎn)單的說,先將模塊的引腳7置0,然后模塊的引腳4(74HC595芯片的數(shù)據(jù)輸入時(shí)鐘端)接受到一個(gè)上升沿,就將芯片中的8位數(shù)據(jù)左移一位,空出低位將引腳8(74HC595芯片的串行數(shù)據(jù)輸入端)的0或1信號(hào)寫入低位,寫入八次就將控制4個(gè)電機(jī)的8位信號(hào)寫入74HC595的芯片中了(M3M4M3M2M1M1M2M4),然后在給引腳12一個(gè)上升沿,就將芯片中的數(shù)據(jù)輸出在芯片的引腳上(Q0~Q7)。



程序計(jì)數(shù)器——74HC595(視頻6分32秒)
https://www.bilibili.com/video/BV1ME411T7EY?from=search&seid=17494597794294138238

回復(fù)

使用道具 舉報(bào)

20#
ID:513258 發(fā)表于 2020-10-28 11:28 | 只看該作者
本帖最后由 eagler8 于 2020-10-29 05:10 編輯

電機(jī)和驅(qū)動(dòng)器
電機(jī)是許多機(jī)器人和電子項(xiàng)目不可分割的一部分,根據(jù)應(yīng)用的不同,它們可以使用不同的類型。以下是有關(guān)不同類型電機(jī)的一些信息:

直流電機(jī)(DC Motor):直流電機(jī)是最常見的電機(jī),可用于許多應(yīng)用。我們可以在遙控車、機(jī)器人等中看到它。這種電機(jī)結(jié)構(gòu)簡(jiǎn)單。它將通過向其端部施加適當(dāng)?shù)碾妷翰⑼ㄟ^切換電壓極性來改變其方向來開始滾動(dòng)。直流電機(jī)的速度由施加的電壓直接控制。當(dāng)電壓電平小于最大容許電壓時(shí),速度會(huì)降低。

步進(jìn)電機(jī)(Stepper Motor):在一些項(xiàng)目中,如3D打印機(jī)、掃描儀和數(shù)控機(jī)床,我們需要準(zhǔn)確了解電機(jī)旋轉(zhuǎn)步數(shù)。在這些情況下,我們使用步進(jìn)電機(jī)。步進(jìn)電機(jī)可將整個(gè)旋轉(zhuǎn)分成多個(gè)相等的步長(zhǎng)。每步的旋轉(zhuǎn)量由電機(jī)結(jié)構(gòu)決定。這些電機(jī)具有非常高的精度。

伺服電機(jī)(Servo Motor):伺服電機(jī)是一種簡(jiǎn)單的直流電機(jī),帶有位置控制服務(wù)。通過使用伺服電機(jī),您將能夠控制軸的旋轉(zhuǎn)量并將其移動(dòng)到特定位置。它們通常尺寸小,是機(jī)器人手臂的最佳選擇。

這里做實(shí)驗(yàn)準(zhǔn)備使用TT馬達(dá)





TT馬達(dá)直流減速電機(jī),作為一款被廣泛應(yīng)用于電子DIY,機(jī)器人制作,智能車制作環(huán)節(jié)重點(diǎn)動(dòng)力裝置,以其組裝簡(jiǎn)單,擴(kuò)展性能強(qiáng),價(jià)格低廉等諸多特點(diǎn)受到廣大師生和電子愛好者的喜歡。

主要參數(shù)
額定電壓:4.5-6V
空載轉(zhuǎn)速:90±10rpm (具體視減速比而定)
負(fù)載電流:190mA(250mA 最大)
最大扭矩:0.8Kg·cm

回復(fù)

使用道具 舉報(bào)

21#
ID:513258 發(fā)表于 2020-10-28 14:29 | 只看該作者
本帖最后由 eagler8 于 2020-10-29 04:51 編輯

為什么用L293D驅(qū)動(dòng)電機(jī)?
驅(qū)動(dòng)電動(dòng)機(jī)需要大電流。另外,旋轉(zhuǎn)方向和速度是兩個(gè)需要控制的重要參數(shù)。這些要求可以通過使用微控制器(或像Arduino這樣的開發(fā)板)來處理。但有個(gè)問題;微控制器無法提供足夠的電流來運(yùn)行電機(jī),如果直接將電機(jī)連接到微控制器,可能會(huì)損壞微控制器。例如,Arduino UNO引腳限制為40mA電流,遠(yuǎn)小于控制小型電機(jī)所需的100-200mA電流。要解決這個(gè)問題,我們應(yīng)該使用電機(jī)驅(qū)動(dòng)器。電機(jī)驅(qū)動(dòng)器可以連接到微控制器以接收命令并以高電流運(yùn)行電機(jī)。L293D是最受歡迎的電機(jī)驅(qū)動(dòng)器之一,可驅(qū)動(dòng)直流電機(jī),電流負(fù)載高達(dá)1A.L293D有4個(gè)輸出,適用于4線步進(jìn)電機(jī)。 L293D也可用于驅(qū)動(dòng)伺服電機(jī)。






L293D四路電機(jī)擴(kuò)展板支持Arduino UNO. Arduino Mega2560
可以這樣搭配
驅(qū)動(dòng)四路直流電機(jī)和兩路舵機(jī)
驅(qū)動(dòng)兩路直流電機(jī)和一路步進(jìn)電機(jī)和兩路舵機(jī)
驅(qū)動(dòng)兩路步進(jìn)電機(jī)和兩路舵機(jī)
可以同時(shí)控制4個(gè)直流電機(jī)和2個(gè)步進(jìn)電機(jī)和兩個(gè)伺服電機(jī)(舵
機(jī))。有專門的代碼庫。導(dǎo)入庫后,簡(jiǎn)單使用。


回復(fù)

使用道具 舉報(bào)

22#
ID:513258 發(fā)表于 2020-10-29 04:58 | 只看該作者
L293D四路電機(jī)擴(kuò)展板接線圖



回復(fù)

使用道具 舉報(bào)

23#
ID:513258 發(fā)表于 2020-10-29 17:34 | 只看該作者
本帖最后由 eagler8 于 2020-10-29 17:41 編輯

在L293D上哪些引腳我們可以使用呢?
所有的六個(gè)模擬輸入引腳都是可用的。它們也可以當(dāng)做數(shù)字芯片來使用。(引腳14到19),數(shù)字引腳2和13可用。

下面的引腳只有在下面提到的直流或者步進(jìn)電機(jī)工作時(shí)才會(huì)被用到
       數(shù)字引腳11: 1號(hào)直流電機(jī)或者1號(hào)步進(jìn)電機(jī)
       數(shù)字引腳3: 2號(hào)直流電機(jī)或者1號(hào)步進(jìn)電機(jī)
       數(shù)字引腳5: 3號(hào)直流電機(jī)或者2號(hào)步進(jìn)電機(jī)
       數(shù)字引腳6:4號(hào)直流電機(jī)或者2號(hào)步進(jìn)電機(jī)

下面的引腳只有在下面的直流或者步進(jìn)電機(jī)工作時(shí)才會(huì)被用到
       數(shù)字信號(hào)4,7,8,和12通過74hc595(serial-to-parallel)來驅(qū)動(dòng)直流或者步進(jìn)電機(jī)

數(shù)字引腳4:DIR CLK觸發(fā)
數(shù)字引腳7:DIR EN指令的允許端EN
數(shù)字引腳8:DIR SER
數(shù)字引腳12:DIR ATCH中斷連接

下面的引腳只有在舵機(jī)工作時(shí)才會(huì)被用到
       數(shù)字信號(hào)9:1號(hào)舵機(jī)
       數(shù)字信號(hào)10: 2號(hào)舵機(jī)

所以只要相應(yīng)的引腳沒被L293D驅(qū)動(dòng)板使用到,你也是可以拿來用的但前提是你得自己焊出引腳來。另外,GND、5V引腳必須也要連接,否則的話就無法穩(wěn)定地控制直流電動(dòng)機(jī)。





回復(fù)

使用道具 舉報(bào)

24#
ID:513258 發(fā)表于 2020-11-3 20:22 | 只看該作者
外接電源供電
如下圖所示,AFMotor電機(jī)擴(kuò)展板上配有外接電源接口。該接口所連接的直流電源可以為電機(jī)和Arduino開發(fā)板供電。



使用AFMotor電機(jī)擴(kuò)展板驅(qū)動(dòng)電機(jī)時(shí),首要考慮的問題就是如何為擴(kuò)展板供電。如果電源輸出功率達(dá)不到驅(qū)動(dòng)電機(jī)的要求,那么電機(jī)是無法正常工作的。在考慮如何選擇電源時(shí),我們需要重點(diǎn)關(guān)注兩個(gè)方面 ,一個(gè)是電源電壓,一個(gè)是電源電流。

注意:外接電源極性千萬不要接反,否則會(huì)對(duì)擴(kuò)展板造成損壞!

外接電源電壓要求
AFMotor擴(kuò)展板中起關(guān)鍵作用的芯片是L293D。該芯片所允許的直流電源電壓范圍是4.5V ~25V。因此AFMotor擴(kuò)展板外接電源接口允許我們連接的電源也是4.5V ~25V。請(qǐng)注意:這是一個(gè)很寬泛的電壓指標(biāo)。具體我們應(yīng)該連接的電源電壓有多大,這是由被驅(qū)動(dòng)的電機(jī)工作電壓來決定的。

外接電源電流要求
與上面提到的電源電壓要求相同,外接電源的電流要求也是由被驅(qū)動(dòng)的電機(jī)來決定的。通常我們使用AFMotor電機(jī)擴(kuò)展板所驅(qū)動(dòng)的電機(jī)就是普通的模型電機(jī)(如以上電源講解中的圖片所示)。對(duì)于這一類型的電機(jī),它們的工作電流大約是500mA左右,因此我們只要為擴(kuò)展板配一個(gè)500 mA~1000 mA的外接電源就足夠了。請(qǐng)注意,假如您所驅(qū)動(dòng)的電機(jī)工作電流超過500mA,那么就要考慮為擴(kuò)展板上的L293D加裝芯片了。
回復(fù)

使用道具 舉報(bào)

25#
ID:513258 發(fā)表于 2020-11-4 05:04 | 只看該作者
電源使用
為直流電動(dòng)機(jī),電壓和電流需求供電電動(dòng)機(jī)需要大量能量,尤其是便宜的電動(dòng)機(jī),因?yàn)樗鼈兊男瘦^低。首先要弄清楚電動(dòng)機(jī)要使用的電壓。如果幸運(yùn)的話,您的電動(dòng)機(jī)帶有一些規(guī)格。一些小型的業(yè)余電動(dòng)機(jī)僅打算以1.5V的電壓運(yùn)行,但6-12V電動(dòng)機(jī)的使用卻一樣普遍。該屏蔽罩的電機(jī)控制器設(shè)計(jì)為在 4.5V至25V 范圍內(nèi)運(yùn)行。

MOST 1.5-3V電動(dòng)機(jī)將無法工作
電流要求:要弄清的第二件事是電動(dòng)機(jī)需要多少電流。該套件隨附的電機(jī)驅(qū)動(dòng)器芯片旨在為每個(gè)電機(jī)提供高達(dá)600 mA的電流,峰值電流為1.2A。請(qǐng)注意,一旦接近1A,您可能會(huì)希望在電機(jī)驅(qū)動(dòng)器上放一個(gè)散熱器,否則會(huì)出現(xiàn)熱故障,從而可能燒壞芯片。

使用SN754410
某些人使用SN754410電機(jī)驅(qū)動(dòng)器芯片是因?yàn)樗c引腳兼容,具有輸出二極管,每個(gè)電機(jī)可提供1A電流,峰值2A電流。在仔細(xì)閱讀數(shù)據(jù)表并與TI技術(shù)支持和電源工程師進(jìn)行討論之后,看來輸出二極管僅設(shè)計(jì)用于ESD保護(hù),并且將其用作反沖保護(hù)是一種黑客行為,并且不能保證性能。因此,該套件不隨SN754410一起提供,而是使用帶有集成反沖保護(hù)二極管的L293D。如果您愿意冒險(xiǎn),并且需要額外的流動(dòng)資金,請(qǐng)隨時(shí)購買SN754410并更換提供的芯片。

需要更多電源嗎?請(qǐng)購買另一組L293D驅(qū)動(dòng)器并將其焊接在板上的頂部(背負(fù)式)。瞧,當(dāng)前功能加倍!您可以在頂部再焊接2個(gè)芯片,否則可能不會(huì)為您帶來很多好處

您不能用9V電池來驅(qū)動(dòng)電動(dòng)機(jī),因此甚至不浪費(fèi)時(shí)間/電池! 使用大號(hào)鉛酸或鎳氫電池。它還非常建議您設(shè)置兩個(gè)電源(分離電源),一個(gè)用于Arduino,另一個(gè)用于電機(jī)。 99%的“怪異電機(jī)問題” 是由于共享電源線上的噪聲引起的供應(yīng)和/或沒有足夠的供應(yīng)!

如何設(shè)置Arduino + Shield來為電機(jī)供電 Servos的電源是與Arduino使用的相同的5V電壓。建議使用小型業(yè)余伺服器。如果您想要更好的東西,請(qǐng)切斷去往伺服連接器上+的走線,并為您自己的5-6V電源接線!

直流電動(dòng)機(jī)由“高壓電源”供電,而不是經(jīng)過調(diào)節(jié)的5V電源。請(qǐng)勿將電動(dòng)機(jī)電源連接到5V線。除非您確定自己知道自己在做什么,否則這是一個(gè)非常非常糟糕的主意!

可以在兩個(gè)地方獲得電動(dòng)機(jī)的“高壓電源”。一個(gè)是Arduino板上的DC插孔,另一個(gè)是屏蔽板上標(biāo)有 EXT_PWR 的2端子塊.Arduino上的DC插孔具有保護(hù)二極管,因此您將無法弄亂如果插入錯(cuò)誤的電源,情況可能會(huì)變得非常糟糕。但是,屏蔽層上的 EXT_PWR端子沒有保護(hù)二極管(出于相當(dāng)充分的理由)。請(qǐng)小心不要將其向后插入,否則您將破壞電機(jī)護(hù)罩和/或Arduino!

這是它的工作方式:




如果您想要一個(gè)為Arduino和電機(jī)提供單個(gè)DC電源,只需將其插入Arduino的DC插孔或屏蔽板上的2針PWR_EXT模塊。將電源跳線放在電動(dòng)機(jī)的護(hù)罩上。

如果您有Diecimila Arduino,請(qǐng)將Arduino電源跳線設(shè)置為EXT。

請(qǐng)注意,如果電池電源無法提供恒定的電源,您可能會(huì)遇到Arduino重置問題,但這不是建議您為電機(jī)項(xiàng)目供電的方法

如果您想讓 Arduino的USB電源關(guān)閉,而電機(jī)的電源是直流電源,插入U(xiǎn)SB電纜。然后將電動(dòng)機(jī)電源連接到屏蔽板上的PWR_EXTblock。請(qǐng)勿將跳線放在防護(hù)罩上。這是為電機(jī)項(xiàng)目供電的建議方法

(如果您有Diecimila Arduino,請(qǐng)不要忘記將Arduino電源跳線設(shè)置為USB。如果您有Diecimila,則可以交替執(zhí)行以下操作:將DC電源插入

如果您要 2個(gè)用于Arduino和電機(jī)的獨(dú)立直流電源。請(qǐng)插入Arduino的電源插入DC插孔,然后將電動(dòng)機(jī)電源連接到PWR_EXT塊。確保將跳線從電動(dòng)機(jī)護(hù)罩上卸下。

如果您有Diecimila Arduino,請(qǐng)將Arduino跳線設(shè)置為EXT。這是為電動(dòng)機(jī)項(xiàng)目供電的建議方法。

無論哪種方式,如果要使用直流電動(dòng)機(jī)/步進(jìn)系統(tǒng),電動(dòng)機(jī)的護(hù)罩LED均應(yīng)點(diǎn)亮,指示電動(dòng)機(jī)功率良好。

回復(fù)

使用道具 舉報(bào)

26#
ID:513258 發(fā)表于 2020-11-4 05:12 | 只看該作者
安裝AFMotor電機(jī)庫
使用AFMotor電機(jī)擴(kuò)展板驅(qū)動(dòng)電機(jī)以前,需要先將AFMotor庫安裝到Arduino IDE中。如果您不知道如何進(jìn)行操作,請(qǐng)點(diǎn)擊這里進(jìn)入Arduino IDE安裝庫的說明頁面(http://www.taichi-maker.com/home ... ll-arduino-library/)。

在這里我們向您推薦兩個(gè)電機(jī)程序庫。一個(gè)是必須安裝的,一個(gè)是可按您需要選擇安裝的。

必裝的庫是AFMotor庫。這個(gè)庫是AFMotor擴(kuò)展板的開發(fā)團(tuán)隊(duì)Adafruit專門為該擴(kuò)展板編寫的。它的優(yōu)點(diǎn)是非常簡(jiǎn)單易用,但是功能相對(duì)單一。假如您只是驅(qū)動(dòng)直流模型電機(jī),那么這個(gè)AFMotor庫就足夠了。

但是如果您還想用AFMotor擴(kuò)展板驅(qū)動(dòng)28BYJ-48步進(jìn)電機(jī)的話,AFMotor庫雖然也可以實(shí)現(xiàn)這一功能,但是它的功能太簡(jiǎn)單了。所以我們建議您使用AccelStepper庫來控制步進(jìn)電機(jī)。請(qǐng)注意:AccelStepper庫本身不能配合AFMotor電機(jī)擴(kuò)展板工作。只有安裝了AFMotor庫以后,AccelStepper庫在AFMotor庫的配合下才能用于AFMotor電機(jī)擴(kuò)展板驅(qū)動(dòng)步進(jìn)電機(jī)。這也就是說,無論您是否使用AccelStepper庫,都要首先安裝AFMotor庫。

以下是這兩個(gè)庫的下載鏈接:

下載 AFMotor庫(https://pan.baidu.com/s/1xVViDOb_VIb0qenXVdGErw
下載 AccelStepper庫(https://pan.baidu.com/s/1PXKIEiSYR-P_3IpY5cs7tw



回復(fù)

使用道具 舉報(bào)

27#
ID:513258 發(fā)表于 2020-11-4 14:52 | 只看該作者
本帖最后由 eagler8 于 2020-11-4 16:17 編輯
  1. /*
  2.   【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
  3.   實(shí)驗(yàn)一百七十:L293D四路電機(jī)驅(qū)動(dòng)板 motor control shield 馬達(dá)板
  4.   Adafruit Motor Shield模塊 Arduino AFMotor 電機(jī)擴(kuò)展板

  5.   1、安裝庫:百度搜索“AFMotor庫”— 下載 — 拷貝到Arduino-libraries 文件夾中
  6.   2、實(shí)驗(yàn)之一:測(cè)試驅(qū)動(dòng)M2直流電機(jī)
  7. */

  8. #include <AFMotor.h>

  9. AF_DCMotor motor(2, MOTOR12_64KHZ);

  10. void setup() {
  11.   motor.setSpeed(200);
  12. }

  13. void loop() {
  14.   motor.run(FORWARD);
  15.   delay(1000);
  16.   motor.run(BACKWARD);
  17.   delay(1000);
  18.   motor.run(RELEASE);
  19.   delay(1000);
  20. }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

28#
ID:513258 發(fā)表于 2020-11-4 14:52 | 只看該作者
本帖最后由 eagler8 于 2020-11-5 19:32 編輯
  1. /*
  2.   【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
  3.   實(shí)驗(yàn)一百七十:L293D四路電機(jī)驅(qū)動(dòng)板 motor control shield 馬達(dá)板
  4.   Adafruit Motor Shield模塊 Arduino AFMotor 電機(jī)擴(kuò)展板

  5.   1、安裝庫:百度搜索“AFMotor庫”— 下載 — 拷貝到Arduino-libraries 文件夾中
  6.   2、實(shí)驗(yàn)之二:引擎測(cè)試—用串口查看2號(hào)直流電機(jī)運(yùn)轉(zhuǎn)情況
  7. */

  8. #include "AFMotor.h"

  9. AF_DCMotor motor(2);

  10. void setup() {
  11.   Serial.begin(9600);           // set up Serial library at 9600 bps
  12.   Serial.println("引擎測(cè)試 Motor test!");

  13.   // turn on motor
  14.   motor.setSpeed(200);

  15.   motor.run(RELEASE);
  16. }

  17. void loop() {
  18.   uint8_t i;

  19.   Serial.println("向前 FORWARD!");

  20.   motor.run(FORWARD);
  21.   for (i = 0; i < 255; i++) {
  22.     motor.setSpeed(i);
  23.     delay(10);
  24.   }

  25.   for (i = 255; i != 0; i--) {
  26.     motor.setSpeed(i);
  27.     delay(10);
  28.   }

  29.   Serial.println("向后 BACKWARD!");

  30.   motor.run(BACKWARD);
  31.   for (i = 0; i < 255; i++) {
  32.     motor.setSpeed(i);
  33.     delay(10);
  34.   }

  35.   for (i = 255; i != 0; i--) {
  36.     motor.setSpeed(i);
  37.     delay(10);
  38.   }


  39.   Serial.println("停止 RELEASE!");
  40.   motor.run(RELEASE);
  41.   delay(1000);
  42. }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

29#
ID:513258 發(fā)表于 2020-11-4 16:16 | 只看該作者
本帖最后由 eagler8 于 2020-11-5 19:34 編輯

回復(fù)

使用道具 舉報(bào)

30#
ID:513258 發(fā)表于 2020-11-6 11:16 | 只看該作者
AF_DCMotor 類函數(shù)
AFMotor類配合Adafruit Motor Shied可以最多同時(shí)控制4個(gè)直流電機(jī)的速度和方向。要使用這些功能,首先要在開頭添加庫文件:
#include <AFMotor.h>

AF_DCMotor motorname(portnum,freq)
這是一個(gè)建立一個(gè)直流電機(jī)的函數(shù)。在程序中需要聲明每個(gè)電機(jī)各一次。像下面的例子中一樣,每個(gè)電機(jī)必須使用不同的名字。
參數(shù):
port num - 選擇你的電機(jī)連接到電機(jī)驅(qū)動(dòng)板上的接口(1-4)
freq - 選擇PWM頻率。如果你沒有選擇這個(gè)選項(xiàng),默認(rèn)設(shè)置為1KHZ。
適用于通道1和2的頻率:
MOTOR12_64KHZ
MOTOR12_8KHZ
MOTOR12_2KHZ
MOTOR12_1KHZ
適用于通道3和4的頻率:
MOTOR34_64KHZ
MOTOR34_8KHZ
MOTOR34_1KHZ
例如:
AF_DCMotor motor4(4);//通道4,默認(rèn)1KHZ頻率
AF_DCMotor left_motor(1,MOTOR12_64KHZ);//通道1,64KHZ頻率
注意:更高的頻率會(huì)減小電機(jī)在運(yùn)動(dòng)過程中的噪音,但同時(shí)也會(huì)降低扭矩。

setSpeed(speed)
設(shè)置電機(jī)的速度
參數(shù):
speed-范圍為0到255,0代表停止,255代表全速。
注意:直流電機(jī)的回饋并不是典型線性的,所以真正的轉(zhuǎn)速并不會(huì)與程序中設(shè)定的速度成正比。

run(cmd)
設(shè)置電機(jī)的運(yùn)轉(zhuǎn)模式
參數(shù):
cmd - 選擇你想要的電機(jī)運(yùn)轉(zhuǎn)模式
可選擇的模式:
FORWARD - 正轉(zhuǎn)(真正的轉(zhuǎn)動(dòng)方向取決于你電機(jī)的連線)
BACKWARD - 反轉(zhuǎn) (轉(zhuǎn)動(dòng)方向與正轉(zhuǎn)相反)
RELEASE - 停止。使電機(jī)斷電,與setSpeed(0)函數(shù)功能相同。調(diào)用了這個(gè)函數(shù)后,電機(jī)需要一定時(shí)間才能徹底停止。

回復(fù)

使用道具 舉報(bào)

31#
ID:513258 發(fā)表于 2020-11-11 11:03 | 只看該作者
驅(qū)動(dòng)直流電機(jī)



回復(fù)

使用道具 舉報(bào)

32#
ID:513258 發(fā)表于 2020-11-11 11:26 | 只看該作者
驅(qū)動(dòng)伺服電機(jī)(舵機(jī))

首先需要安裝庫:IDE—工具—管理庫—搜索“servo”—安裝



回復(fù)

使用道具 舉報(bào)

33#
ID:513258 發(fā)表于 2020-11-11 16:37 | 只看該作者
本帖最后由 eagler8 于 2020-11-11 16:51 編輯

實(shí)驗(yàn)之三:驅(qū)動(dòng)單只伺服電機(jī)(2號(hào)舵機(jī))

  1. /*
  2.   【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
  3.   實(shí)驗(yàn)一百七十:L293D四路電機(jī)驅(qū)動(dòng)板 motor control shield 馬達(dá)板
  4.   Adafruit Motor Shield模塊 Arduino AFMotor 電機(jī)擴(kuò)展板

  5.   1、安裝庫:IDE—工具—管理庫—搜索“Servo”—安裝
  6.   2、實(shí)驗(yàn)之三:驅(qū)動(dòng)單只伺服電機(jī)(2號(hào)舵機(jī))
  7. */

  8. #include <Servo.h>

  9. Servo myservo;  // create servo object to control a servo
  10. // twelve servo objects can be created on most boards

  11. int pos = 0;    // variable to store the servo position

  12. void setup() {
  13.   myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  14. }

  15. void loop() {
  16.   for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
  17.     // in steps of 1 degree
  18.     myservo.write(pos);              // tell servo to go to position in variable 'pos'
  19.     delay(15);                       // waits 15ms for the servo to reach the position
  20.   }
  21.   for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
  22.     myservo.write(pos);              // tell servo to go to position in variable 'pos'
  23.     delay(15);                       // waits 15ms for the servo to reach the position
  24.   }
  25. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

34#
ID:513258 發(fā)表于 2020-11-11 16:55 | 只看該作者
實(shí)驗(yàn)之四:驅(qū)動(dòng)二只伺服電機(jī)(1號(hào)與2號(hào)舵機(jī))

  1. /*
  2.   【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
  3.   實(shí)驗(yàn)一百七十:L293D四路電機(jī)驅(qū)動(dòng)板 motor control shield 馬達(dá)板
  4.   Adafruit Motor Shield模塊 Arduino AFMotor 電機(jī)擴(kuò)展板

  5.   1、安裝庫:IDE—工具—管理庫—搜索“Servo”—安裝
  6.   2、實(shí)驗(yàn)之四:驅(qū)動(dòng)二只伺服電機(jī)(1號(hào)與2號(hào)舵機(jī))
  7. */

  8. #include <Servo.h>

  9. Servo servo1;   //建立舵機(jī)對(duì)象servo1
  10. Servo servo2;   //建立舵機(jī)對(duì)象servo2

  11. int pos = 0;   
  12. void setup() {
  13.   servo1.attach(10);    //servo1對(duì)象接在擴(kuò)展板servo1端口。
  14.                         //servo1端口是由Arduino的10號(hào)引腳來控制的。
  15.   servo2.attach(9);     //servo2對(duì)象接在擴(kuò)展板servo2端口。
  16.                         //servo2端口是由Arduino的9號(hào)引腳來控制的。
  17. }

  18. void loop() {
  19.   //以下程序?qū)⒖刂苨ervo1輸出軸左右旋轉(zhuǎn)180度
  20.   for (pos = 0; pos <= 180; pos += 1) {
  21.     servo1.write(pos);              
  22.     delay(15);                       
  23.   }
  24.   for (pos = 180; pos >= 0; pos -= 1) {
  25.     servo1.write(pos);   
  26.     delay(15);      
  27.   }
  28.   
  29.   //以下程序?qū)⒖刂苨ervo2輸出軸左右旋轉(zhuǎn)180度
  30.   for (pos = 0; pos <= 180; pos += 1) {
  31.     servo2.write(pos);              
  32.     delay(15);                       
  33.   }
  34.   for (pos = 180; pos >= 0; pos -= 1) {
  35.     servo2.write(pos);   
  36.     delay(15);      
  37.   }  
  38. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

35#
ID:513258 發(fā)表于 2020-11-11 17:12 | 只看該作者
Servo庫
允許Arduino / Genuino開發(fā)板控制各種伺服電機(jī)(舵機(jī))。 該庫可以控制大量的伺服器。它仔細(xì)使用了計(jì)時(shí)器:該庫僅使用1個(gè)計(jì)時(shí)器就可以控制12個(gè)伺服器。在Arduino Due上,最多可以控制60個(gè)伺服器。
該庫與avr,megaavr,sam,samd,nrf52,stm32f4,mbed 架構(gòu)兼容。要使用此庫,請(qǐng)?jiān)贏rduino IDE中打開庫管理器,然后從那里安裝它。

該庫允許Arduino開發(fā)板控制RC(業(yè)余)伺服電機(jī)。伺服系統(tǒng)具有集成的齒輪和可精確控制的軸。標(biāo)準(zhǔn)伺服器允許將軸以各種角度定位,通常在0到180度之間。連續(xù)旋轉(zhuǎn)伺服器允許將軸的旋轉(zhuǎn)設(shè)置為各種速度。

伺服庫在大多數(shù)Arduino板上最多支持12個(gè)電機(jī),在Arduino Mega上最多支持48個(gè)電機(jī)。在Mega以外的板上,使用該庫會(huì)禁用analogWrite()引腳9和10上的(PWM)功能,無論這些引腳上是否有Servo。在Mega上,最多可以使用12個(gè)伺服器,而不會(huì)影響PWM功能。使用12到23個(gè)電機(jī)將禁用引腳11和12上的PWM。

要使用此庫:

#include <Servo.h>

電路圖
伺服電機(jī)(舵機(jī))有三根電線:電源線,地線和信號(hào)線。電源線通常為紅色,應(yīng)連接至Arduino板上的5V引腳。接地線通常為黑色或棕色,應(yīng)連接至Arduino板上的接地引腳。信號(hào)引腳通常為黃色,橙色或白色,應(yīng)連接至Arduino板上的數(shù)字引腳。請(qǐng)注意,伺服器消耗的功率很大,因此如果需要驅(qū)動(dòng)一兩個(gè)以上,則可能需要使用單獨(dú)的電源(即,不是Arduino上的+ 5V引腳)為它們供電。確保將Arduino的接地和外部電源連接在一起。




回復(fù)

使用道具 舉報(bào)

36#
ID:513258 發(fā)表于 2020-11-11 18:39 | 只看該作者
使用Servo庫
1、Servo-attach()函數(shù)(連接)
將伺服變量附加到引腳上。請(qǐng)注意,在Arduino 0016及更早版本中,Servo庫僅在兩個(gè)引腳上僅支持舵機(jī):9和10。

句法
servo.attach(pin)
servo.attach(pin, min, max)

參量
伺服:類型變量Servo
pin:伺服器連接的引腳號(hào)
min(可選):脈沖寬度(以微秒為單位),對(duì)應(yīng)于伺服器上的最小(0度)角度(默認(rèn)為544)
最大(可選):脈沖寬度(以微秒為單位),對(duì)應(yīng)于伺服器上的最大(180度)角度(默認(rèn)為2400)


#include <Servo.h>
Servo myservo;
void setup()
{
  myservo.attach(9);
}
void loop() {}

2、Servo-write(x)函數(shù)(寫入)
將值寫入伺服器,從而相應(yīng)地控制軸。在標(biāo)準(zhǔn)伺服器上,這將設(shè)置軸的角度(以度為單位),將軸移動(dòng)到該方向。在連續(xù)旋轉(zhuǎn)伺服系統(tǒng)(360度舵機(jī))上,這將設(shè)置伺服系統(tǒng)的速度(0表示一個(gè)方向的全速,180表示另一方向的全速,而90左右的值表示無運(yùn)動(dòng))。

句法
servo.write(angle)

參量
伺服:伺服類型的變量
angle:寫入伺服的值,從0到180


#include <Servo.h>
Servo myservo;
void setup()
{
  myservo.attach(9);
  myservo.write(90);  // set servo to mid-point
}
void loop() {}

回復(fù)

使用道具 舉報(bào)

37#
ID:513258 發(fā)表于 2020-11-11 18:40 | 只看該作者
3、Servo-writeMicroseconds()函數(shù)(精確控制)
以微秒(uS)為單位寫入一個(gè)值,從而相應(yīng)地控制軸。在標(biāo)準(zhǔn)伺服系統(tǒng)上,這將設(shè)置軸的角度。在標(biāo)準(zhǔn)伺服器上,參數(shù)值1000完全是逆時(shí)針方向,2000完全是順時(shí)針方向,中間是1500。

請(qǐng)注意,某些制造商并未非常嚴(yán)格地遵循此標(biāo)準(zhǔn),因此,伺服器通常會(huì)對(duì)700到2300之間的值做出響應(yīng)。可以隨意增加這些端點(diǎn),直到伺服器不再繼續(xù)增加其范圍為止。但是請(qǐng)注意,嘗試將伺服驅(qū)動(dòng)器驅(qū)動(dòng)通過其端點(diǎn)(通常由嘶嘶聲表示)是高電流狀態(tài),應(yīng)避免使用。連續(xù)旋轉(zhuǎn)伺服器將以類似于寫入功能的方式響應(yīng)writeMicrosecond功能。

句法
servo.writeMicroseconds(uS)

參量
伺服:伺服類型的變量
us:參數(shù)值(以微秒為單位)(int)


#include <Servo.h>

Servo myservo;

void setup()
{
  myservo.attach(9);
  myservo.writeMicroseconds(1500);  // set servo to mid-point
}

void loop() {}


4、Servo-read()函數(shù)(讀取)
讀取伺服器的當(dāng)前角度(該值傳遞給對(duì)write()的最后一次調(diào)用)。

句法
servo.read()

參量
伺服:類型變量Servo
反饋
伺服角度為0到180度。


5、Servo-Attached()函數(shù)(附加)
檢查是否將Servo變量附加到引腳上。

句法
servo.attached()

參量
伺服:類型變量Servo
反饋
true如果伺服系統(tǒng)連接到引腳上;false除此以外。

6、Servo-detach()函數(shù)(分離)
從其引腳上拆下伺服變量。如果所有伺服變量均已分離,則可以使用AnalogWrite()將引腳9和10用于PWM輸出。

句法
servo.detach()

參量
伺服:類型變量Servo

回復(fù)

使用道具 舉報(bào)

38#
ID:513258 發(fā)表于 2020-11-11 19:16 | 只看該作者
驅(qū)動(dòng)28BYJ-48步進(jìn)電機(jī)
AFMotor電機(jī)擴(kuò)展板最多可以驅(qū)動(dòng)2個(gè)28BYJ-48步進(jìn)電機(jī)。以下我們將給您介紹兩種電機(jī)擴(kuò)展板的使用方法。第一種是在您開發(fā)項(xiàng)目時(shí)的使用方法,第二種是項(xiàng)目開發(fā)完畢后,在使用擴(kuò)展板驅(qū)動(dòng)電機(jī)工作時(shí)的方法。這兩種方法最大的區(qū)別在于:開發(fā)時(shí)的Arduino開發(fā)板是通過USB數(shù)據(jù)線連接在電腦上的。但是在工作時(shí)開發(fā)板是不連接電腦的。

步進(jìn)電機(jī)可以用來精確控制,很適合用于許多機(jī)器人或者CNC制作。這個(gè)電機(jī)驅(qū)動(dòng)板做多支持2個(gè)步進(jìn)電機(jī)。雙極性和單極性電機(jī)都適合這個(gè)庫。對(duì)于雙極性電機(jī)(42二相四線電機(jī)):其中由兩相,相1的兩線連接到驅(qū)動(dòng)板上的M1或者M(jìn)3,相2的兩線連接到驅(qū)動(dòng)板上對(duì)于的M2或者M(jìn)4上。運(yùn)轉(zhuǎn)一個(gè)步進(jìn)電機(jī)比運(yùn)轉(zhuǎn)一個(gè)直流電機(jī)稍微復(fù)雜些,但總體還是比較簡(jiǎn)單的。




回復(fù)

使用道具 舉報(bào)

39#
ID:513258 發(fā)表于 2020-11-11 19:30 | 只看該作者
  1. /*
  2.   【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
  3.   實(shí)驗(yàn)一百七十:L293D四路電機(jī)驅(qū)動(dòng)板 motor control shield 馬達(dá)板
  4.   Adafruit Motor Shield模塊 Arduino AFMotor 電機(jī)擴(kuò)展板

  5.   1、安裝庫:百度搜索“AFMotor庫”— 下載 — 拷貝到Arduino-libraries 文件夾中
  6.   2、實(shí)驗(yàn)之五:驅(qū)動(dòng)28BYJ-48步進(jìn)電機(jī)
  7. */

  8. #include <AFMotor.h> // 本程序中使用AFMotor庫

  9. AF_Stepper motor1(2048, 1);  // 這2條語句的作用是建立2個(gè)步進(jìn)電機(jī)對(duì)象,它們的名稱分別是:motor1/2。
  10. AF_Stepper motor2(2048, 2);  // 對(duì)象名稱后面括號(hào)中的兩個(gè)參數(shù)分別代表了步進(jìn)電機(jī)旋轉(zhuǎn)一周的步數(shù)以及
  11.                               // 步進(jìn)電機(jī)連接在擴(kuò)展板上的端口號(hào)。如AF_Stepper motor1(2048, 1)語句中
  12.                               // 參數(shù)2048代表motor1旋轉(zhuǎn)一周需要走2048步。假如您的電機(jī)旋轉(zhuǎn)一周需要32步,
  13.                               // 那么請(qǐng)?jiān)诘谝粋(gè)參數(shù)位置輸入32這一數(shù)字參數(shù)。
  14.                               // 括號(hào)中第二個(gè)參數(shù)1代表motor1連接在M1和M2端口。
  15.                               // 對(duì)于motor2對(duì)象,它括號(hào)中的參數(shù)2代表該電機(jī)連接在M3和M4端口。

  16. void setup() {
  17.   Serial.begin(9600);         //啟動(dòng)串口通訊
  18.   
  19.   motor1.setSpeed(10);        // 這2條語句的作用是通過setSpped庫函數(shù)設(shè)置電機(jī)運(yùn)行速度。
  20.   motor2.setSpeed(10);        // setSpped庫函數(shù)中的參數(shù)是運(yùn)行速度參數(shù)。
  21.                               // 速度參數(shù)越大,運(yùn)轉(zhuǎn)速度越快。參數(shù)為0時(shí)電機(jī)停止轉(zhuǎn)動(dòng)。
  22. }

  23. /*
  24. 以下的loop函數(shù)中有4段程序語句。它們的內(nèi)容十分類似,主要語句都是是通過step庫函數(shù)來控制
  25. 步進(jìn)電機(jī)的運(yùn)行模式。step庫函數(shù)一共有3個(gè)參數(shù)。如loop函數(shù)的第二行語句:motor1.step(2048, FORWARD, SINGLE)。
  26. 括號(hào)中的第一個(gè)參數(shù)是控制電機(jī)走的步數(shù),這里的參數(shù)2048就是讓電機(jī)走2048步。
  27. 接下來的關(guān)鍵字參數(shù)"FORWARD"作用是控制電機(jī)旋轉(zhuǎn)方向。"FORWARD"是控制電機(jī)"正轉(zhuǎn)",
  28. 這里也可以使用關(guān)鍵字"BACKWARD"讓電機(jī)"反轉(zhuǎn)"。
  29. 最后一個(gè)關(guān)鍵字參數(shù)是用于控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn)模式的。這里可選的關(guān)鍵字參數(shù)有:
  30. SINGLE - 全步進(jìn)模式(單線圈)。電機(jī)每走一步,擴(kuò)展板只給一相線圈供電。
  31. DOUBLE - 全步進(jìn)模式(雙線圈)。電機(jī)每走一步,擴(kuò)展板會(huì)同時(shí)給兩相線圈供電。
  32.          此模式運(yùn)行的電機(jī)比SINGLE模式下的扭矩要更大,但是電機(jī)耗電也會(huì)更多。
  33. INTERLEAVE - 半步進(jìn)模式。這種模式是SINGLE和DOUBLE的混合。電機(jī)每走一步,擴(kuò)展板對(duì)線圈供電方式
  34.              在一相和兩相之間交替切換。舉例來說,電機(jī)走第一步時(shí),只有一相線圈通電。
  35.              走第二步時(shí),會(huì)有兩相線圈供電,然后又是一相,再兩相......這樣交替通電。
  36.              這種控制模式的優(yōu)點(diǎn)是電機(jī)運(yùn)行更流暢,但是缺點(diǎn)是運(yùn)行速度大打折扣。
  37. MICROSTEP - 微步進(jìn)模式。此模式下的電機(jī)運(yùn)行更光滑,但缺點(diǎn)是扭矩會(huì)打折扣。   
  38. */

  39. void loop() {
  40.   Serial.println("Single Mode");        //串口監(jiān)視器輸出當(dāng)前運(yùn)行模式為“Single”
  41.   motor1.step(2048, FORWARD, SINGLE);    //步進(jìn)電機(jī)以SINGLE模式"正轉(zhuǎn)"2048步
  42.   motor1.step(2048, BACKWARD, SINGLE);   //步進(jìn)電機(jī)以SINGLE模式"反轉(zhuǎn)"2048步

  43.   Serial.println("Double Mode");        //串口監(jiān)視器輸出當(dāng)前運(yùn)行模式為“Double”
  44.   motor2.step(2048, FORWARD, DOUBLE);    //步進(jìn)電機(jī)以DOUBLE模式"正轉(zhuǎn)"2048步
  45.   motor2.step(2048, BACKWARD, DOUBLE);   //步進(jìn)電機(jī)以DOUBLE模式"反轉(zhuǎn)"2048步

  46.   Serial.println("Interleave Mode");        //串口監(jiān)視器輸出當(dāng)前運(yùn)行模式為“Interleave”
  47.   motor1.step(2048, FORWARD, INTERLEAVE);    //步進(jìn)電機(jī)以INTERLEAVE模式"正轉(zhuǎn)"2048步
  48.   motor1.step(2048, BACKWARD, INTERLEAVE);   //步進(jìn)電機(jī)以INTERLEAVE模式"反轉(zhuǎn)"2048步

  49.   Serial.println("Micrsostep Mode");         //串口監(jiān)視器輸出當(dāng)前運(yùn)行模式為“Micrsostep”
  50.   motor2.step(2048, FORWARD, MICROSTEP);      //步進(jìn)電機(jī)以MICROSTEP模式"正轉(zhuǎn)"2048步
  51.   motor2.step(2048, BACKWARD, MICROSTEP);     //步進(jìn)電機(jī)以MICROSTEP模式"反轉(zhuǎn)"2048步
  52. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

40#
ID:513258 發(fā)表于 2020-11-11 19:37 | 只看該作者
與步進(jìn)電機(jī)有關(guān)的函數(shù)
確保導(dǎo)入AFMotor庫文件并#include < AFMotor.h>后,有這么幾個(gè)函數(shù)需要用到

1、AF_Stepper steppername(steps,portnumber)
(1)steppername
給電機(jī)起個(gè)名字,然后這個(gè)名字就是此電機(jī)在程序中的代號(hào)了
(2)steps
設(shè)置電機(jī)每轉(zhuǎn)的步數(shù),比如設(shè)置36,則每步走1/36轉(zhuǎn)
(3)portnumber
選擇電機(jī)的通道,范圍為1(通道1,2)和2(通道3和4)

2、Step(steps,direction,style)
(1)step
轉(zhuǎn)動(dòng)的步數(shù)
(2)direction
轉(zhuǎn)動(dòng)的方向FORWARD 或者 BACKWARD
(3)style
步進(jìn)的模式,可以選擇的參數(shù):
a\SINGLE - 一次只給一相線圈供電
b\DOUBLE - 一次給兩項(xiàng)項(xiàng)圈都供電,得到更大的扭矩
c\INTERLEAVE - 電機(jī)會(huì)運(yùn)轉(zhuǎn)得更柔滑,因?yàn)椴綌?shù)增加了一倍,同時(shí)速度也減小一半
d\MICROSTEP - 電機(jī)會(huì)運(yùn)轉(zhuǎn)的更柔滑,精度更高,但扭矩也會(huì)減小

如果想更精細(xì)地控制步進(jìn)電機(jī),可以使用AccelStepper library,這個(gè)庫帶有電機(jī)加減速度功能。

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久草在线视频 | 麻豆视频在线免费观看 | 亚洲欧美成人 | 久久久综合久久 | 精品国产免费一区二区三区五区 | 日韩在线观看网站 | 99综合 | 色综合一区二区 | 国产精彩视频 | 午夜羞羞| 国产一区91精品张津瑜 | 国产成人精品午夜 | 国产一区中文字幕 | 亚洲免费观看视频 | 男女午夜激情视频 | 羞羞视频网站免费看 | 99久久精品国产一区二区三区 | 特级黄一级播放 | 羞羞视频免费观 | 这里只有精品999 | 久久久激情 | 欧美日韩中文字幕 | 亚洲精品区 | 国产精品国产三级国产aⅴ中文 | 99久热在线精品视频观看 | 一二区视频 | 国产日韩欧美激情 | 亚洲香蕉在线视频 | 81精品国产乱码久久久久久 | 欧洲精品在线观看 | 精品av | 亚洲精品99 | 91精品国产91 | 99热在线播放 | 欧美日韩不卡 | 伊人在线 | 亚洲人成人一区二区在线观看 | 一区二区在线免费观看 | 国产精品久久久久aaaa九色 | 全部免费毛片在线播放网站 | 亚洲第一福利网 |