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

用VHDL控制發(fā)光二極管
發(fā)光二極管封裝是什么,關(guān)于發(fā)光二極管封裝的詳解
三極管作為開關(guān)控制發(fā)光二極管仿真分析(二)

評(píng)論