精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

怎樣用Tkinter控制樹莓派GPIO引腳

454398 ? 來源:工程師吳畏 ? 2019-08-02 17:55 ? 次閱讀

對于這個項目,你需要:

Raspberry Pi

2 x LED

跳線電纜

面包板

電路圖和說明

電路圖非常簡單。我們只需要使用220歐姆電阻將兩個LED連接到Raspberry Pi上的GPIO 20和21。將引腳連接到每個LED的正極,并將每個LED的負極與220歐姆電阻連接到地。

怎樣用Tkinter控制樹莓派GPIO引腳

完整的Python代碼

用于控制Raspberry Pi的GPIO的Python代碼通過GUI應用程序的引腳可以在下面找到。將此代碼復制并粘貼到新文件中,并使用文件擴展名保存:.py(例如,GUItest.py)。確保您位于同一目錄中,然后使用命令 python GUItest.py 從終端運行程序。

import Tkinter as tk

import RPi.GPIO as GPIO

from time import sleep

GPIO21 = 21

GPIO20 = 20

GPIO.setmode(GPIO.BCM)

GPIO.setup(GPIO21, GPIO.OUT)

GPIO.setup(GPIO20, GPIO.OUT)

master = tk.Tk()

master.title(“GPIO Control”)

master.geometry(“300x100”)

GPIO21_state = True

GPIO20_State = True

def GPIO21button():

global GPIO21_state

if GPIO21_state == True:

GPIO.output(GPIO21, GPIO21_state)

GPIO21_state = False

ONlabel = tk.Label(master, text=“Turned ON”, fg=“green”)

ONlabel.grid(row=0, column=1)

else:

GPIO.output(GPIO21, GPIO21_state)

GPIO21_state = True

ONlabel = tk.Label(master, text=“Turned OFF”, fg=“red”)

ONlabel.grid(row=0, column=1)

def GPIO20button():

global GPIO20_State

if GPIO20_State == True:

GPIO.output(GPIO20, GPIO20_State)

GPIO20_State = False

OFFlabel = tk.Label(master, text=“Turned ON”, fg=“green”)

OFFlabel.grid(row=1, column=1)

else:

GPIO.output(GPIO20, GPIO20_State)

GPIO20_State = True

OFFlabel = tk.Label(master, text=“Turned OFF”, fg=“red”)

OFFlabel.grid(row=1, column=1)

ONbutton = tk.Button(master, text=“GPIO 21”, bg=“blue”, command=GPIO21button)

ONbutton.grid(row=0, column=0)

OFFbutton = tk.Button(master, text=“GPIO 20”,bg=“blue” , command=GPIO20button)

OFFbutton.grid(row=1, column=0)

Exitbutton = tk.Button(master, text=“Exit”,bg=“red”, command=master.destroy)

Exitbutton.grid(row=2, column=0)

master.mainloop()

代碼演練

讓我們來看看代碼,看看每個部分的作用整個項目。

首先,我們為這個項目導入了所需的庫。 Tkinter庫幫助我們創建了GUI應用程序,RPi.GPIO庫控制著Raspberry Pi的GPIO引腳。

import Tkinter as tk

import RPi.GPIO as GPIO

from time import sleep

然后我們使用BCM引腳編號為我們的LED初始化了GPIO引腳21和20,將這些引腳聲明為輸出。

GPIO21 = 21

GPIO20 = 20

GPIO.setmode(GPIO.BCM)

GPIO.setup(GPIO21, GPIO.OUT)

GPIO.setup(GPIO20, GPIO.OUT)

之后,我們創建了Tk根小部件。只能有一個根小部件,它必須在任何其他小部件之前創建。

然后我們重命名該窗口的標題并定義其大小。

master = tk.Tk()

master.title(“GPIO Control”)

master.geometry(“300x100”)

當GPIO按下21按鈕,它將查找以前的狀態。如果前一個狀態為真(高狀態),它將使其為假(低狀態),反之亦然。

按鈕旁邊還有一個標簽,告訴我們LED是否為高電平或LOW。

def GPIO21button():

global GPIO21_state

if GPIO21_state == True:

GPIO.output(GPIO21, GPIO21_state)

GPIO21_state = False

ONlabel = tk.Label(master, text=“Turned ON”, fg=“green”)

ONlabel.grid(row=0, column=1)

else:

GPIO.output(GPIO21, GPIO21_state)

GPIO21_state = True

ONlabel = tk.Label(master, text=“Turned OFF”, fg=“red”)

ONlabel.grid(row=0, column=1)

GPIO 20按鈕的工作方式類似:

def GPIO20button():

global GPIO20_State

if GPIO20_State == True:

GPIO.output(GPIO20, GPIO20_State)

GPIO20_State = False

OFFlabel = tk.Label(master, text=“Turned ON”, fg=“green”)

OFFlabel.grid(row=1, column=1)

else:

GPIO.output(GPIO20, GPIO20_State)

GPIO20_State = True

OFFlabel = tk.Label(master, text=“Turned OFF”, fg=“red”)

OFFlabel.grid(row=1, column=1)

最后,我們創建了三個按鈕。其中兩個控制GPIO引腳20和21,第三個是退出按鈕。

