《樹莓派應(yīng)用開發(fā)》課程 第08章-樹莓派GPIO應(yīng)用_第1頁(yè)
《樹莓派應(yīng)用開發(fā)》課程 第08章-樹莓派GPIO應(yīng)用_第2頁(yè)
《樹莓派應(yīng)用開發(fā)》課程 第08章-樹莓派GPIO應(yīng)用_第3頁(yè)
《樹莓派應(yīng)用開發(fā)》課程 第08章-樹莓派GPIO應(yīng)用_第4頁(yè)
《樹莓派應(yīng)用開發(fā)》課程 第08章-樹莓派GPIO應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第一季度工作報(bào)告XXXXXX公司名稱LOGO站長(zhǎng)之家PPT模板樹莓派應(yīng)用開發(fā)第八章樹莓派GPIO應(yīng)用8.1GPIO基礎(chǔ)8.2C語(yǔ)言基于WiringPi庫(kù)讀取DHT11溫濕度傳感器8.3python語(yǔ)言基于AdafruitDHT庫(kù)讀取DHT11溫濕度傳感器8.4python語(yǔ)言基于GPIO庫(kù)讀取HC-SR04超聲波測(cè)距數(shù)據(jù)8.5python語(yǔ)言通過(guò)I2C驅(qū)動(dòng)LCD1602液晶屏8.6ScratchGPIO編程控制LED燈

GPIO基礎(chǔ)樹莓派的一個(gè)強(qiáng)大功能是在電路板頂部邊緣有兩排40針GPIO(通用輸入/輸出)引腳,可以通過(guò)引腳輸出高電平或是低電平,或者通過(guò)引腳讀入引腳的高電平或是低電平。用戶可以通過(guò)GPIO接口和其他硬件進(jìn)行數(shù)據(jù)交互,控制硬件工作(如LED、蜂鳴器等),讀取硬件的工作狀態(tài)信號(hào)(如中斷信號(hào))等。

GPIO基礎(chǔ)樹莓派40針GPIO引腳

GPIO基礎(chǔ)任何GPIO引腳都可以在軟件中指定為輸入或輸出引腳,并用于廣泛的用途。電壓:板上有兩個(gè)5V引腳和兩個(gè)3.3V引腳,以及一些不可配置的接地引腳。輸出:指定為輸出GPIO引腳,可以設(shè)置引腳是高電平(3.3V)或是低電平(0V)。輸入:指定為輸入GPIO引腳,可以讀取引腳的高電平(3.3V)或引腳的低電平(0V)。PWM(脈寬調(diào)制):軟件PWM在所有引腳上可用。SPI:SPI0包括MOSI(GPIO.10);MISO(GPIO.9);SCLK(GPIO.11);CE0(GPIO.8);CE1(GPIO.7);SPI1包括MOSI(GPIO.20);MISO(GPIO.19);SCLK(GPIO.21);CE0(GPIO.18);CE1(GPIO.17);CE2(GPIO.16);I2C:數(shù)據(jù)包括(GPIO.2);時(shí)鐘(GPIO.3);EEPROM:數(shù)據(jù)包括(GPIO.0);EEPROM時(shí)鐘(GPIO.1);串行:TX(GPIO.14);接收(GPIO.15)權(quán)限:為了使用GPIO端口,登錄用戶必須是該gpio組的成員。

GPIO引出線:通過(guò)打開LX終端窗口并運(yùn)行pinout命令,可以在樹莓派上方便的查詢管腳編碼表。

GPIO基礎(chǔ)運(yùn)行pinout命令后返回的樹莓派管腳編碼表

GPIO基礎(chǔ)樹莓派使用GPIO的方法有很多種,庫(kù)函數(shù)包括了wiringPi以及RPi.GPIO,其中RPi.GPIO庫(kù)是樹莓派系統(tǒng)自帶的。常用的RPi.GPIO庫(kù)規(guī)范有:導(dǎo)入庫(kù)代碼:importRPi.GPIOasGPIO設(shè)置編碼規(guī)范:gpio.setmode(gpio.BOARD)或GPIO.setmode(GPIO.BCM)獲取編碼規(guī)范:mode=GPIO.getmode()將引腳pin設(shè)置為輸入模式:GPIO.setup(pin,GPIO.IN)將引腳pin設(shè)置為輸出模式:GPIO.setup(pin,GPIO.OUT)為輸出的引腳pin設(shè)置默認(rèn)值:GPIO.setup(pin,GPIO.OUT,initial=GPIO.HIGH)引腳pin電平控制:GPIO.output(pin,state)讀取引腳pin的輸入狀態(tài):GPIO.input(pin)釋放GPIO資源:GPIO.cleanup()禁用警告:GPIO.setwarnings(False)

