0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

電子設(shè)計 ? 來源:EETOP ? 作者:EETOP ? 2021-04-28 10:09 ? 次閱讀

樹莓派基金會剛剛發(fā)布的RaspberryPi Pico(樹莓派Pico)是一個小巧而強大的板子,它可以為用戶提供了創(chuàng)建大大小小的項目的機會。其中一個項目是機器人,為此我們需要用到馬達。那么我們?nèi)绾斡肦aspberryPi Pico來控制直流電機呢?我們可以把它們直接連接到GPIO嗎?

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

對于這個小項目,將需要以下準(zhǔn)備

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

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

使用RaspberryPi Pico的直流電動機的硬件設(shè)置

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

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

將Raspberry Pi Pico放入面包板,使微型USB端口掛在面包板的末端。將DRV8833電機控制器放入面包板,使插針位于中間通道的兩側(cè)。使用跳線將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直流電動機的軟件設(shè)置

1. 建立電路后,連接您的Raspberry Pi Pico并打開Thonny應(yīng)用程序。用于設(shè)定擁有控制DRV8833電機控制器的輸出的I/O管腳。

import utimefrom

machine import Pin

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

motor1a = Pin(14, Pin.OUT)

motor1b = Pin(15, Pin.OUT)

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

def forward():

motor1a.high()

motor1b.low()

4.創(chuàng)建一個向后移動的函數(shù)。這會看到GPIO引腳狀態(tài)反轉(zhuǎn),從而導(dǎo)致電動機沿相反方向旋轉(zhuǎn)。

def backward():

motor1a.low()

motor1b.high()

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

def stop():

motor1a.low()

motor1b.low()

6.創(chuàng)建一個最終的“測試”函數(shù),該函數(shù)將調(diào)用先前的函數(shù)并運行一個測試程序,該程序?qū)⑹闺妱訖C“向前”旋轉(zhuǎn)兩秒鐘,再“向后”旋轉(zhuǎn)兩秒鐘。然后它將停止電動機。

def test():

forward()

utime.sleep(2)

backward()

utime.sleep(2)

stop()

7.創(chuàng)建一個for循環(huán),該循環(huán)將連續(xù)5次運行此測試函數(shù)

for i in range(5):

test()

將代碼作為motor.py保存到Raspberry Pi Pico,然后單擊綠色箭頭以運行代碼。電機將雙向旋轉(zhuǎn)五次。
責(zé)任編輯:pj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 驅(qū)動器
    +關(guān)注

    關(guān)注

    52

    文章

    8237

    瀏覽量

    146383
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16367

    瀏覽量

    178115
  • 直流電機
    +關(guān)注

    關(guān)注

    36

    文章

    1710

    瀏覽量

    70188
收藏 人收藏

    評論

    相關(guān)推薦

    控制直流電機的正轉(zhuǎn)反轉(zhuǎn)和PWM調(diào)速直流電機驅(qū)動,單片機...

    控制直流電機的正轉(zhuǎn)反轉(zhuǎn)和PWM調(diào)速直流電機驅(qū)動,單片機與L298之間如何用光耦隔離?
    發(fā)表于 12-06 15:54

    單片機控制直流電機

    何用單片機控制直流電機,需要準(zhǔn)備什么?能發(fā)一下代碼嗎?我現(xiàn)在有51單片機的控制板和一個直流電機
    發(fā)表于 07-12 15:57

    何用dsp控制直流電機風(fēng)扇散熱達到恒溫效果?

    何用dsp控制直流電機風(fēng)扇散熱達到恒溫效果,基于pid控制原理
    發(fā)表于 05-12 09:38

    直流電機

    什么是直流電機 使用直流電源的電機叫做直流電機。因此只要把直流電機的端子接到直流電源上,就可以
    發(fā)表于 01-09 15:05 ?4042次閱讀
    <b class='flag-5'>直流電機</b>

    直流電機PWM控制

    直流電機PWM控制設(shè)計:基于VHDL語言實現(xiàn)直流電機PWM控制設(shè)計,有仿真,有程序,有結(jié)論
    發(fā)表于 11-08 18:51 ?52次下載

    微型直流電機非常容易控制的原因

    電機的應(yīng)用中,微型直流電機是非常容易控制的,為什么這么說呢? 對比交流電機,微型直流電機是通過直流電
    的頭像 發(fā)表于 11-14 11:53 ?3064次閱讀

    直流電機控制

    直流電機控制說明。
    發(fā)表于 05-19 09:45 ?36次下載

    直流電機PWM控制

    直流電機PWM控制(電源技術(shù)屬于哪個期刊)-直流電機PWM控制,有需要的可以參考!
    發(fā)表于 09-15 15:29 ?142次下載
    <b class='flag-5'>直流電機</b>PWM<b class='flag-5'>控制</b>

    何用Arduino驅(qū)動直流電機

    電子發(fā)燒友網(wǎng)站提供《如何用Arduino驅(qū)動直流電機.zip》資料免費下載
    發(fā)表于 11-17 14:44 ?1次下載
    如<b class='flag-5'>何用</b>Arduino驅(qū)動<b class='flag-5'>直流電機</b>

    直流電機控制的基本方法

    直流電機是一種最基本的電動機類型之一,其速度和方向可以通過控制電流來實現(xiàn)。直流電機常常作為工業(yè)控制系統(tǒng)的主要組成部分,其他領(lǐng)域也廣泛應(yīng)用。
    發(fā)表于 03-26 22:21 ?7367次閱讀

    arduino直流電機

    這一期我們學(xué)習(xí)如何控制直流電機。 需要材料:Arduino UNO 直流電機——本文以12V額定電機為例
    發(fā)表于 03-30 13:46 ?3次下載
    arduino<b class='flag-5'>直流電機</b>

    ros與arduino通信控制直流電機

    前言:在成功通過arduino開發(fā)板控制直流電機后,開始嘗試用ros與arduino通信控制直流電機,為無人小車作準(zhǔn)備 硬件 ardui
    發(fā)表于 03-31 11:45 ?4次下載
    ros與arduino通信<b class='flag-5'>控制</b><b class='flag-5'>直流電機</b>

    何用編碼器控制直流電機

    電子發(fā)燒友網(wǎng)站提供《如何用編碼器控制直流電機.zip》資料免費下載
    發(fā)表于 06-25 11:20 ?5次下載
    如<b class='flag-5'>何用</b>編碼器<b class='flag-5'>控制</b><b class='flag-5'>直流電機</b>

    使用Arduino控制直流電機

    電子發(fā)燒友網(wǎng)站提供《使用Arduino控制直流電機.zip》資料免費下載
    發(fā)表于 07-03 11:04 ?2次下載
    使用Arduino<b class='flag-5'>來</b><b class='flag-5'>控制</b><b class='flag-5'>直流電機</b>

    直流電機的勵磁是直流電嗎?直流電機勵磁的作用?

    是指直流電機的勵磁線圈直接與電機繞組相連,形成閉路,通過在繞組中產(chǎn)生磁場達到勵磁的目的。根據(jù)勵磁電源的不同,自勵磁又可以分為磁場電源自勵磁和電樞電源自勵磁兩種方式。 磁場電源自勵磁是指通過將一定的
    的頭像 發(fā)表于 01-18 16:07 ?3021次閱讀