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