色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用樹莓派GPIO口點亮雙色LED燈

CHANBAEK ? 來源:容里與良鹿 ? 作者:張凱 ? 2023-07-04 11:34 ? 次閱讀

上一篇文章向大家介紹樹莓派硬件部分、安裝操作系統及基礎設置。這篇文章將介紹樹莓派的強大的開發功能口——GPIO,以及利用GPIO口點亮雙色LED燈(樹莓派的第一個基本實驗)。具有一定的參考價值,需要的朋友可以參考一下。

一、從了解GPIO開始

GPIO全稱:通用型輸入輸出端口(General-purpose input/output),其引腳能夠供使用者自由的進行使用,可以對其進行輸入,也可以讀取其數據進行數據輸出,這些引腳的輸入或輸出都會關聯到某個寄存器,寄存器的值控制引腳的電平高低。

樹莓派引腳分類

  • 電源引腳:5v,3.3v,GND(Ground)。
  • 常規GPIO控制引腳:可以通過編寫程序控制這些引腳的高低電平。
  • 特殊GPIO通訊引腳: SPI通訊,12C通訊,TxD/RxD串口通訊。
    樹莓派引腳編碼
  • 功能物理引腳:這種編碼方式是按照樹莓派主板上引腳排針編號。分別對應1~40號排針。從左到右,從上到下:左邊奇數,右邊偶數。
  • BCM:這種方式是參考 Broadcom SOC的通道編號側重CPU寄存器。使用Python控制樹莓派引腳時,使用的是WiringPi編碼。
  • WiringPi編碼:WiringPi編碼,把擴展GPIO端口從0開始編碼。使用 C語言控制樹莓派引腳時,使用的是WiringPi編碼。
    圖片
    窗口查看引腳編號
    1、在終端輸入指令:
    pinout
    

圖片

2、使用樹莓派輸入gpio readall命令查看pin狀態

  • 輸入以下命令安裝Git:
sudo apt install git-core
  • 輸入以下命令,將 WiringPi 文件下載到樹莓派系統的當前目錄。
sudo git clone https://github.com/WiringPi/WiringPi
  • 耐心等待其安裝完成。下載完成后,我們可以在當前目錄下看到一個WiringPi文件夾。如下所示。

圖片

  • 輸入以下命令進入 WiringPi 文件夾目錄。
cd WiringPi/
  • 輸入以下命令安裝 WiringPi。
sudo ./build

圖片

圖片

  • 耐心等待它的安裝完成。當我們看到下面的界面沒有任何錯誤時,就意味著安裝完成了。
  • 輸入以下命令查看gpio的版本。
gpio -v

圖片

  • 最后,我們可以查看樹莓派各個管腳的狀態,輸入指令:
gpio readall

圖片

使用RPi.GPIO模塊

RPi.GPIO是Python的一個模塊,樹莓派默認已經安裝了該模塊。本節詳細介紹如何使用Python的RPi.GPIO模塊控制GPIO。

1、導入RPi.GPIO模塊

import RPi.GPIO as GPIO

2、設置指定模式(強制)管腳編號

GPIO.setmode(GPIO.BOARD)  #物理引腳編碼
GPIO.setmode(GPIO.BCM)    #BCM編碼

3、設置禁用警告

如果GRIO檢測到一個引腳已經被設置成了非默認值,可以使用setwarnings()關閉警告信息

GPIO.setwarnings(False)

4、設置引腳輸入和輸出

要將通道配置為輸入:

GPIO.setup(channel, GPIO.IN)
要將通道設置為輸出,請調用:
GPIO.setup(channel, GPIO.OUT)

為輸出通道指定一個初始值:

GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)

將通道設置為輸出時,同時設置多個通道:

channels = [18, 12, 13]
GPIO.setup(channels, GPIO.OUT)

要讀取通道的值:

GPIO.input(channel)  #返回 GPIO.LOW 或 GPIO.HIGH。

要設置配置為輸出的引腳的值:

GPIO.output(channel, state)

其中狀態可以是 GPIO.LOW 或 GPIO.HIGH。

還可以輸出到通道列表或元組:

channels = [18, 12, 13] 
GPIO.output(channels, GPIO.HIGH) # or GPIO.LOW
GPIO.output(channel, (GPIO.LOW, GPIO.HIGH, GPIO.HIGH))

5、清理所有使用的通道

在程序結束時,最好清理通道,以便將所有引腳設置為默認狀態。

GPIO.cleanup()

二、實驗——樹莓派GPIO口控制雙色LED燈

1、簡介

雙色LED燈(雙基色 LED燈),是指模塊只能顯示2種顏色,一般是紅色和綠色,可以有三種狀態:滅、顏色1亮、顏色2亮;根據顏色組合的不同,分為紅藍雙色,黃藍雙色,紅綠雙色等等。雙色 LED常于指示狀態:比如紅色表示設備異常,綠色表示正常。