GPIO基礎(chǔ)如果想檢查RPi.GPIO庫(kù)是否引入成功,在測(cè)試代碼中可以使用類似于以下代碼:

try:

importRPi.GPIOasGPIO

exceptRuntimeError:

print(“引入GPIO庫(kù)錯(cuò)誤”)

GPIO基礎(chǔ)目前主要有三種編碼規(guī)范:第一種是Board編碼,這種就是按照樹莓派主板上引腳排針編號(hào)。分別對(duì)應(yīng)1-40號(hào)排針。第二種是BCM編碼,這種方式是參考BroadcomSOC的通道編號(hào),側(cè)重CPU寄存器,采用BCM庫(kù)。python編程常采用這種編碼。第三種是WPI編碼,就是WiringPi編碼,把擴(kuò)展GPIO端口從0開始編碼,使用wiringPi庫(kù)編程會(huì)使用到這種編碼。

GPIO基礎(chǔ)樹莓派GPIO引腳分為串口,i2C,SPI,GPIO和電源管腳,引腳的編號(hào)不是按數(shù)字順序排列的。三種編碼規(guī)范的引腳對(duì)照表WPI編碼BCM編碼功能名GPIO物理引腳BOARD編碼功能名GPIOBCM編碼WPI編碼

3.3V125V

82SDA.1345V

93SCL.156GND

74GPIO.778TXD1415

GND910RXD1516017GPIO.01112GPIO.1181227GPIO.21314GND

322GPIO.31516GPIO.4234

3.3V1718GPIO.52451210MOSI1920GND

139MISO2122GPIO.62561411SCLK2324CE0810

GND2526CE1711300SDA.02728SCL.0131215GPIO.212930GND

226GPIO.223132GPIO.2612262313GPIO.233334GND

2419GPIO.243536GPIO.2716272526GPIO.253738GPIO.82028

GND3940GPIO.292129

GPIO基礎(chǔ)先做點(diǎn)亮一個(gè)LED燈的實(shí)驗(yàn)。編寫代碼之前,首先需要將led燈的管腳通過(guò)杜邦線連接到樹莓派的引腳上,例如把led燈的正極通過(guò)杜邦線連接到樹莓派的11號(hào)引腳,負(fù)極連接到任一GND引腳。led燈的長(zhǎng)管腳一般是正極,短管腳是負(fù)極。

GPIO基礎(chǔ)然后打開LX終端,使用如下命令新建一個(gè)ledtest1.py文件:sudonanoledtest1.py在ledtest1.py文件中輸入如下代碼:importRPi.GPIOasGPIO#引入函數(shù)庫(kù)importtimeGPIO.setwarnings(False)#禁用警告GPIO.setmode(GPIO.BOARD)#設(shè)置引腳編號(hào)規(guī)范GPIO.setup(11,GPIO.OUT)#將11號(hào)引腳設(shè)置成輸出模式while(True):GPIO.output(11,GPIO.HIGH)#將引腳的狀態(tài)設(shè)置為高電平,此時(shí)LED點(diǎn)亮time.sleep(1)#程序休眠1秒鐘,讓LED點(diǎn)亮持續(xù)1秒鐘GPIO.output(11,GPIO.LOW)#將引腳狀態(tài)設(shè)置為低電平,此時(shí)LED熄滅time.sleep(1)#程序休眠1秒鐘,讓LED熄滅持續(xù)1秒鐘GPIO.cleanup()#最后清除所有資源保存ledtest1.py文件并退出。執(zhí)行python3ledtest1.py命令,查看程序運(yùn)行后的led燈點(diǎn)亮和熄滅的狀態(tài),使用Ctrl+C可以關(guān)閉程序。

