加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 一、前言
    • 二、引腳對(duì)照表
    • 三、硬件連接
    • 四、編寫(xiě)程序
    • 五、結(jié)束語(yǔ)
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

樹(shù)莓派從零開(kāi)始快速入門(mén)第5講——點(diǎn)亮LED

07/05 15:10
2196
閱讀需 8 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

一、前言

千呼萬(wàn)喚始出來(lái),今天,他來(lái)了,他來(lái)了,點(diǎn)燈的教程他終于來(lái)了,作為嵌入式編程世界公認(rèn)最經(jīng)典的入門(mén)程序,把你放在第5講算是給足面子了,要是在其他教程,能活過(guò)第2講?好了,廢話不多說(shuō),盤(pán)他就完了。

GPIO是通用輸入輸出口的意思,是MCU控制外設(shè)最基本的硬件接口。把LED燈接到GPIO上面,通過(guò)控制GPIO的輸出電壓,就可以控制燈的亮滅,我們今天的目標(biāo)是點(diǎn)亮第一個(gè)LED燈。

二、引腳對(duì)照表

要點(diǎn)燈,先要確定燈接在哪個(gè)引腳上面,對(duì)應(yīng)的引腳號(hào)是多少。

要確定硬件引腳對(duì)應(yīng)的軟件引腳號(hào),可以通過(guò)下面這個(gè)指令查看自己的設(shè)備引腳對(duì)照表。

gpio readall

在這里插入圖片描述

樹(shù)莓派的引腳編碼方式有兩種:wiringPi和BCM,其實(shí)就是對(duì)應(yīng)兩個(gè)不同的庫(kù)函數(shù)。

1)wiringPi:基于WiringPi庫(kù),是樹(shù)莓派平臺(tái)的庫(kù)函數(shù),類似于Arduino里面的wiring。
2)BCM:基于bcm2835庫(kù),是樹(shù)莓派cpu芯片的庫(kù)函數(shù),相當(dāng)于stm32固件庫(kù)一樣,底層直接操作寄存器。

這里引用一張樹(shù)莓派實(shí)驗(yàn)室的通用引腳圖,這個(gè)圖非常好用,除了對(duì)應(yīng)40pin的樹(shù)莓派之外也兼容了其他版本的硬件。

請(qǐng)?zhí)砑訄D片描述

再引用了一張3B的引腳圖,兩張圖對(duì)比來(lái)看,引腳的對(duì)應(yīng)關(guān)系就非常清晰了。

請(qǐng)?zhí)砑訄D片描述

三、硬件連接

首先我們得準(zhǔn)備一個(gè)LED燈或者帶LED燈的擴(kuò)展板,我這里用的是微雪的多功能擴(kuò)展板Pioneer600(某寶上面找不到,要在微雪官網(wǎng)上面采購(gòu)),總體來(lái)說(shuō),這款擴(kuò)展板性價(jià)比不算高,但是對(duì)于初學(xué)者來(lái)說(shuō)很友好,接口是pin對(duì)pin的,可以直接接上樹(shù)莓派,常用的外設(shè)也比較全(LEDUARTIICSPI按鍵顯示屏),如果能把把這些外設(shè)都調(diào)完,那去做一些小項(xiàng)目是基本沒(méi)有問(wèn)題的了。(特別說(shuō)明:這不是在恰飯哈)

把LED接到樹(shù)莓派任意一個(gè)GPIO口上面(如果是用的是普通插件LED燈,還要串一個(gè)1k左右的電阻,不然可能會(huì)把燈燒掉)。

四、編寫(xiě)程序

1、編程方式簡(jiǎn)述

樹(shù)莓派控制IO口的方式有很多種。

1:通過(guò)shell命令直接控制
2:通過(guò)Linux腳本控制
3:通過(guò)wiringPi庫(kù)控制
4:通過(guò)bcm2835庫(kù)控制

控制的方式有多種,編程的語(yǔ)音也有多種,C、C++、python、Java等等,所以就導(dǎo)致很多初學(xué)者無(wú)從下手,到底應(yīng)該選擇哪種方式呢?我本身從事的工作是以C語(yǔ)言為主的,一開(kāi)始我是想從C開(kāi)始突破,但是經(jīng)過(guò)我一段時(shí)間的摸索,我認(rèn)為樹(shù)莓派最好的方式應(yīng)該是Linux系統(tǒng)+python編程。確定了路線之后,我后面的編程教程也都是以python編程為主。

2、python編程

python語(yǔ)法不懂的同學(xué),可以先去看下其他的教程,了解一下python最基本的語(yǔ)法,然后再邊學(xué)邊做。

