上一節(jié)我們講了樹莓派可以通過輸入輸出(I/O)來與現(xiàn)實(shí)世界進(jìn)行溝通。今天我們實(shí)際操作一下,通過樹莓派的GPIO來控制發(fā)光二極管,體驗(yàn)計(jì)算機(jī)如何通過程序來控制實(shí)際的電路。
需要的材料
要完成本節(jié)的實(shí)驗(yàn),需要準(zhǔn)備如下的電子原件:
- 一個(gè)發(fā)光二極管,顏色不限
- 一個(gè)500-2K歐姆的電阻。我使用的是1K歐姆的電阻。
- 兩條跳線
- 面包板(可選,沒有面包板,需要把元器件直接連接,容易出問題)
- 樹莓派GPIO擴(kuò)展組件(可選)
下面我們來逐個(gè)介紹一f下這些原器件,已經(jīng)知道的同學(xué)可以跳過。
發(fā)光二極管
是二極管的一種,二極管的主要特性是整流,既電流只能正向流過,反方向會(huì)被阻斷。發(fā)光二極管也叫LED,當(dāng)電流正向流過時(shí)可以發(fā)光,有很多顏色可選,主要用途是標(biāo)識(shí)電路的工作狀態(tài),最常見的是各種電器電源指示燈,表示現(xiàn)在電器已經(jīng)通電正在工作中。在電路中二極管的符號(hào)如下
電阻
顧名思義,電阻主要是阻擋電流通過,控制電路中電流的大小。用歐姆(符號(hào)是Ω)來表示電阻大小,今天我們使用的1K歐姆電阻可以幫助保護(hù)樹莓派,發(fā)光二極管正向電阻基本為0,如果沒有電阻保護(hù),二極管發(fā)光時(shí)的電流過大,會(huì)燒毀樹莓派。電阻的符號(hào)有如下2種:
面包板
是用于實(shí)驗(yàn)和設(shè)計(jì)電路的特別好的工具,它上面有很多小插孔,可以插入各種電子元件,非常適合進(jìn)行電路調(diào)試和設(shè)計(jì)。
面包板上下標(biāo)有+,-符號(hào)的是電源區(qū),每行是相通的,用來連接外部的電源,通常用上面的+連接外部電源正極,下面的-連接電源負(fù)極。中間部分標(biāo)有ABCD...的是元件區(qū),ABCDE是豎著相通的,下面的FGHIJ也是豎著相通的。
跳線
跳線是用來連接不同元件的,有公對(duì)公,公對(duì)母,母對(duì)母三種。
如果不用面包板,用跳線直接連GPIO時(shí),跳線的一端必須是母頭,以插到GPIO的引腳上,我們使用面包板和GPIO擴(kuò)展,所以使用的公對(duì)公跳線。
樹莓派GPIO擴(kuò)展組件
直接讓元器件直連GPIO雖然可行,但容易出現(xiàn)短路,連接不牢等問題,所以最好使用擴(kuò)展組件+面包板的組合,這樣搭起電路來更方便。市場(chǎng)上的GPIO擴(kuò)展組件比較多,我使用的是一個(gè)擴(kuò)展電路板+擴(kuò)展排線的方式。下圖中擴(kuò)展電路板已經(jīng)與排線連好了。
好,現(xiàn)在我們的全部元器件都準(zhǔn)備好了。
現(xiàn)在我們按下面的電路把這些元器件連起來
引腳1是3.3V的電源,GND可以連接GPIO的引腳6或者14等(標(biāo)識(shí)為GND的引腳都可以)。
這時(shí)給樹莓派通電開機(jī),連接電路后可以看到二極管亮起來。這樣做的目的是確保電路連接正常,方便接下來的程序控制。
接下來我們把連接電源的跳線(上圖為紅色線)換到GPIO27(第12號(hào)引腳),LED燈熄滅了,因?yàn)镚PIO默認(rèn)為輸入,現(xiàn)在是低電壓,沒法讓燈亮起來。
控制LED的Python程序
現(xiàn)在讓我們開始編寫代碼來控制連接到GPIO27的LED電路吧。代碼如下:
import RPi.GPIO as GPIO #需要使用別人寫好的類庫
from time import sleep #需要使用別人寫好的類庫
GPIO.setmode(GPIO.BCM)
GPIO.setup(27,GPIO.OUT) #這2句把GPIO27設(shè)置為輸出模式
while True:
GPIO.output(27,True) #在GPIO輸出高電位1,此時(shí)LED亮
sleep(1) #等1秒
GPIO.output(27,False) #在GPIO輸出低電位0,此時(shí)LED滅
sleep(1) #等待1秒
用上面的程序,可以讓LED亮1秒暗1秒,直到程序退出。如果你連接的不是GPIO27,請(qǐng)把上面代碼的27換成你實(shí)際連接的GPIO編號(hào)。(你也可以嘗試修改sleep的時(shí)間,比如改為0.2, 3等來試一下不同的LED閃爍效果)
現(xiàn)在我們體會(huì)到了用程序和GPIO控制實(shí)際電路是怎么回事了,你可能對(duì)上面的Python代碼還不了解,下一講我們將對(duì)此進(jìn)行詳細(xì)講解,同時(shí)換另一種更簡(jiǎn)介的代碼來控制LED。
-
led
+關(guān)注
關(guān)注
242文章
23336瀏覽量
662214 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7529瀏覽量
88408 -
發(fā)光二極管
+關(guān)注
關(guān)注
13文章
1203瀏覽量
66421 -
GPIO
+關(guān)注
關(guān)注
16文章
1216瀏覽量
52266 -
樹莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105791
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論