GPIO基礎(chǔ)運(yùn)行正常后,把ledtest1.py代碼稍做改動(dòng),可以利用PWM來(lái)制作呼吸燈效果,代碼如下:importRPi.GPIOasGPIO#引入函數(shù)庫(kù)importtimeGPIO.setwarnings(False)#禁用警告GPIO.setmode(GPIO.BOARD)#設(shè)置引腳編號(hào)規(guī)范GPIO.setup(12,GPIO.OUT)#將12號(hào)引腳設(shè)置成輸出模式p=GPIO.PWM(12,50)#將12號(hào)引腳初始化為PWM實(shí)例,頻率為50Hzp.start(0)#開始脈寬調(diào)制,參數(shù)范圍為:(0.0<=dc<=100.0)try:while1:fordcinrange(0,101,5):p.ChangeDutyCycle(dc)#修改占空比,參數(shù)范圍為:(0.0<=dc<=100.0)time.sleep(0.1)fordcinrange(100,-1,-5):p.ChangeDutyCycle(dc)time.sleep(0.1)exceptKeyboardInterrupt:passp.stop()#停止輸出PWM波GPIO.cleanup()#清除

GPIO基礎(chǔ)蜂鳴器的實(shí)驗(yàn),蜂鳴器一共兩個(gè)管腳,區(qū)分正負(fù)極,蜂鳴器的正極連接樹莓派的24引腳,負(fù)極連接樹莓派的GND引腳,把以下代碼輸入文件后運(yùn)行:importRPi.GPIOasGPIOimporttimetrig=24#連接24引腳definit():GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(trig,GPIO.OUT,initial=GPIO.HIGH) passdefbeep(seconds): GPIO.output(trig,GPIO.LOW) time.sleep(seconds) GPIO.output(trig,GPIO.HIGH)defbeepBatch(seconds,timespan,counts): foriinrange(counts): beep(seconds) time.sleep(timespan)init()#beep(0.1)beepBatch(0.2,0.5,5)GPIO.cleanup()

C語(yǔ)言基于WiringPi庫(kù)

讀取DHT11溫濕度傳感器DHT11是一款有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度傳感器,濕度精度±5%RH,溫度精度±2℃,濕度量程5-95%RH,溫度量程-20-+60℃。DHT11應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù)。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接,具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT11傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式存在OTP內(nèi)存中。一般為4針單排引腳封裝,連接方便。

DHT11溫濕度傳感器的規(guī)格

DHT11溫濕度傳感器DHT11溫濕度傳感器一般有四個(gè)引腳,但是其中一個(gè)沒有被使用到,有的傳感器模塊會(huì)簡(jiǎn)化成3個(gè)引腳。不建議讀取頻率小于2秒,如果讀取頻率太小,讀取的溫濕度數(shù)據(jù)可能會(huì)有錯(cuò)誤。DHT11溫濕度傳感器的引腳定義:Pin引腳名稱引腳說(shuō)明1VDD供電引腳,直流電3V-5.5V2DATA串行數(shù)據(jù),單總線3NC空引腳,若有則懸空4GND接地引腳,連接電源負(fù)極或接地

WiringPi庫(kù)本節(jié)我們使用C語(yǔ)言的WiringPi庫(kù)來(lái)讀取DHT11溫濕度傳感器的數(shù)據(jù)。WiringPi是一個(gè)用C語(yǔ)言編寫的、基于PIN的GPIO訪問庫(kù),提供了GPIO、I2C、SPI、UART和PWM等庫(kù),對(duì)于樹莓派的GPIO編程相當(dāng)方便。

硬件連接樹莓派和DHT11溫濕度傳感器的硬件連接請(qǐng)使用合適的杜邦線把樹莓派和DHT11溫濕度傳感器進(jìn)行正確的硬件連接。序號(hào)DHT11樹莓派1Vcc引腳3.3V或5V2DATA引腳WiringPi編碼73GND引腳GND

安裝WiringPi庫(kù)獲取wiringPi庫(kù)有兩種方式,兩種方式任選其一。方式一是從官方獲取deb包來(lái)安裝,命令如下:cd~sudowget/wiringpi-latest.debsudodpkg-iwiringpi-latest.deb方式二是從GitHub獲取WiringPi源碼來(lái)安裝,目前/WiringPi倉(cāng)庫(kù)支持的版本有:C/C++、Python、PHP、Node、Ruby、Perl等各種編程語(yǔ)言。sudoapt-getupdate如果之前沒有安裝過(guò)git,執(zhí)行下面的命令安裝:sudoapt-getinstallgit下載wiringPi庫(kù)的命令獲取源碼,保存目錄是/home/pi:sudogitclone/WiringPi/WiringPi編譯安裝wiringPi庫(kù)的命令:cdWiringPisudo./build后期如果不再需要WiringPi庫(kù),可以使用卸載命令:sudo./builduninstall安裝成功后,在LX終端輸入命令gpio-v,可以查看WiringPi的版本信息