圖片

2、組件

1、樹莓派主板*1

2、樹莓派電源*1

3、40P軟排線*1

4、雙色LED模塊*1

5、面包板*1

6、杜邦線、跳線若干

3、實驗原理

將引腳S(綠色)和中間管腳R(紅色)連接到樹莓派的GPO 接口上,對樹莓派進行編程控制,將LED的顏色從紅色變為綠色,然后使用PWM混合其他顏色。

該模塊的原理圖如下所示:

圖片

4、實驗步驟

連接電路。將樹莓派通過T型轉接板連接到面包板,樹莓派GPIO 11即T型轉接板GPIO 17,“紅白線”連接雙色LED模塊R端子;樹莓派GPIO 12 即T型轉接板GPIO 18,“綠白線”連接雙色LED模塊G端子;樹莓派GND即T型轉接板GND,“黑線”連接雙色LED模塊GND端子。

樹莓派 面包板 雙色LED模塊
GPIO1 GPIO18 G(S)
GPIO0 GPIO17 R(中間)
GND GND GND

圖片

圖片

5、代碼實現

WM的頻率:P決定了輸出的數字信號on (1) 和 off(0 )的切換速度,頻率越高,切換就越快。

占空比:指一串理想脈沖序列中,正脈沖的持續時間與脈沖總周期的比值,用來調節燈的亮度。

import RPi.GPIO as GPIO
import time


colors = [0xFF00, 0x00FF, 0x0FF0, 0xF00F]
makerobo_pins = (11, 12)  # PIN管腳字典


GPIO.setmode(GPIO.BOARD)     # 采用實際的物理管腳給GPIO口
GPIO.setwarnings(False)      # 去除GPIO口警告
GPIO.setup(makerobo_pins, GPIO.OUT)   # 設置Pin模式為輸出模式
GPIO.output(makerobo_pins, GPIO.LOW)  # 設置Pin管腳為低電平(0V)關閉LED


p_R = GPIO.PWM(makerobo_pins[0], 2000)  # 設置頻率為2KHz
p_G = GPIO.PWM(makerobo_pins[1], 2000)  # 設置頻率為2KHz


# 初始化占空比為0(led關閉)
p_R.start(0)     
p_G.start(0)


def makerobo_pwm_map(x, in_min, in_max, out_min, out_max):
    return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min


def makerobo_set_Color(col):   # 例如:col = 0x1122
    R_val = col  > > 8
    G_val = col & 0x00FF
    # 把0-255的范圍同比例縮小到0-100之間
    R_val = makerobo_pwm_map(R_val, 0, 255, 0, 100)
    G_val = makerobo_pwm_map(G_val, 0, 255, 0, 100)


    p_R.ChangeDutyCycle(R_val)     # 改變占空比
    p_G.ChangeDutyCycle(G_val)     # 改變占空比


# 調用循環函數
def makerobo_loop():
    while True:
        for col in colors:
            makerobo_set_Color(col)
            time.sleep(0.5)
# 釋放資源
def makerobo_destroy():
    p_G.stop()
    p_R.stop()
    GPIO.output(makerobo_pins, GPIO.LOW)    # 關閉所有LED
    GPIO.cleanup()                          # 釋放資源


# 程序入口
if __name__ == "__main__":
    try:
        makerobo_loop()       # 調用循環函數
    except KeyboardInterrupt:  # 當按下Ctrl+C時,將執行destroy()子程序。
        makerobo_destroy()    # 釋放資源
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led燈
    +關注

    關注

    22

    文章

    1592

    瀏覽量

    107950
  • 操作系統
    +關注

    關注

    37

    文章

    6801

    瀏覽量

    123285
  • 串口通訊
    +關注

    關注

    1

    文章

    258

    瀏覽量

    24914
  • GPIO
    +關注

    關注

    16

    文章

    1204

    瀏覽量

    52055
  • 樹莓派
    +關注

    關注

    116

    文章

    1706

    瀏覽量

    105608