用python控制樹(shù)莓派外設(shè)是通過(guò)python類庫(kù)實(shí)現(xiàn)的,比如樹(shù)莓派系統(tǒng)本身集成的RPi.GPIO就可以控制GPIO口。

樹(shù)莓派官方的鏡像基本都是自帶python工具的,所以一般是不用再另外安裝軟件了。

1)新建py文件

新建led.py文件

touch led.py

2)編寫(xiě)程序

打開(kāi)led.py并編寫(xiě)以下示例程序:

#!/usr/bin/python                             
#-*- coding:utf-8 -*-               
import RPi.GPIO as GPIO             #導(dǎo)入RPi.GPIO庫(kù)
import time                         #導(dǎo)入time庫(kù)                   
GPIO.setwarnings(False)               #禁用警告(可以不用)
GPIO.setmode(GPIO.BCM)                #使用BCM編碼的引腳號(hào)
GPIO.setup(26,GPIO.OUT)               #根據(jù)自己LED燈接的引腳配置,我這里是26腳
try:
    while True:                       #wile循環(huán)
        GPIO.output(26,GPIO.HIGH)     #引腳拉高
        time.sleep(1)                 #延時(shí)1s
        GPIO.output(26,GPIO.LOW)      #引腳拉低
        time.sleep(1)                 #延時(shí)1s
except:
    print("except")
GPIO.cleanup()
注:
#!/usr/bin/env python,定義python解析腳本的絕對(duì)路徑
#-*- coding:utf-8 -*-,python文件為utf-8格式,否則無(wú)法寫(xiě)入中文注釋

編寫(xiě)代碼的方式有很多種,根據(jù)自己的喜歡選擇一種即可。

方式1:在樹(shù)莓派命令窗口編輯

vim led.py      // 用vim編輯
nano led.py     // 用nano編輯

vim編輯示例如下:

在這里插入圖片描述

方式2:在樹(shù)莓派可視化界面編輯

在這里插入圖片描述

在這里插入圖片描述

方式3:在PC端打開(kāi)并編輯

參考我上一講介紹的文件共享。

樹(shù)莓派從零開(kāi)始快速入門(mén)第4講——文件共享

在這里插入圖片描述

3)運(yùn)行

運(yùn)行方式有兩種方式。

方式1:命令行運(yùn)行

python led.py

python led.py開(kāi)始運(yùn)行,Crtl+C結(jié)束運(yùn)行。

在這里插入圖片描述

方式2:可視化界面運(yùn)行

在這里插入圖片描述

注:如果RPi.GRIO檢測(cè)到一個(gè)引腳已經(jīng)被設(shè)置成了非默認(rèn)值,那運(yùn)行的時(shí)候會(huì)彈出一個(gè)警告信息。

在這里插入圖片描述

可以在配置GPIO模式之前調(diào)用以下代碼即可禁用警告,當(dāng)然,不禁用也是沒(méi)關(guān)系的,不影響代碼運(yùn)行。

GPIO.setwarnings(False)

運(yùn)行結(jié)果:

LED每間隔1s閃爍一次。

五、結(jié)束語(yǔ)

點(diǎn)燈儀式就此結(jié)束,經(jīng)過(guò)對(duì)LED的調(diào)試,相信你對(duì)樹(shù)莓派的編程方式已經(jīng)有了一定的了解。萬(wàn)事開(kāi)頭難,我覺(jué)得樹(shù)莓派最容易讓人產(chǎn)生疑惑的是它的編程方式,因?yàn)榛犹嗔?,你?a class="article-link" target="_blank" href="/manufacturer/1000050/">百度上搜索樹(shù)莓派的編程方式,會(huì)得到很多種答案,都不知道該信誰(shuí),關(guān)于這個(gè),我認(rèn)為最好的方式是Linux系統(tǒng)+python編程。選擇一種路線入門(mén)很重要,明確了自己的路線,就可以邁出新手村了,后面無(wú)非就是打怪升級(jí)。

想了解更多樹(shù)莓派的知識(shí)可以關(guān)注我,后續(xù)我會(huì)繼續(xù)出更多的教程。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
HFE7000-210 1 Honeywell Sensing and Control Fiber Optic Emitter, FIBER OPTIC LED EMITTER, 50Mbps, THROUGH HOLE MOUNT, SMA CONNECTOR, PLASTIC PACKAGE-4
$21.47 查看
ASDMB-50.000MHZ-LY-T 1 Abracon Corporation MEMS OSC XO 50.0000MHZ LVCMOS
$3.02 查看
NX5032GA-8.000M-STD-CSU-1 1 Nihon Dempa Kogyo Co Ltd Parallel - Fundamental Quartz Crystal, 8MHz Nom, ROHS COMPLIANT PACKAGE-2
暫無(wú)數(shù)據(jù) 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