樹莓派引腳圖在LX終端輸入命令gpioreadall查看樹莓派引腳圖

編寫C語(yǔ)言程序使用C語(yǔ)言編寫的源代碼如下,使用編輯器新建一個(gè)dht11.c,輸入如下代碼:#include<wiringPi.h>#include<stdio.h>#include<stdlib.h>

typedefunsignedcharuint8;typedefunsignedintuint16;typedefunsignedlonguint32;【剩余代碼請(qǐng)參考教材】保存DHT11.c文件并退出編輯器。

編譯C語(yǔ)言程序并運(yùn)行編譯C語(yǔ)言程序DHT11.c并運(yùn)行的命令如下:sudogcc-Wall-odht11dht11.c-lwiringPisudo./dht11

如果有錄入錯(cuò)誤和編譯錯(cuò)誤請(qǐng)修改C語(yǔ)言源代碼,忽略編譯過(guò)程中的警告。程序運(yùn)行之后將連續(xù)顯示溫濕度的數(shù)據(jù)

python語(yǔ)言基于AdafruitDHT庫(kù)

讀取DHT11溫濕度傳感器樹莓派和DHT11溫濕度傳感器的硬件連接請(qǐng)使用合適的杜邦線把樹莓派和DHT11溫濕度傳感器進(jìn)行正確的硬件連接。序號(hào)DHT11樹莓派1Vcc引腳3.3V或5V2DATA引腳GPIO.0(BCM.17)3GND引腳GND6或9或其他GND

Python庫(kù)DHT11溫濕度傳感器的數(shù)據(jù)讀取需要遵循特定的信號(hào)協(xié)議完成,我們使用AdafruitDHT庫(kù)。安裝AdafruitDHT庫(kù)之前需要更新軟件包:sudoapt-getupdatesudoapt-getinstallbuild-essentialpython-dev從GitHub獲取AdafruitDHT庫(kù):sudogitclone/adafruit/Adafruit_Python_DHT.gitcdAdafruit_Python_DHT給Python2和Python3安裝AdafruitDHT庫(kù),Python2使用的命令是:sudopipinstallAdafruit_Python_DHTsudopythonsetup.pyinstallPython3使用的命令是:sudopip3installAdafruit_Python_DHTsudopython3setup.pyinstall

修改配置文件Adafruit_DHT庫(kù)的更新有時(shí)候跟不上樹莓派的硬件更新,如果我們使用的是樹莓派4B型號(hào),還需要修改一下配置文件以匹配對(duì)應(yīng)的樹莓派cpu。有兩種解決方法,其一是使用這個(gè)傳感器的新庫(kù),位置在/adafruit/Adafruit_CircuitPython_DHT,其二是在原來(lái)的Adadruit_DHT庫(kù)中手動(dòng)更新。

具體操作命令和過(guò)程具體操作命令和過(guò)程如下:sudonano/home/pi/Adafruit_Python_DHT/Adafruit_DHT/platform_detect.py在platform_detect.py文件的末尾內(nèi)容如下:#Matchalinelike'Hardware:BCM2709'match=re.search('^Hardware\s+:\s+(\w+)$',cpuinfo,flags=re.MULTILINE|re.IGNORECASE)ifnotmatch:#Couldn'tfindthehardware,assumeitisn'tapi.returnNoneifmatch.group(1)=='BCM2708':#Pi1return1elifmatch.group(1)=='BCM2709':#Pi2return2elifmatch.group(1)=='BCM2835':#Pi3orPi4return3elifmatch.group(1)=='BCM2837':#Pi3b+return3else:#Somethingelse,notapi.returnNone

具體操作命令和過(guò)程在文件尾部里增加一個(gè)分支:elifmatch.group(1)=='BCM2711':#Pi4b

return3