收藏 人收藏

    評論

    相關推薦

    基于51單片機通過GPIO點亮LED

    在之前的教程中,我們成功搭建了開發環境,初步對開發板的GPIO有了一定的了解,在本教程中,我們將帶領大家制作第一個工程,就是通過GPIO點亮
    發表于 07-17 14:18 ?5925次閱讀
    基于51單片機通過<b class='flag-5'>GPIO</b><b class='flag-5'>口</b><b class='flag-5'>點亮</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>

    樹莓2控制一個LED

    ` 本帖最后由 348081236 于 2016-1-19 16:57 編輯 這個教程教你怎樣用樹莓控制一個LED。這是比較基礎、簡單、適合新手的。先從一個
    發表于 01-19 16:55

    【MaaXBoard開發板試用體驗】九終于通過GPIO點亮LED

    `折騰了一周,終于用GPIO點亮LED了,拍照留念下!說說GPIO,以為和 樹莓
    發表于 10-31 21:57

    樹莓如何點亮一個LED

    本章將簡介在樹莓派上面通過shell,sysfs,bcm2835,wiringPi,python等不同的編程方式點亮一個LED
    發表于 11-05 07:04

    樹莓GPIO有哪些電氣特性

    GPIO是如何去定義的?樹莓GPIO有哪些電氣特性?
    發表于 11-08 07:30

    如何利用stm32的GPIO點亮一個LED

    stm32的GPIO的基本結構是怎樣構成的?stm32的GPIO的工作模式有哪幾種呢?如何利用stm32的GPIO
    發表于 12-15 07:04

    LED實驗的相關資料下載

    樹莓LED實驗簡介一、實驗效果二、組件三、實驗原理四、實驗步驟五、代碼實現簡介
    發表于 01-05 07:12

    樹莓gpio接口及編程方法

    樹莓現在越來越火,網上樹莓的資料也越來越多。樹莓源自英國,國外嵌入式開源領域具有良好的分享
    發表于 11-22 11:54 ?6.5w次閱讀

    樹莓gpio有什么用_怎么用

    樹莓現在越來越火,網上樹莓的資料也越來越多。樹莓源自英國,國外嵌入式開源領域具有良好的分享
    發表于 12-06 09:05 ?1.6w次閱讀

    STM32的GPIO輸出編程實例之點亮LED

    本實驗通過STM32的三個GPIO驅動三LED的三個通道,將GPIO設置為推挽輸出模式,采用灌電流的方式與
    的頭像 發表于 02-07 11:14 ?2.8w次閱讀
    STM32的<b class='flag-5'>GPIO</b>輸出編程實例之<b class='flag-5'>點亮</b>三<b class='flag-5'>色</b><b class='flag-5'>LED</b>

    樹莓GPIO入門07-利用聲音傳感器制作聲控

    本文我們用聲音傳感器來制作一個簡易的聲控。最終效果樹莓GPIO入門07-利用聲音傳感器制作聲控視頻演示:硬件面包板杜邦
    發表于 04-02 14:41 ?2097次閱讀

    樹莓教程1_點亮第一個led

    ,不知不覺中,我們已經成為了人們口中常常提到的“一大師?”。今天,我們來學習樹莓的使用,依舊從點燈開始,用點燈的方式一步步點亮我們的世界。?實驗原理同過
    發表于 04-02 14:45 ?1796次閱讀

    關閉樹莓電源LED,禁用wifi、藍牙

    在關閉樹莓的電源指示和狀態指示中,對關閉樹莓指示
    發表于 01-06 11:55 ?3次下載
    關閉<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>電源<b class='flag-5'>LED</b><b class='flag-5'>燈</b>,禁用wifi、藍牙

    樹莓zero不亮_關閉樹莓的電源、狀態、網指示

    關閉樹莓的指示我有幾個樹莓放在房間內,每天晚上都看到指示的閃光,感覺有
    發表于 01-11 09:28 ?9次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>zero不亮_關閉<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的電源、狀態、網<b class='flag-5'>口</b>指示<b class='flag-5'>燈</b>

    基于樹莓點亮RGB三基色LED

    上一篇實現了樹莓的第一個基礎實驗——點亮LED
    的頭像 發表于 07-04 11:34 ?2091次閱讀
    基于<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>點亮</b>RGB三基色<b class='flag-5'>LED</b><b class='flag-5'>燈</b>
    主站蜘蛛池模板: 好男人午夜www视频在线观看| 99热在线视频这里只精品| 亚洲人日本人jlzzy| 一道本无吗d d在线播放| 最近高清日本免费| bt成人种子| 国产成人高清精品免费观看| 日韩欧美视频一区二区| 无码99久热只有精品视频在线| 国产精品免费一区二区区| 国产原创中文视频| 开心久久激情| 色戒在线完整观看在线播放版| 亚欧日韩毛片在线看免费网站| 伊人久在线观看视频| 办公室中文BD| 娇妻被朋友玩得呻吟在线电影| 麻豆国产精品AV色拍综合| 人人听力网mp3下载| 亚洲精品久久久久久久蜜臀老牛 | 中文字幕亚洲乱码熟女在线萌芽| 2021全国精品卡一卡二| 丰满的美女射精动态图| 国内卡一卡二卡三免费网站| 男女床上黄色| 先锋资源av| 99国产在线观看| 国产永久免费观看视频软件| 你的欲梦裸身在线播放| 伊人久久国产精品| 一品道门在线视频| 国产美女裸身网站免费观看视频 | www.三级| 久久久久久极精品久久久| 色久天| 在线视频 国产精品 中文字幕| 超碰在线97av视频免费| 久久久久亚洲| 亚洲精品视频久久| 国产WW高清大片免费看| 日本aa大片|