ONbutton = tk.Button(master, text=“GPIO 21”, bg=“blue”, command=GPIO21button)

ONbutton.grid(row=0, column=0)

OFFbutton = tk.Button(master, text=“GPIO 20”,bg=“blue” , command=GPIO20button)

OFFbutton.grid(row=1, column=0)

Exitbutton = tk.Button(master, text=“Exit”,bg=“red”, command=master.destroy)

Exitbutton.grid(row=2, column=0)

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 樹莓派
    +關注

    關注

    116

    文章

    1699

    瀏覽量

    105531
  • gpio引腳
    +關注

    關注

    0

    文章

    7

    瀏覽量

    2624
收藏 人收藏

    評論

    相關推薦

    使用樹莓實現遠程控制的技巧

    樹莓是一款功能強大的微型計算機,其體積小巧、價格低廉,非常適合用于各種DIY項目。其中,遠程控制樹莓應用中非常受歡迎的一個領域。通過遠
    的頭像 發表于 11-11 11:37 ?292次閱讀

    樹莓開發的最佳編程語言選擇

    應用。 1. Python 優勢: 易學易用: Python以其簡潔的語法和強大的功能而聞名,非常適合初學者。 廣泛的庫支持: Python擁有大量的庫,如GPIO Zero、PiGPIO等,這些庫使得控制樹莓
    的頭像 發表于 11-11 11:34 ?234次閱讀

    ARM開發板與樹莓的比較

    ARM開發板和樹莓都是基于ARM架構的單板計算機,它們在教育、工業控制、物聯網等領域有著廣泛的應用。 硬件配置 ARM開發板和樹莓的硬件
    的頭像 發表于 11-05 11:11 ?247次閱讀

    樹莓gpio有什么,樹莓gpio接口及編程方法

    /Output,通用輸入/輸出)是樹莓提供的一組可編程的引腳,是樹莓與外部世界進行交互的重要橋梁。通過
    的頭像 發表于 10-22 18:09 ?510次閱讀

    什么是樹莓樹莓是什么架構的

    什么是樹莓 樹莓(Raspberry Pi,簡寫為RPi,別名為RasPi/RPI)是由英國“Raspberry Pi 慈善基金會”開發的一款為學習計算機編程教育而設計的微型電腦。
    的頭像 發表于 10-22 17:33 ?549次閱讀

    樹莓網關:物聯網應用的新標桿

    的特點是體積小巧(大約信用卡大小),但功能齊全,足以支持多種計算任務。 樹莓經常被用作物聯網網關,收集設備數據,然后將數據上傳云平臺,并還可以用來接收來自云端的控制指令,控制其他連接
    的頭像 發表于 10-09 16:44 ?245次閱讀
    類<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>網關:物聯網應用的新標桿

    樹莓和單片機的優缺點是什么

    (Raspberry Pi) 優點: 強大的處理能力 :樹莓配備了高性能的CPU和GPU,可以運行復雜的操作系統,如Linux和Windows 10 IoT Core。 豐富的擴展性 :通過GPIO(通用輸入輸出
    的頭像 發表于 08-30 18:21 ?1474次閱讀

    樹莓的功能用途是什么

    、科研、工業控制、物聯網、多媒體播放、家庭自動化等領域。 樹莓(Raspberry Pi)是一種小型、低成本的單板計算機,由英國的Raspberry Pi基金會開發,其功能和用途非常廣泛。以下是
    的頭像 發表于 08-30 18:01 ?2272次閱讀

    樹莓4b風扇插哪個引腳

    樹莓4B驅動風扇時,風扇可以插接的引腳主要取決于風扇的類型和所使用的控制方法。以下是一些常見的風扇插接引腳情況: 1. 直接連接法 對于簡
    的頭像 發表于 08-30 16:53 ?1230次閱讀

    樹莓gui開發什么ide

    樹莓(Raspberry Pi)是一款功能強大的微型計算機,可以運行多種操作系統,如Raspbian、Ubuntu等。在樹莓派上進行GUI(圖形用戶界面)開發,可以使用多種集成開發環境(IDE
    的頭像 發表于 08-30 16:49 ?700次閱讀

    樹莓5,Raspberry Pi 5 評測

    如果要安裝風扇,必須占用GPIO引腳,有時會阻礙HAT的使用。當CPU溫度達到50°C時,風扇會開始工作。在空閑時,散熱器將使樹莓5 的溫度保持在39.5°C,功耗為2.6瓦。進行壓
    發表于 06-19 14:51

    Waveshare推出樹莓紅外熱像儀,可智能檢測報警和過熱問題

    Waveshare近日推出針對樹莓的紅外線熱像儀。此設備能借助GPIO接口與樹莓派對接,拓展其功能領域。除正常的樹莓
    的頭像 發表于 05-20 14:45 ?616次閱讀

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?
    發表于 05-07 06:55

    stm32f100怎樣用重映射功能?

    的是stm32f100c8t6b芯片,現在想用將PB1映射為TIM1_CH3N,在調用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_
    發表于 05-07 06:06

    樹莓5的新功能和引腳介紹

    樹莓5(Raspberry Pi 5)于2023 年10 月底已經推出。
    的頭像 發表于 01-26 09:21 ?9141次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>5的新功能和<b class='flag-5'>引腳</b>介紹