學習了GPIO的輸入與輸出功能后,我們就可以做一些自動化的功能了。
硬件接線
比如我們同時連接一個按鍵和LED燈,嘗試實現按鍵被按下,燈被點亮,松開,燈熄滅,這樣的功能。
運行示例程序
我們通過這個例程來試一試效果如何?
$ sudo python3 button_led.py
我們來看一下具體的操作,同樣的,按照剛才的設置,將實物連接完成,然后連接到X3Pi,運行剛才的程序。按下按鍵后,就可以看到LED被點亮了,松開之后,LED就熄滅了。
代碼解析
button_led.py
#!/usr/bin/env python3
import Hobot.GPIO as GPIO
import time
# 定義使用的GPIO通道:
# 36號作為輸出,可以點亮一個LED
# 38號作為輸入,可以接一個按鈕
led_pin = 36 # BOARD 編碼 36
but_pin = 38 # BOARD 編碼 38
# 禁用警告信息
GPIO.setwarnings(False)
def main():
prev_value = None
# Pin Setup:
GPIO.setmode(GPIO.BOARD) # BOARD pin-numbering scheme
GPIO.setup(led_pin, GPIO.OUT) # LED pin set as output
GPIO.setup(but_pin, GPIO.IN) # Button pin set as input
# Initial state for LEDs:
GPIO.output(led_pin, GPIO.LOW)
print("Starting demo now! Press CTRL+C to exit")
try:
while True:
curr_value = GPIO.input(but_pin)
if curr_value != prev_value:
GPIO.output(led_pin, curr_value)
prev_value = curr_value
print("Outputting {} to Pin {}".format(curr_value, led_pin))
time.sleep(1)
finally:
GPIO.cleanup() # cleanup all GPIO
if __name__ == '__main__':
main()
基本的配置還是一樣的,引入基本的庫,然后設置為BOARD模式,然后初始化兩個管腳,一個用來讀取按鍵的通斷,一個用來控制LED的亮滅,之后只需要判斷按鍵的狀態來做出對應的控制LED的動作就可以了。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
led
+關注
關注
242文章
23277瀏覽量
660893 -
程序
+關注
關注
117文章
3787瀏覽量
81049 -
數字輸出
+關注
關注
0文章
24瀏覽量
8925 -
數字輸入
+關注
關注
0文章
20瀏覽量
7837
發布評論請先 登錄
相關推薦
DPDK安裝教程和DPDK程序運行收發包示例程序及性能對比實驗的詳細概述
本文檔的主要內容詳細介紹的是DPDK安裝教程和DPDK程序運行收發包示例程序及性能對比實驗的詳細概述。
發表于 09-03 08:00
?0次下載
STM32 之 標準外設版USB驅動庫詳解(架構+文件+函數+使用說明+示例程序)
STM32 之 標準外設版USB驅動庫詳解(架構+文件+函數+使用說明+示例程序)
發表于 12-08 20:36
?0次下載
ADS1256+STM32F103RCTx示例程序
的24位模擬-數字轉換器,而STM32F103RCTx是一種基于ARM Cortex-M3內核的微控制器,具有高性能和低功耗的特點。該示例程序提供了完整的源代碼,方便開發者學習和使用,同時也可作為基礎參考代碼用于實際項目開發。
發表于 09-07 09:48
?16次下載
CP Software Cluster示例程序介紹
AUTOSAR組織展示了基于ST Stellar系列單片機實現的CP Software Cluster示例程序,如圖3所示。 圖3 CP Software Cluster示例程序總覽 示例程序將軟件
評論