python程序Adafruit在/Adafruit_Python_DHT/examples目錄提供了示例程序AdafruitDHT.py,程序的源碼如下所示:importsysimportAdafruit_DHTsensor_args={'11':Adafruit_DHT.DHT11,#傳感器型號(hào)DHT11'22':Adafruit_DHT.DHT22,#傳感器型號(hào)DHT22'2302':Adafruit_DHT.AM2302}#傳感器型號(hào)AM2302。。。。。?!臼S啻a請(qǐng)參考教材】最后運(yùn)行以下的命令對(duì)AdafruitDHT.py進(jìn)行測(cè)試:cd~cdAdafruit_Python_DHTcdexamplespython3AdafruitDHT.py111711和17這兩個(gè)參數(shù)分別表示DHT11和數(shù)據(jù)引腳所接的樹莓派GPIO編號(hào)。運(yùn)行成功會(huì)輸出當(dāng)前環(huán)境的溫度和相對(duì)濕度信息,輸出的溫度以攝氏度為單位,相對(duì)濕度是以百分比的形式呈現(xiàn):Temp=24.4*Humidity=53.6%

python語(yǔ)言基于GPIO庫(kù)

讀取HC-SR04超聲波測(cè)距數(shù)據(jù)超聲波的方向性好,反射能力強(qiáng),易于獲得較集中的聲能。人們利用超聲波的特性制成超聲波傳感器,廣泛應(yīng)用于汽車領(lǐng)域。日常所說(shuō)的倒車?yán)走_(dá)就是使用了超聲波傳感器。HC-SR04超聲波測(cè)距模塊可提供2cm-400cm范圍的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)高到3mm。HC-SR04超聲波測(cè)距模塊包括超聲波發(fā)射器、接收器與控制電路,常用于機(jī)器人避障、物體測(cè)距、液位檢測(cè)、公共安防、停車場(chǎng)檢測(cè)等場(chǎng)所

HC-SR04超聲波模塊HC-SR04超聲波模塊主要是由兩個(gè)通用的壓電陶瓷超聲傳感器,并加外圍信號(hào)處理電路構(gòu)成的。兩個(gè)壓電陶瓷超聲傳感器,一個(gè)用于發(fā)出超聲波信號(hào),一個(gè)用于接收反射回來(lái)的超聲波信號(hào)。

基本工作原理HC-SR04超聲波模塊的基本工作原理是:采用IO口TRIG觸發(fā)測(cè)距,給最少10us的高電平信呈;模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;若有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間,計(jì)算公式是:測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2;

HC-SR04模塊的主要電氣參數(shù)序號(hào)主要電氣參數(shù)數(shù)值1電壓DC5V2靜態(tài)電流小于2mA3電平輸出高5V4電平輸出低0V5感應(yīng)角度不大于15度6探測(cè)距離2cm-400cm7精度0.3cm8Trigger引腳輸入信號(hào)10usTTL脈沖9Echo引腳輸出信號(hào)5V脈沖信號(hào)

測(cè)距過(guò)程HC-SR04超聲波模塊有4個(gè)引腳,分別為Vcc、Trig(控制端)、Echo(接收端)、GND;其中VCC接5V電源、GND接地,Trig控制發(fā)出的超聲波信號(hào),Echo接收反射回來(lái)的超聲波信號(hào)。通過(guò)Trig引腳發(fā)送一個(gè)10US以上的高電平,就可以在Echo接收口等待高電平輸出;一旦有輸出信號(hào)就開定時(shí)器計(jì)時(shí),當(dāng)Echo接收口變?yōu)榈碗娖綍r(shí),就可以讀定時(shí)器的值,這個(gè)時(shí)間數(shù)值就是測(cè)距的時(shí)間,通過(guò)公式計(jì)算出距離。如果不斷的循環(huán)測(cè)試并返回時(shí)間數(shù)值,還可以計(jì)算移動(dòng)物體的距離。

硬件連接樹莓派與HC-SR04超聲波測(cè)距模塊的硬件連接序號(hào)HC-SR04樹莓派1Vcc引腳5V2GND引腳GND3Trig引腳GPIO.3-BCM.23Echo引腳GPIO.5-BCM.3

python程序初始化相關(guān)引腳的代碼為:importRPi.GPIOasGPIO#導(dǎo)入GPIO庫(kù)importtimeGPIO.setmode(GPIO.BCM)#設(shè)置GPIO模式為BCMGPIO_TRIGGER=2#定義GPIO.2引腳連接TrigGPIO_ECHO=3#定義GPIO.3引腳連接EchoGPIO.setup(GPIO_TRIGGER,GPIO.OUT)#設(shè)置GPIO.2的工作方式OUTGPIO.setup(GPIO_ECHO,GPIO.IN)#設(shè)置GPI.3O的工作方式IN。。。。。?!臼S啻a請(qǐng)參考教材】保存hcsr04.py文件后退出,在LX終端輸入以下命令運(yùn)行:python3hcsr04.py

