學(xué)習(xí)了GPIO的輸入與輸出功能后,我們就可以做一些自動(dòng)化的功能了。
硬件接線
比如我們同時(shí)連接一個(gè)按鍵和LED燈,嘗試實(shí)現(xiàn)按鍵被按下,燈被點(diǎn)亮,松開,燈熄滅,這樣的功能。
運(yùn)行示例程序
我們通過這個(gè)例程來試一試效果如何?
$ sudo python3 button_led.py
我們來看一下具體的操作,同樣的,按照剛才的設(shè)置,將實(shí)物連接完成,然后連接到X3Pi,運(yùn)行剛才的程序。按下按鍵后,就可以看到LED被點(diǎn)亮了,松開之后,LED就熄滅了。
代碼解析
button_led.py
#!/usr/bin/env python3
import Hobot.GPIO as GPIO
import time
# 定義使用的GPIO通道:
# 36號(hào)作為輸出,可以點(diǎn)亮一個(gè)LED
# 38號(hào)作為輸入,可以接一個(gè)按鈕
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()
基本的配置還是一樣的,引入基本的庫,然后設(shè)置為BOARD模式,然后初始化兩個(gè)管腳,一個(gè)用來讀取按鍵的通斷,一個(gè)用來控制LED的亮滅,之后只需要判斷按鍵的狀態(tài)來做出對(duì)應(yīng)的控制LED的動(dòng)作就可以了。
-
led
+關(guān)注
關(guān)注
242文章
23794瀏覽量
672581 -
程序
+關(guān)注
關(guān)注
117文章
3825瀏覽量
82702 -
數(shù)字輸出
+關(guān)注
關(guān)注
0文章
28瀏覽量
9040 -
數(shù)字輸入
+關(guān)注
關(guān)注
0文章
37瀏覽量
7968
發(fā)布評(píng)論請(qǐng)先 登錄
DPDK安裝教程和DPDK程序運(yùn)行收發(fā)包示例程序及性能對(duì)比實(shí)驗(yàn)的詳細(xì)概述

Python使用示例程序和工程文件免費(fèi)下載

STM32 之 標(biāo)準(zhǔn)外設(shè)版USB驅(qū)動(dòng)庫詳解(架構(gòu)+文件+函數(shù)+使用說明+示例程序)

ADS1256+STM32F103RCTx示例程序
CP Software Cluster示例程序介紹

評(píng)論