GPIO不止有輸入功能,還有輸出功能,大家應(yīng)該經(jīng)常看到電子設(shè)別上的LED燈吧,這就是典型的IO輸出控制的設(shè)備,我們也來試一試。
硬件接線
我們將一個(gè)LED燈的正極連接到了2號引腳,這是5V電源,用來給LED供電的,不過LED電阻小,為了不至于燒壞,我們最好還是在電路中串聯(lián)一個(gè)電阻來限制電流大小。
接下來,當(dāng)LED的負(fù)極接到GND,也就是電源的0V上時(shí),LED兩邊會(huì)因?yàn)橛须妱莶疃稽c(diǎn)亮;當(dāng)LED的負(fù)極也連接到高電平,也就是5V的時(shí)候,會(huì)因?yàn)閮蛇厸]有電勢差,也就不會(huì)被點(diǎn)亮。
這個(gè)負(fù)極的電平信號我們就用GPIO來輸出,所以我們把LED的負(fù)極連接到任意的GPIO引腳上,比如38號,將這個(gè)引腳設(shè)置為輸出模式,當(dāng)輸出高電平時(shí),燈就會(huì)熄滅,輸出低電平,燈就會(huì)被點(diǎn)亮。
把這兩個(gè)動(dòng)作放到一個(gè)循環(huán)中,就可以實(shí)現(xiàn)閃爍的功能啦。
運(yùn)行示例程序
快來運(yùn)行例程試一試吧,按照剛才的設(shè)置,將實(shí)物連接完成,然后連接到X3Pi,運(yùn)行程序,就可以看到這個(gè)LED就會(huì)開始閃爍了。
$ sudo python3 simple_input.py
代碼解析
simple_out.py:
#!/usr/bin/env python3
import Hobot.GPIO as GPIO
import time
# 定義使用的GPIO通道為38
output_pin = 38 # BOARD 編碼 38
def main():
# 設(shè)置管腳編碼模式為硬件編號 BOARD
GPIO.setmode(GPIO.BOARD)
# 設(shè)置為輸出模式,并且初始化為高電平
GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.HIGH)
# 記錄當(dāng)前管腳狀態(tài)
curr_value = GPIO.HIGH
print("Starting demo now! Press CTRL+C to exit")
try:
# 間隔1秒時(shí)間,循環(huán)控制LED燈亮滅
while True:
time.sleep(1)
GPIO.output(output_pin, curr_value)
curr_value ^= GPIO.HIGH
finally:
GPIO.cleanup()
if __name__=='__main__':
main()
-
電源
+關(guān)注
關(guān)注
184文章
17836瀏覽量
251796 -
機(jī)器人
+關(guān)注
關(guān)注
211文章
28641瀏覽量
208412 -
輸出控制器
+關(guān)注
關(guān)注
0文章
7瀏覽量
7072 -
數(shù)字輸出
+關(guān)注
關(guān)注
0文章
24瀏覽量
8946 -
數(shù)字輸入
+關(guān)注
關(guān)注
0文章
20瀏覽量
7858
發(fā)布評論請先 登錄
相關(guān)推薦
評論