python語(yǔ)言通過(guò)I2C

驅(qū)動(dòng)LCD1602液晶屏I2C是一種同步、半雙工的通信總線。同步方式要求發(fā)送端和接收端要嚴(yán)格同步,一般設(shè)計(jì)有同步時(shí)鐘線。半雙工方式I2C只有一條數(shù)據(jù)線,所以發(fā)數(shù)據(jù)與收數(shù)據(jù)不能同時(shí)進(jìn)行。為方便CPU與外設(shè)之間通信,信號(hào)線盡量少并且速率要盡量高,可以減少引腳占用。標(biāo)準(zhǔn)的I2C需要兩根信號(hào)線:SCL(SerialClock):時(shí)鐘線,時(shí)鐘都是有master提供的。SDA(SerialData):雙向數(shù)據(jù)線,發(fā)數(shù)據(jù)或者收數(shù)據(jù)(收發(fā)不能同時(shí))。

LCD1602液晶屏LCD1602液晶屏是廣泛使用的一種字符型液晶顯示模塊,分為帶背光和不帶背光兩種。LCD1602液晶屏本身有16個(gè)引腳,配合I2C模塊后可以使用四根信號(hào)線連接到樹莓派,極大的簡(jiǎn)化硬件連線和開發(fā)驅(qū)動(dòng)程序。帶I2C模塊的LCD1602液晶屏模塊:

硬件連接樹莓派與帶I2C驅(qū)動(dòng)LCD1602液晶屏的硬件連接序號(hào)I2C樹莓派1Vcc引腳5V2GND引腳GND3SDA引腳GPIO.3-I2C數(shù)據(jù)4SCL引腳GPIO.5-I2C時(shí)鐘

啟用樹莓派的I2C功能首先安裝python3-smbus和i2c-tools軟件,使用如下命令:sudoapt-getinstall-ypython3-smbussudoapt-getinstall-yi2c-tools接著使用命令sudoraspi-config->3InterfaceOptions->I5I2C或者使用樹莓派菜單->首選項(xiàng)->RaspberryPiConfiguration->Interfaces,設(shè)置開啟I2C功能。

最后重啟樹莓派使設(shè)置設(shè)置開啟I2C生效:sudoreboot

樹莓派再次開機(jī)后,運(yùn)行以下的命令查看樹莓派是否識(shí)別到帶I2C驅(qū)動(dòng)的LCD1602液晶屏:sudoi2cdetect-y1命令運(yùn)行后如果看到地址為0x27,說(shuō)明樹莓派已經(jīng)成功連接到帶I2C驅(qū)動(dòng)的LCD1602液晶屏

成功連接

Python編程首先編寫帶I2C驅(qū)動(dòng)的LCD1602液晶屏的驅(qū)動(dòng)程序,在LX終端輸入以下命令創(chuàng)建LCD1602.py文件:sudonanoLCD1602.py在LCD1602.py文件中輸入以下完整Python代碼:importtimeimportsmbusBUS=smbus.SMBus(1)LCD_ADDR=0x27BLEN=1#打開或關(guān)閉背光。。。。。?!臼S啻a請(qǐng)參考教材】然后編寫一個(gè)顯示當(dāng)前日期和時(shí)間的顯示程序,在LX終端輸入以下命令創(chuàng)建time.py文件:sudonanotime.py在time.py文件中輸入以下完整Python代碼:#!/user/bin/envpythonimportsmbusimporttimeimportsys。。。。。?!臼S啻a請(qǐng)參考教材】

運(yùn)行Python保存time.py文件后退出,time.py文件與LCD1602.py文件保存在同一個(gè)目錄下。

使用下面的命令檢查兩個(gè)程序的代碼是否正確,若有錯(cuò)則修改正確:python3LCD1602.pypython3time.py

輸出結(jié)果如果輸入代碼都正確,time.py運(yùn)行后輸出的結(jié)果

ScratchGPIO編程控制LED燈Scratch是一個(gè)基于圖形化拖塊形式的可視化的編程集成環(huán)境通過(guò)可視化拖拽的方式完成編程Scratch建立的程序是用鮮艷的代碼塊拼接起來(lái)的RaspbianBuster版本及后續(xù)版本的系統(tǒng)里默認(rèn)集成了Scratch3.0Scratch3.0版本主要更新內(nèi)容【請(qǐng)參

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論