主要功能介紹:
- 全相與半相
- 控制旋轉角度
- 控制旋轉步數
- 控制旋轉方向
- 控制旋轉速度
- 歸零定位矯正
應用範例
假設 ULN2003 連到 ESP32 的 GPIO 腳位分別為 18, 5, 17, 16:
- 將以下程式碼先加入測試程式, 假設名為 test.py 中, 確認 ULN2003 連接的 MCU 的腳位, 並引用 myULN2003 的元件類別
- 若實際運作時, 轉向是相反的, 可將下面的程式碼改為 16, 17, 5, 18 即可
config = {'in1':18, 'in2':5, 'in3':17, 'in4':16}
import time
from MyKit_ULN2003 import myULN2003
motor = myULN2003(config['in1'], config['in2'], config['in3'], config['in4'])
範例一: 選擇全相或半相 (預設) 的控制方式
- 半相 (走全向的一半距離)
def test():
for _ in range(2):
motor.go_step(512)
time.sleep_ms(300)
test()
- 全相
motor.is_half = False
test()
範例二: 控制旋轉角度
def test():
for _ in range(8):
motor.go_degree(45)
time.sleep_ms(300)
test()
範例三: 控制旋轉步數
def test():
for _ in range(2):
motor.go_step(512)
time.sleep_ms(300)
test()
範例四: 控制旋轉方向
- 正轉
def test():
for _ in range(2):
motor.go_degree(45)
time.sleep_ms(300)
test()
- 反轉
motor.direction = False
test()
範例五: 控制旋轉速度
- 速度值為 0 (停止) ~ 10 (最快)
motor.speed(0) # 0~10
def test():
for sp in range(7, 11):
motor.speed(sp) # sp=7~10
motor.go_degree(45)
test()
範例六: 歸零定位矯正
- 若機構設計上, 裝上步進馬達的歸零角度, 一開始定位就有的誤差, 可以此做為修正微調定位角度至歸零 (HOME 點) 位置
- calibrate(微調的角度值) : 預設正轉, 負值反轉
def test():
motor.calibrate(5)