關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 如何用RaspberryPi Pico來控制直流電機?

        如何用RaspberryPi Pico來控制直流電機?

        作者: 時間:2021-04-28 來源:EETOP 收藏

        由樹莓派基金會剛剛發布的RaspberryPi Pico(樹莓派Pico)是一個小巧而強大的板子,它可以為用戶提供了創建大大小小的項目的機會。其中一個項目是機器人,為此我們需要用到馬達。那么我們如何用RaspberryPi Pico來控制呢?我們可以把它們直接連接到GPIO嗎?

        本文引用地址:http://www.104case.com/article/202104/424990.htm

        答案是否定的。RaspberryPi Pico的GPIO引腳無法提供所需的電流,如果嘗試連接,很可能會損壞Pico。為此我們需要一個電機驅動器,充當Pico和電動機之間的橋梁。我們打開/關閉兩個PicoGPIO引腳,讓它們控制電機驅動器,電機驅動器輸出較大的電流來控制電機運動。

        對于這個小項目,將需要以下準備

        運行MicroPython的Raspberry Pi Pico安裝在您的電腦上的Thonny4 x公對公跳線半尺寸或全尺寸面包板電機驅動板。在我們的案例中,我們使用了DRV8833芯片,但L298或L9110S芯片應該也可以。5V / 6V。我們使用了一個微型齒輪金屬電機,電機需要2根公對公的跳線來連接到面包板上。

        如何用RaspberryPi Pico來控制直流電機?

        使用RaspberryPi Pico的直流電動機的硬件設置

        我們在該項目中使用的芯片是DRV8833,選定的特定版本是為面包板制作的,但是還有許多其他版本,包括設計用于嵌入機器人的版本。市場上還有其他電機控制器,例如L298D和L9110S,所有這些電機控制器都有相同的輸入/輸出約定。

        如何用RaspberryPi Pico來控制直流電機?

        將Raspberry Pi Pico放入面包板,使微型USB端口掛在面包板的末端。將DRV8833電機控制器放入面包板,使插針位于中間通道的兩側。使用跳線將Raspberry Pi Pico的VBUS引腳連接到DRV8833的VCC引腳。這將直接通過USB提供的5V為電機控制器供電。將Raspberry Pi Pico的GND引腳連接到DRV8833的GND引腳。將Raspberry Pi Pico的GPIO 14連接到DRV8833的IN1。將Raspberry Pi Pico的GPIO 15連接到DRV8833的IN2。將OUT1和OUT2連接至電動機的引腳

        如何用RaspberryPi Pico來控制直流電機?

        Raspberry Pi Pico直流電動機的軟件設置


        import utimefrom

        machine import Pin

        2.創建兩個對象,motor1a和motor1b。這些將存儲用作輸出的GPIO引腳號,以控制DRV8833電機控制器。

        motor1a = Pin(14, Pin.OUT)

        motor1b = Pin(15, Pin.OUT)

        3.創建一個使電動機“前進”的函數。為此,我們需要將一個引腳拉高,另一個引腳拉低。這繼而將我們的預期方向傳達給電機控制器,并且相應的輸出引腳將緊隨其后,迫使電機沿設定方向移動。

        def forward():

        motor1a.high()

        motor1b.low()

        4.創建一個向后移動的函數。這會看到GPIO引腳狀態反轉,從而導致電動機沿相反方向旋轉。

        def backward():

        motor1a.low()

        motor1b.high()

        5.創建一個停止電動機的函數。通過將兩個引腳都拉低,我們告訴電動機控制器停止電動機的所有運動。

        def stop():

        motor1a.low()

        motor1b.low()

        6.創建一個最終的“測試”函數,該函數將調用先前的函數并運行一個測試程序,該程序將使電動機“向前”旋轉兩秒鐘,再“向后”旋轉兩秒鐘。然后它將停止電動機。

        def test():

        forward()

        utime.sleep(2)

        backward()

        utime.sleep(2)

        stop()

        7.創建一個for循環,該循環將連續5次運行此測試函數

        for i in range(5):

        test()

        將代碼作為motor.py保存到Raspberry Pi Pico,然后單擊綠色箭頭以運行代碼。電機將雙向旋轉五次。



        關鍵詞: 直流電機

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 荔浦县| 北碚区| 米易县| 新建县| 黑山县| 海口市| 浦县| 兖州市| 长沙市| 东乡县| 合肥市| 讷河市| 东乡族自治县| 调兵山市| 芜湖市| 潼南县| 通辽市| 双辽市| 北海市| 高雄县| 靖江市| 祥云县| 商都县| 大余县| 彰化县| 阿荣旗| 嘉善县| 静宁县| 额济纳旗| 南澳县| 澄江县| 夏河县| 禄丰县| 昂仁县| 西城区| 柯坪县| 浦县| 霍邱县| 普兰店市| 泽普县| 灵山县|