前一篇實驗了如何用電位器控制舵機。今天我們繼續了解另一種常見的電機—步進電機。
什麼是步進電機
步進電機(Stepper/Step/Stepping Motor),主要是依靠定子線圈序列通電,順次在不同的角度形成磁場,推拉定子旋轉。接觸步進電機時會有很多容易混淆的概念。比如單極性、雙極性、兩相八線、四相八線等等。主要是由於線圈的接法不同,我們先簡單地辯析一下:
按照電機驅動架構可分為單極性 (unipolar) 和雙極性 (bipolar) 步進電機。所謂的極性,就是電流通過線圈繞組產生磁場的極性,單極性就是只有一個磁極,雙極就是有兩個磁極。四相,八相是指步進電機的相數,即步進電機內部的線圈組數。電機的相數不同,步進電機接收到每個脈衝信號的角度也不同。通過不同的極性,不同的相數,線圈接法會得到不同的電機性能。
伺服電機不算是一種電機,而通常是包含電機、傳感器和控制器的電機系統。舵機是個俗稱,適用於航模上,其實是一種低端的但最常見的伺服電機系統,價格低廉但精度較低。
步進電機往往需要特定的驅動系統來提供並控制電流脈衝。本教程中我們實驗的步進電機屬於功率較小的,我們使用一個ULN2003晶片和Arduino配合驅動。ULN2003是由7個矽NPN複合電晶體組成,其主要作用就是把小電流變成大電流,ULN2003可以承受較高的工作電壓和電流。
ULN2003一共有16個引腳,根據datasheet,有七個輸入(IN)和對應的七個輸出(OUT),pin8接地,pin9接12V或者5V。
準備材料Arduino UNO 1塊
當然你也可以使用Arduino其它版本,比如Arduino Leonardo, Arduino Duemilanove。
Arduino USB線 1根
一端是A型,一端是B型的USB連接線,用來連接Arduino和電腦
迷你麵包板 1塊(可選)
麵包線/跳線 若干根
兩頭都是針頭的公對公麵包線若干
電位器 1個
步進電機 1個
ULN2003晶片 1顆
裝有Arduino IDE的Mac/PC/Linux 1臺
若沒有安裝,請參考《Arduino入門3: 安裝和熟悉Arduino IDE》安裝。
連接電路按照圖示連接好電路:
可以直接在File> Examples> Stepper> MotorKnob導入示例代碼。我們要稍微修改一下代碼。熟悉要根據電機參數調整布局電機轉一圈的參數。我們使用的28BYJ-48步進電機STEPS為64,最高速度大概設置為500或以下。
Stepper.h是Arduino IDE自帶的控制步進電機的標準庫。
Stepper(steps, pin1, pin2)Stepper(steps, pin1, pin2, pin3, pin4)
Stepper函數是用來創建步進電機實例的,共有兩種以上用法。steps代表電機轉一圈所用的步數。這個一般是步進電機出廠是就固定的。也可以通過步距角計算得出:
轉一圈的步數 = 360 / 步距角
pin1,pin2,pin3,pin4是連接至步進電機的引腳。根據電機的引線數確定,pin3,pin4是可選的。
setSpeed(rpms)函數是用來設置步進電機的速度,即每分鐘該轉的步數。
根據實例代碼,當你轉動電位器,步進電機也會轉動一定角度。
Arduino電子書和視頻教程獲取方式
也想要一份我們套件附送的Arduino電子書和各種視頻教程麼?
掃描下方二維碼加關注後,回復「福利」
戳閱讀原文,購買Arduino入門學習套件