概述
本教程適用于現在古老的V1電動機護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
Arduino是電子產品的一個很好的起點,并且帶有電動機護罩,它也可以成為機器人技術和機電一體化的一個很好的整潔平臺。這是功能齊全的電動機屏蔽罩的設計,能夠為許多簡單到中等復雜的項目提供動力。
2個5V“業余”伺服器的連接連接到Arduino的高分辨率專用計時器-無抖動!
多達4個具有單獨8位速度選擇的雙向DC 電機(因此,分辨率約為0.5%)
最多2個步進電機(單極或雙極),具有單線圈,雙線圈,交錯或微步進。
4個H橋:L293D芯片組提供每橋0.6A(峰值1.2A)的熱關斷保護,4.5V至25V
下拉電阻可在加電期間使電機保持禁用狀態
將Arduino復位按鈕置于頂部
2針端子塊以連接外部電源,用于單獨的邏輯/電機電源
經過測試與Mega,Diecimila和Duemilanove兼容
完整套件可用于可以從Adafruit商店購買。
下載易于使用的Arduino軟件庫,就可以開始使用!
常見問題解答
本教程適用于現在古老的V1電動機防護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
此防護罩可以使用多少個電機?
您可以使用2個在5V電壓下運行的DC伺服器,最多4個DC電機或2個步進電機(或1個步進和最多2個DC電機)
我可以連接更多的電動機嗎?
否,目前還不能例如,可以堆疊屏蔽或輕松連接屏蔽以控制4個步進器。
幫助!我的馬達不起作用! - 救命!我的電機不工作!。..但是伺服系統工作正常!
是LED燈亮了嗎?如果LED不亮,則步進電機和DC電機連接不會做任何事情
如果LED不亮,請不要費心編寫上傳代碼或為電機接線,這將不起作用。
LED指示燈是什么?
LED指示直流/步進電機電源正在工作。如果不亮,則直流/步進電機將不會運行。伺服端口由5V供電,不使用直流電動機電源。
我正在嘗試構建此機器人,但它似乎無法在9V電池上運行。 。..
請閱讀用戶手冊以獲取有關適當電源的信息。
此屏蔽能否控制3V小型電動機?
否實際上,它適用于更大的6V +電機。除非您以6V超速驅動,否則它不適用于3V電動機,否則它們將更快地耗盡。
屏蔽板上的電源連接器有什么作用?如何為電動機供電?
請閱讀用戶手冊以獲取有關合適電源的信息。/div》
電動機運行時,我的Arduino嚇壞了!屏蔽層破損了嗎?
電機會消耗很多能量,并可能導致“電力不足”重置Arduino。因此,屏蔽罩設計用于單獨的(分開的)電源-一個用于電子設備,另一個用于電動機。這樣做可以防止電源不足。請閱讀用戶手冊以獲取有關適當電源的信息。
我有良好的固態電源,但是直流電動機似乎“切出”或“跳越”。
嘗試將陶瓷或碟形0.1uF電容器焊接在電動機接線片之間(在電動機本身上!),這將減少可能會反饋到電路中的噪聲(感謝macegr!)
如果每個電機需要600mA以上的電流怎么辦?
您可以替換SN754410的(風險自負),也可以在現有的L293D驅動器之上搭載更多的L293D驅動器。
電機上未使用哪些引腳
所有6個模擬輸入引腳都可用。它們也可用作數字引腳(引腳14至19)
不使用數字引腳2和13。
僅在使用指定的DC/步進器時使用以下插針:
數字插針11:直流電機#1/步進器1(激活/速度控制)
數字插針3:DC電動機#2/步進器#1(激活/速度控制)
數字引腳5:DC電動機#3/步進器#2(激活/速度控制)
數字引腳6:DC電動機#4/步進器#2(激活/速度控制)
如果使用任何DC/步進器,則使用以下引腳
數字引腳4、7、8和12用于通過74HC595串并鎖存器驅動DC/步進電機
以下引腳僅在使用特定的伺服器時使用:
數字引腳9:伺服#1控制
數字引腳10:伺服#2控制
哪些引腳是c
直流/步進電動機不是?直接連接到Arduino。它們連接到Arduino所說的74HC595鎖存器。您不能直接與電動機通信,必須使用電動機屏蔽庫。
,嗯?我不明白。..
您可以嘗試閱讀Michael撰寫的這篇不錯的概述K
如何連接未使用的引腳?
模擬引腳(模擬0-5,也稱為數字引腳14-19)在右下角斷開。
引腳2的引出線較小唯一真正未使用的針腳
其余的針腳不會折斷,因為它們可以被電機罩使用。如果您確定不使用這些引腳,則可以在組裝套件時使用堆疊式接頭連接到它們,或者使用電線焊接到接頭的頂部,或者使用“機翼屏蔽”
嘗試運行示例代碼時遇到以下錯誤:“錯誤:AFMotor.h:沒有此類文件或目錄。。..”
確保已安裝AFMotor庫
如何安裝庫?
閱讀我們的庫教程
我有兩個步進電機,我想同時運行它們,但是示例代碼只能y先控制一個,然后再控制另一個?
步進電機庫step()例行程序不能同時運行兩個電動機。相反,您將必須“交錯”通話。例如,要使兩個電動機都前進100次,您必須編寫如下代碼:
for(i = 0; i 《100; i ++){
motor1.step(1,FORWARD,SINGLE );
motor2.step(1,FORWARD,SINGLE);
}
如果您想要更智能的控制,請查看AccelStepper庫(在“下載”部分中),該庫具有一些并發的步進器電機控制示例
什么是“建議的電機”?
大多數人都是從多余的商店購買電機的,沒有電機會讓所有人高興
但是,由于這是一個很普遍的問題,我建議您購買電機來自Pololu(直流伺服,直流電動機)或Jameco(各種各樣!)以及許多盈余網上商店。
電動機護罩是否與UNO R3兼容還是Mega R3?多余的引腳呢?
電動機的防護罩與R3 UNO和MEGA兼容。 R3在每個接頭連接器上都有2個額外的引腳。這些是插頭上其他引腳的重復,并且不需要屏蔽。
我正在使用4WD機器人平臺,但無法正常工作。
Maker Shed,DF Robotics,Jameco等公司的4WD機器人平臺中使用的電機有很多“刷子噪音”。這會反饋到Arduino電路并導致不穩定的操作。通過將3個降噪電容器焊接到電動機上可以解決此問題。電機端子之間為1個,每個端子與電機外殼之間為1個。
但是我的電動機上已經裝有電容器,但仍然無法工作。
這些電動機會產生大量的電刷噪聲,通常需要完整的3電容處理才能充分抑制。
為什么不只在屏蔽層中設計電容器?
它們將無效那里。必須在源頭處抑制噪聲,否則電動機導線將像天線一樣工作并將其廣播到系統的其余部分。
做到!
本教程適用于現在比較古老的V1電動機護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
放手!這是一個道理易于制作的套件,只需完成以下每個步驟即可構建套件
工具和準備
檢查零件清單
將其焊接
準備工作
本教程適用于現在古老的V1電動機護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
教程
別忘了學習如何使用萬用表!
工具。組裝時需要一些工具。這些工具均不包含在內。如果您沒有它們,現在將是借閱或購買它們的好時機。每當組裝/固定/修改電子設備時,它們都非常方便!我提供了購買鏈接,但是,當然,您應該在最方便/最便宜的地方獲得它們。其中許多零件都可以在Radio Shack或其他(更高質量的)DIY電子產品商店中找到。
烙鐵
您可能會在本地五金店找到的任何入門級“多合一”烙鐵都可以工作。與生活中的大多數事情一樣,您將得到所要付出的一切。
升級到高端烙鐵設置,例如我們在商店中購買的Hakko FX-888,將使焊接變得輕松有趣。
請勿使用“冷熱”烙鐵。 !它們不適合用于精密的電子工作,并且可能損壞套件(請參閱此處)。
單擊此處購買我們的入門級可調30W 110V烙鐵。
單擊此處升級為原裝的Hakko FX-888可調溫焊接鐵。
焊料
您將需要松香芯,60/40焊料。好的焊料是一件好事。不良的焊錫會導致橋接和冷焊點難以找到。
單擊此處購買一盤含鉛焊料(建議初學者使用)。
單擊此處購買一盤無鉛焊料。
萬用表
您將需要一個高質量的基本萬用表,可以測量電壓和連續性。
單擊此處購買基本萬用表。
單擊此處購買頂級的萬用表。
單擊此處購買便攜式萬用表。
齊平斜刀
一旦將它們焊接到位,您將需要齊平的斜角切割器來修剪電線和引線。
k在這里購買我們最喜歡的刀具。
Solder Sucker
奇怪的是,這是該脫焊真空工具的技術術語。對于清理錯誤很有用,每個電氣工程師的辦公桌上都會出現一個錯誤。
單擊此處購買錯誤。
用放大鏡幫助第三手
不是絕對 這是必需的,但是它將使處理過程變得更快,并且將使焊接變得更加容易。
在此處選擇一個。
零件列表
本教程適用于現在古老的V1電動機護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
《表類=“ editor-table”》 圖片
名稱 說明 分銷商 數量
PCB 印刷電路板 Adafruit 1
IC1,IC2
L293D
雙H橋
*請參見使用頁上的注釋,以替換為SN754410
L293D 2
IC3 74HC595N
串行到并行輸出鎖存器 74HC595N 1
IC1‘和IC2’
16針插座(可選!)
自2010年7月起,這些都包含在套件中
通用 2
LED1
3mm LED,任何顏色
電機電源指示燈
3mm LED 1
R1 用于LED1的1.5K電阻 1/4W 5%電阻 1
R2 10K下拉電阻
棕色,黑色,橙色,金 1/4W 5%電阻器 1
RN1 10針總線10K-100K電阻網絡 100K電阻器網絡 1
C2,C4,C6 0.1uF陶瓷電容器 通用 3
C1,C3,C5 100uF/6V電容器(或更大) 100uF/6V上限 3
C7,C8 47uF/25V電容器(或更大) 47uF/25V cap 2
X1
5位3.5mm接線端子
(或3位和2位)
3.5mm端子 2
X2 2位3.5mm接線端子 3.5mm端子 1
RESET 6mm輕觸開關 6mm輕觸開關 1
PWR 跳線/旁路 0.1”跳線 1
36針公頭(1x36) 通用 1
焊接
本教程適用于現在比較古老的V1電動機護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
接下來,如圖所示,將電阻滑入PCB,使它們平放在電路板上。彎曲一下導線腳,使電路板翻轉時不會出現極化現象。
電阻不會極化,這意味著您可以按“兩種方式”放置它們,并且它們會正常工作。
接下來是三個集成電路(IC) IC1,IC2 和 IC3 。當IC出廠時,支腳有些傾斜,這使得將它們插入PCB變得困難。通過將支腿輕輕地彎曲到平坦的桌面上以使其完全筆直來準備焊接。
如果您有驅動電動機的經驗,則可能希望跳過插座,因為這會降低芯片的散熱能力。
首先,請檢查一下您擁有所有零件!在此處查看并顯示在左側的零件清單中。
還要檢查以確保您具有組裝所需的工具。
將電動機屏蔽板放置在虎鉗或其他電路板支架中,然后將烙鐵打開700度。
首先需要使用的兩個電阻是 R1 ( 棕色綠色紅色金 )和 R2(棕黑色橙色金) 。彎曲電阻,使它們看起來像釘書釘,如這張照片所示。
使用烙鐵頭,加熱幾秒鐘后,同時將電阻器導線和金屬環(焊盤)戳入一點焊料,使其熔化成一個圓錐形。去除焊料,然后去除烙鐵。對所有4條導線都執行此操作。
檢查您的工作,應該有干凈的焊點。
使用對角線將長引線夾在焊點上方
下一個放置三個黃色陶瓷電容器 C4 , C2 和 C6 。陶瓷電容器沒有極性,因此您可以“兩種方式”使用它們,它們可以正常工作。
將引線彎曲,就像使用電阻器一樣。
焊接所有6根電線,然后像使用電阻一樣將其剪裁。
接下來是6mm觸摸開關 RESET 和電阻網絡 RN1 。輕觸開關用于復位Arduino,因為一旦打開電機護罩,它就無法到達復位按鈕。
電阻器網絡用于下拉引腳在馬達驅動器芯片上,這樣它們就不會在Arduino草圖告訴它們之前給馬達供電。
觸覺開關可以“以任何一種方式”進入。但是,電阻器網絡必須以某種方式運行。確保帶點的末端位于正確的位置,以使其與電阻網絡的絲網印刷圖像中的X相同。 (請參見左圖)。
將板翻轉過來,并焊接電阻網絡并進行開關。您不需要修剪線索,因為線索很短。
Adafruit的最新套件帶有2個用于L293D電機驅動器的16針插座。它們是可選的,不是操作所必需的。
如果您不熟悉驅動電機(接線錯誤的電機可能性很高),則應安裝這些,以便在L293D損壞時可以
輕松更換它們。
IC必須以正確的方向放置才能正常工作。為了幫助放置,每個芯片的頂部都有一個U形槽口。在電路板上印有芯片輪廓的打印圖像,一端有一個U形缺口。確保切屑槽口與圖像槽口在同一端。在此PCB中,所有部件都面對相同的方向。
輕輕地插入三個芯片。檢查以確保沒有任何腿彎曲或折斷。
74HC595位于中間,兩個L293D位于兩側。
焊接芯片的每個引腳。
L293D電機驅動器芯片的四個“中間”引腳已綁在一起到大的散熱器,因此可能最終被焊料“橋接”,如第二幅圖所示。
接下來是三個100uF電解電容器 C1 , C3 和 C5 。電解電容器已極化,必須以正確的方向放置,否則可能會彈出!電容器的長腳為正(+)腳,并進入標有+的孔中。此處顯示的特寫圖像表示帶孔的是+ 1。
電容器沒有顏色編碼。主體顏色可以從藍色到紫色到綠色到黑色不等,因此請務必閱讀側面的值,而不取決于顏色!
仔細檢查它們的極性后,焊接并夾三個電容器。
放置兩個剩余的47uF電解電容器 C7 和 C8
這些電極也是極化的,因此請確保將長引線插入絲網印刷圖像的+孔中。
電容器沒有顏色編碼。主體顏色可以從藍色到紫色到綠色到黑色不等,因此請務必閱讀側面的值,而不取決于顏色!
焊接并修剪兩個電容器。
下一個是3mm LED,用于指示電機功率。 LED像電容器一樣是極化的,長引線是正極(+)引線。
請確保正確放置LED,否則它將不起作用!
焊接并修剪LED引線。
下一次是制作跳線,舵機和arduino接頭的時候了。
我們使用一根36針“分離式”接頭的針頭,將其分開以制成更小的條。您可以使用斜口鉗或鉗子將其折斷。
將36針接頭分成2個8針,2個6針,2個3針和1個2針接頭。
p》
如果您有NG arduino,則可能需要1個6針接頭和1個4針接頭,而不是2個6針接頭。
2個3針引腳插入左上角的伺服連接中。 2針引腳插入底部中心的PWR跳線中。
此外,放置3個用于電動機和外部電動機電源線的大螺釘端子。如果只收到2位和3位端子塊,請將它們滑動在一起,以便有2個5位端子和1個2位端子。
3個標題和三個接線端子中的焊料。
接下來,將8針和6針接頭連接到Arduino板。這將確保標題完美對齊。確保未插入Arduino或未為其供電!
將電動機護罩放置在Arduino的頂部,并確保所有插頭都對齊。
標題的每個引腳中的焊料。
您已完成!
現在請閱讀用戶手冊。
使用它!
本教程適用于現在古老的V1電動機護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。此教程僅供歷史參考,并且僅供以前的客戶使用!
Adafruit Motor Shield套件是Arduino的絕佳電機控制器,但要格外小心以確保正確使用。請通讀左側的所有《用戶手冊》部分,尤其是有關磁帶庫安裝和電源要求的部分!
庫安裝
本教程適用于現在古老的V1電動機防護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
首先安裝Arduino庫
您必須先必須安裝 AF_Motor Arduino庫,然后才能使用Motor Shield-這將指導Arduino如何與Adafruit Motor Shield對話,但它不是可選!
打開Arduino庫管理器:
搜索 Adafruit Motor 庫并安裝它。確保它是V1電動機屏蔽罩的庫。
我們在以下位置也提供了有關Arduino庫安裝的出色教程:http://learn.adafruit.com/adafruit-all-about-arduino-庫安裝使用
電源使用
本教程適用于現在比較古老的V1電動機護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
為直流電動機,電壓和電流需求供電電動機需要大量能量,尤其是便宜的電動機,因為它們的效率較低。首先要弄清楚電動機要使用的電壓。如果幸運的話,您的電動機帶有一些規格。一些小型的業余電動機僅打算以1.5V的電壓運行,但6-12V電動機的使用卻一樣普遍。該屏蔽罩的電機控制器設計為在 4.5V至25V 范圍內運行。
MOST 1.5-3V電動機將無法工作
電流要求:要弄清的第二件事是電動機需要多少電流。該套件隨附的電機驅動器芯片旨在為每個電機提供高達600 mA的電流,峰值電流為1.2A。請注意,一旦接近1A,您可能會希望在電機驅動器上放一個散熱器,否則會出現熱故障,從而可能燒壞芯片。
使用SN754410:某些人使用SN754410電機驅動器芯片是因為它與引腳兼容,具有輸出二極管,每個電機可提供1A電流,峰值2A電流。在仔細閱讀數據表并與TI技術支持和電源工程師進行討論之后,看來輸出二極管僅設計用于ESD保護,并且將其用作反沖保護是一種黑客行為,并且不能保證性能。因此,該套件不隨SN754410一起提供,而是使用帶有集成反沖保護二極管的L293D。如果您愿意冒險,并且需要額外的流動資金,請隨時購買SN754410并更換提供的芯片。
需要更多電源嗎?請購買另一組L293D驅動器并將其焊接在板上的頂部(背負式)。瞧,當前功能加倍!您可以在頂部再焊接2個芯片,否則可能不會為您帶來很多好處
您不能用9V電池來驅動電動機,因此甚至不浪費時間/電池! 使用大號鉛酸或鎳氫電池。它還非常建議您設置兩個電源(分離電源),一個用于Arduino,另一個用于電機。 99%的“怪異電機問題” 是由于共享電源線上的噪聲引起的供應和/或沒有足夠的供應!
如何設置Arduino + Shield來為電機供電 Servos的電源是與Arduino使用的相同的5V電壓。建議使用小型業余伺服器。如果您想要更好的東西,請切斷去往伺服連接器上+的走線,并為您自己的5-6V電源接線!
直流電動機由“高壓電源”供電,而不是經過調節的5V電源。請勿將電動機電源連接到5V線。除非您確定自己知道自己在做什么,否則這是一個非常非常糟糕的主意!
可以在兩個地方獲得電動機的“高壓電源”。一個是Arduino板上的DC插孔,另一個是屏蔽板上標有 EXT_PWR 的2端子塊.Arduino上的DC插孔具有保護二極管,因此您將無法弄亂如果插入錯誤的電源,情況可能會變得非常糟糕。但是,屏蔽層上的 EXT_PWR端子沒有保護二極管(出于相當充分的理由)。請小心不要將其向后插入,否則您將破壞電機護罩和/或Arduino!
這是它的工作方式:
如果您想要一個為Arduino和電機提供單個DC電源,只需將其插入Arduino的DC插孔或屏蔽板上的2針PWR_EXT模塊。將電源跳線放在電動機的護罩上。
如果您有Diecimila Arduino,請將Arduino電源跳線設置為EXT。
請注意,如果電池電源無法提供恒定的電源,您可能會遇到Arduino重置問題,但這不是建議您為電機項目供電的方法
如果您想讓 Arduino的USB電源關閉,而電機的電源是直流電源,插入USB電纜。然后將電動機電源連接到屏蔽板上的PWR_EXTblock。請勿將跳線放在防護罩上。這是為電機項目供電的建議方法
(如果您有Diecimila Arduino,請不要忘記將Arduino電源跳線設置為USB。如果您有Diecimila,則可以交替執行以下操作:將DC電源插入
如果您要 2個用于Arduino和電機的獨立直流電源。請插入Arduino的電源插入DC插孔,然后將電動機電源連接到PWR_EXT塊。確保將跳線從電動機護罩上卸下。
如果您有Diecimila Arduino,請將Arduino跳線設置為EXT。這是為電動機項目供電的建議方法
無論哪種方式,如果要使用直流電動機/步進系統,電動機的護罩LED均應點亮,指示電動機功率良好
使用RC伺服系統
本教程適用于現在比較古老的V1電動機防護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
業余伺服器是進行電動機控制的最簡單方法。它們具有3針0.1英寸母頭連接,帶+ 5V,接地和信號輸入。電動機屏蔽罩將16位PWM輸出線簡單地引出到兩個3針頭,因此輕松實現插上電源即可使用,因為9V電池可持續使用幾分鐘以上。
使用板載PWM的好處是它非常精確,并且可以在您可以使用內置的 Servo 庫
使用伺服器很簡單,請閱讀Arduino官方文檔以了解如何使用它們,并在IDE中查看示例伺服草圖。/p》 Servos的電源來自Arduino的板載5V re直接從Arduino上的USB或DC電源插孔供電的gulator。如果需要外部電源,請在伺服引腳下方(在v1.2板上)切割走線,并直接連接5V或6V直流電源。高級用戶可以使用外部電源,因為您可能會由于不正確地連接電源而意外損壞伺服器!
將外部電源接頭用于伺服時,請注意接頭引腳的底部不要接觸Arduino上的金屬USB端口外殼。外殼上有一條膠帶可以防止短路。
使用步進電機
本教程適用于現在比較古老的V1電動機防護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
步進電機非常適合(半)精確控制,非常適合許多機器人和CNC項目。該電機護罩最多可支持2個步進電機。對于雙極和單極電動機,該庫的工作原理相同。
對于單極電動機:要連接步進電機,首先要弄清楚哪些引腳連接到哪個線圈,以及哪個引腳是中心抽頭。如果它是5線制電動機,則兩個線圈的中心抽頭將為1。在線上有很多關于如何反向工程線圈引出線的教程。中心抽頭應同時連接到電機屏蔽輸出塊的GND端子上。那么線圈1應該連接到一個電動機端口(例如M1或M3),線圈2應該連接到另一個電動機端口(M2或M4)。
對于雙極型電動機:與單極電動機一樣,除了沒有5號線接地。代碼完全相同。
運行步進器比運行直流電動機要復雜得多,但仍然非常簡單
請確保您 #include
使用 AF_Stepper( steps )創建步進電機對象, stepper# )來設置電動機的H橋和閂鎖。 步長 表示電機每轉多少步。 7.5度/步的電動機具有360/7.5 = 48步。 Stepper# 是它連接到的端口。如果使用的是M1和M2,則為端口1。如果使用的是M3和M4,則為端口2
使用 setSpeed( rpm 》),其中 rpm 是您希望步進電機每分鐘轉多少轉。
然后每次您希望電動機轉移動,調用 step( #steps , direction , steptype )過程。 #步驟 是您要執行的步驟。 direction 是 FORWARD 或 BACKWARD ,步長類型是 SINGLE,DOUBLE。交錯或 MICROSTEP 。
“單”表示單線圈激活,“雙”表示一次激活2個線圈(以獲得更高的扭矩),“交錯”表示交替進行在單倍和兩倍之間切換,以獲得兩倍的分辨率(但當然是速度的一半)。 “微步進”是一種方法,其中對線圈進行PWM調制以在各步之間產生平滑運動。資源頁面中提供了有關這些不同步進方法的優缺點的大量信息。
您可以使用所需的任何步進方法,將其“實時”更改為您可能需要最小的功率,更大的扭矩或
默認情況下,電機在完成步進后將“保持”位置。如果要釋放所有線圈以使其自由旋轉,請調用 release()
步進命令處于“阻塞”狀態,一旦完成,這些命令將返回。
由于步進命令“ block”-每次要移動步進電機時,都必須指示它們。如果您想擁有更多的“后臺任務”步進器控件,請查看AccelStepper庫(與AFMotor的安裝方式類似),其中提供了一些示例,這些示例可同時控制兩個步進器,并具有不同的加速度
下載:文件
復制代碼
#include
AF_Stepper motor(48, 2);
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println(“Stepper test!”);
motor.setSpeed(10); // 10 rpm
motor.step(100, FORWARD, SINGLE);
motor.release();
delay(1000);
}
void loop() {
motor.step(100, FORWARD, SINGLE);
motor.step(100, BACKWARD, SINGLE);
motor.step(100, FORWARD, DOUBLE);
motor.step(100, BACKWARD, DOUBLE);
motor.step(100, FORWARD, INTERLEAVE);
motor.step(100, BACKWARD, INTERLEAVE);
motor.step(100, FORWARD, MICROSTEP);
motor.step(100, BACKWARD, MICROSTEP);
} #include
AF_Stepper motor(48, 2);
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println(“Stepper test!”);
motor.setSpeed(10); // 10 rpm
motor.step(100, FORWARD, SINGLE);
motor.release();
delay(1000);
}
void loop() {
motor.step(100, FORWARD, SINGLE);
motor.step(100, BACKWARD, SINGLE);
motor.step(100, FORWARD, DOUBLE);
motor.step(100, BACKWARD, DOUBLE);
motor.step(100, FORWARD, INTERLEAVE);
motor.step(100, BACKWARD, INTERLEAVE);
motor.step(100, FORWARD, MICROSTEP);
motor.step(100, BACKWARD, MICROSTEP);
}
使用直流電動機
本教程適用于現在古老的V1電動機防護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
直流電動機用于各種機器人項目。
電動機護罩可以雙向驅動多達4個直流電動機。這意味著它們可以向前和向后驅動。使用高質量的內置PWM,速度也可以以0.5%的增量變化。這意味著速度非常平穩且不會變化!
請注意,H橋芯片不適合驅動超過0.6A的負載或超過1.2A的峰值,因此對于 small 馬達。檢查數據表中有關電動機的信息,以驗證其正常。
要連接電動機,只需將兩根導線焊接到端子上,然后將它們連接到 M1,M2,M3, strong》或 M4 。然后在草圖中按照以下步驟操作
確保您#include
使用 AF_DCMotor( motor#,頻率),以設置電動機的H橋和閂鎖。構造函數有兩個參數。
第一個是電動機連接到的端口, 1、2、3 或 4 。
頻率 是速度控制信號的速度。
對于電動機1和2,您可以選擇 MOTOR12_64KHZ , MOTOR12_8KHZ , MOTOR12_2KHZ 或 MOTOR12_1KHZ 。諸如64KHz的高速不會被聽見,但是諸如1KHz的低速將消耗更少的功率。電動機3和4只能以1KHz運行,并且將忽略給定的任何設置
然后您可以使用 setSpeed( speed )設置電動機的速度》 速度 的范圍是0(停止)到255(全速)。您可以隨時設置速度。
要運行電動機,請調用 run( direction ),其中 direction 是 FORWARD , BACKWARD 或 RELEASE 。當然,Arduino實際上并不知道電機是否“前進”。 ‘或’向后‘,因此,如果要更改其認為向前的方式,只需將電動機和屏蔽層之間的兩根導線互換即可。
下載:文件
復制代碼
#include
AF_DCMotor motor(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println(“Motor test!”);
motor.setSpeed(200); // set the speed to 200/255
}
void loop() {
Serial.print(“tick”);
motor.run(FORWARD); // turn it on going forward
delay(1000);
Serial.print(“tock”);
motor.run(BACKWARD); // the other way
delay(1000);
Serial.print(“tack”);
motor.run(RELEASE); // stopped
delay(1000);
} #include
AF_DCMotor motor(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println(“Motor test!”);
motor.setSpeed(200); // set the speed to 200/255
}
void loop() {
Serial.print(“tick”);
motor.run(FORWARD); // turn it on going forward
delay(1000);
Serial.print(“tock”);
motor.run(BACKWARD); // the other way
delay(1000);
Serial.print(“tack”);
motor.run(RELEASE); // stopped
delay(1000);
}
AF_DCMotor類
本教程適用于現在古老的V1電動機防護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
AF_DCMotor類可提供速度與Adafruit Motor Shield配合使用時,最多可控制四個直流電動機的方向和方向。要在草圖中使用它,必須首先在草圖的開頭添加以下行:
下載:文件
復制代碼
#include #include
AF_DCMotor 電動機名稱(端口號,頻率)
這是直流電動機的構造函數。為草圖中的每個電動機調用一次此構造函數。每個電動機實例的名稱必須與下面的示例中的名稱不同。
參數:
端口號-選擇電機將連接到電機控制器的哪個通道(1-4)
頻率-選擇PWM頻率。如果未指定頻率,則默認使用1KHz。
通道1和2的頻率為:
MOTOR12_64KHZ
MOTOR12_8KHZ
MOTOR12_2KHZ
MOTOR12_1KHZ
通道3和4的頻率為:
MOTOR34_64KHZ
MOTOR34_8KHZ
MOTOR34_1KHZ
示例:
下載:文件
復制代碼
AF_DCMotor motor4(4); // define motor on channel 4 with 1KHz default PWM
AF_DCMotor left_motor(1, MOTOR12_64KHZ); // define motor on channel 1 with 64KHz PWM AF_DCMotor motor4(4); // define motor on channel 4 with 1KHz default PWM
AF_DCMotor left_motor(1, MOTOR12_64KHZ); // define motor on channel 1 with 64KHz PWM
注意:較高的頻率將產生較小的聽覺嗡嗡聲,但可能會導致某些電動機的轉矩降低。
setSpeed( speed )
設置電動機的速度。
參數:
速度-“速度”的有效值在0到255之間,其中0處于關閉狀態,255為全油門。
示例:
注意 : DC電機響應通常不是線性的,因此實際RPM不一定與編程速度成正比。
運行( cmd )
設置電動機的運行模式。
參數:
cmd -電動機所需的運行模式
cmd的有效值為:
FORWARD -向前運行(實際旋轉方向取決于電動機接線)
BACKWARD -向后運行(旋轉將與正向相反)
釋放-停止電動機。這會從電動機上斷電,等效于setSpeed(0)。電動機的防護罩沒有實現動態破壞,因此電動機可能需要一些時間才能旋轉
示例:
下載:文件
復制代碼
motor.run(FORWARD);
delay(1000); // run forward for 1 second
motor.run(RELEASE);
delay(100); // ’coast‘ for 1/10 second
motor.run(BACKWARDS); // run in reverse motor.run(FORWARD);
delay(1000); // run forward for 1 second
motor.run(RELEASE);
delay(100); // ’coast‘ for 1/10 second
motor.run(BACKWARDS); // run in reverse
AF_Stepper類
本教程適用于現在古老的V1電動機護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
AF_Stepper類提供單個與Adafruit Motor Shield配合使用時,最多可對2個步進電機進行多步控制。要在草圖中使用它,必須首先在草圖的開頭添加以下行:
下載:文件
復制代碼
#include #include
AF_Stepper steppername ( steps , portnumber ) AF_Stepper構造函數定義了步進電機。為草圖中的每個步進電機調用一次。每個步進電機實例必須具有唯一的名稱,如下例所示。
參數:
steps -聲明步數
num -聲明如何將電動機連接到屏蔽層。
“ num”的有效值是1(通道1和2)和2(通道3和4)。
示例:
下載:文件
復制代碼
AF_Stepper Stepper1(48, 1); // A 48-step-per-revolution motor on channels 1 & 2
AF_Stepper Stepper2(200, 2); // A 200-step-per-revolution motor on channels 3 & 4 AF_Stepper Stepper1(48, 1); // A 48-step-per-revolution motor on channels 1 & 2
AF_Stepper Stepper2(200, 2); // A 200-step-per-revolution motor on channels 3 & 4
step(步,方向,樣式)步進電動機。
參數:
步數-轉向的步數
方向-旋轉方向( FORWARD 或向后)
樣式-步進樣式:
“樣式”的有效值為:
單個-一個線圈i一次通電。
雙重-一次通電兩個線圈以獲得更大的扭矩。
交錯-交替在單打和雙打之間創建半步。這樣可以使運行更平穩,但是由于額外的半步,速度也降低了一半。
MICROSTEP -相鄰的線圈上下傾斜以形成一個每個完整步驟之間的“微步”數量。這樣可以實現更好的分辨率和更平滑的旋轉,但是會損失扭矩。
注意:步驟是同步命令,直到返回為止所有步驟均已完成。對于兩個電動機的同時運動,必須處理兩個電動機的步進定時,并使用下面的“ onestep()”函數。
下載:文件
復制代碼
Stepper1.step(100, FORWARD, DOUBLE); // 100 steps forward using double coil stepping
Stepper2.step(100, BACKWARD, MICROSTEP); // 100 steps backward using double microstepping Stepper1.step(100, FORWARD, DOUBLE); // 100 steps forward using double coil stepping
Stepper2.step(100, BACKWARD, MICROSTEP); // 100 steps backward using double microstepping
setSpeed( RPMspeed ) 設置電動機的速度
參數:
速度-以RPM為單位的速度
注意:最終的步進速度基于構造函數中的“ steps”參數。如果這與您的電動機的步數不匹配,那么您的實際速度也會關閉。
示例:
下載:文件
復制代碼
Stepper1.setSpeed(10); // Set motor 1 speed to 10 rpm
Stepper2.setSpeed(30); // Set motor 2 speed to 30 rpm Stepper1.setSpeed(10); // Set motor 1 speed to 10 rpm
Stepper2.setSpeed(30); // Set motor 2 speed to 30 rpm
》
onestep(方向,步進樣式)單步電動機。
參數:
方向-旋轉方向( FORWARD 或 BACKWARD )
stepstyle -步進樣式:
“ style”的有效值為:
單次-一次通電一個線圈。
DOUBLE -一次通電兩個線圈
interleave -在單雙之間交替,以在兩者之間建立半步。這樣可以使運行更平穩,但是由于額外的半步,速度也降低了一半。
MICROSTEP -相鄰的線圈上下傾斜以形成一個每個完整步驟之間的“微步”數量。這樣可以實現更好的分辨率和更平滑的旋轉,但是會損失扭矩。
示例:
下載:文件
復制代碼
Stepper1.onestep(FORWARD, DOUBLE); // take one step forward using double coil stepping Stepper1.onestep(FORWARD, DOUBLE); // take one step forward using double coil stepping
release()釋放電機上的保持扭矩。這樣可以減少熱量和電流需求,但電動機不會主動抵抗旋轉。
示例:
下載:文件
復制代碼
Stepper1.release(); // stop rotation and turn off holding torque. Stepper1.release(); // stop rotation and turn off holding torque.
資源
汽車創意和教程
維基百科上有很多有關步進電機的信息
關于步進電機類型的瓊斯
Jason關于對步進電機引線的反向工程
》
下載
本教程適用于現在古老的V1電動機護罩。您有可能使用的是V2,請查看教程https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino。該教程僅供歷史參考,并且僅供先前的客戶使用!
示意圖和布局
您可以獲取最新的Schematic Layout文件(來自github的EagleCAD格式。單擊頂部頂部的 ZIP下載按鈕以下載整個zip。
固件
AccelStepper庫,帶有AFMotor支持,該庫允許進行高級步進控制,包括加速和加速取消和并發的步進控制!您仍然需要上方的AFmotor!
要安裝,請單擊頁面中間的下載,選擇下載為 zip 并解壓縮該文件夾。
將該文件夾重命名為 AccelStepper (檢查是否已重命名)文件夾包含.cpp和.h文件),然后安裝到 Arduinosketches/libraries 文件夾中。有關如何使用和安裝庫的信息,請參見我們的教程!
具有微步進支持的Arduino Stepper/Servo軟件庫。通過Arduino庫管理器安裝此庫。
打開Arduino庫管理器:
搜索 Adafruit Motor Shield 庫并安裝
責任編輯:wv
-
電動機
+關注
關注
75文章
4114瀏覽量
96577
發布評論請先 登錄
相關推薦
評論