在樹莓派上用python控制LED

2021-07-02 21:42:01 字數 3924 閱讀 9196

初步學習rpi.gpio模組的過程中寫了乙個控制8個led的模組,基本上只是乙個對rpi.gpio的乙個封裝

電路圖按照電路圖所示,在麵包板上進行連線。

首先得確定rpi.gpio已安裝。最新的系統已經自帶了,如果沒有的可以使用命令:

shell

1

2

sudo

apt-

getupdate

sudo

apt-

getinstall

python

-dev

python

-rpi

.gpio

來安裝用文字編輯器新建乙個led.py檔案。(高手們都用vi,我只會用nano…)

shell

1

2

3

4 cd

mdir

gpio

cdgpio

nano

led.py

python**如下:

python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

import

rpi.

gpio

asgpio  

import

time

channels=[

16,18,

22,24,

26,19,

21,23]

definit()

:

gpio

.setmode

(gpio

.board

)

forx

inchannels

:

gpio

.setup(x

,gpio

.out

)

pass

defon(i

):gpio

.output

(channels[i

],gpio

.high

)

defoff(i

):gpio

.output

(channels[i

],gpio

.low

)

defctrl

(data):

fori

inchannels

:

gpio

.output(i

,data

&0x1

)

data

=data

>>

1

pass

deftest()

:

fori

inxrange

(512):

ctrl(i

)

time

.sleep

(0.1

)

defclean()

:

gpio

.cleanup()

你可以在樹莓派上直接編輯這個檔案,也可以將檔案在電腦上編輯好,然後用sftp或者linux下的scp命令傳到樹莓派上。

你可以編寫乙個test.py呼叫剛剛編寫好的led模組:

python

1

2

3

4

5

import

led

led.

init()

led.test()

led.clean()

也可以直接在python shell中操作,這裡是我在python shell中呼叫寫好的模組的乙個例子

shell

1

sudo

python

而在執行自己寫的test.py的時候也要加sudo:

shell

1

sudo

python

test

.py

rpi.gpio.setmode(naming_system)

設定將gpio針的命名方式。naming_system可用的取值有 rpi.gpio.bcm 和 rpi.gpio.board,分別代表boardcom命名系統和樹莓派板子上的命名系統。而因為使用bcm 的時候(據說)不同的版本bvm針腳定義不一樣,所以同一套程式在多個樹莓派系統上使用的時候建議用board。

rpi.gpio.setup(channel, state)

將標號為channel的針設定為state模式。channel取值為1~26,state取值為rpi.gpio.in 或者rpi.gpio.out,分別表示輸入和輸出。例如 rpi.gpio.setup(1, rpi.gpio.in)表示將1號針設定為輸入模式;rpi.gpio.setup(3, rpi.gpio.out)表示將3號針設定為輸出模式。具體哪個號是哪根取決於setmode()中設定成什麼。

rpi.gpio.output(channel, state)

將標號為channel的針設定為state指定的電平。channel取值為1~26,state取值為rpi.gpio.high 和rpi.gpio.low,或者1和0,或者true和false,表示高電平和低電平。例如rpi.gpio.output(1, 1) 表示把1號針設定為高電平,rpi.gpio.output(3, flase) 表示將3號針設定為低電平。具體哪個號是哪根取決於setmode()中設定成什麼。

rpi.gpio.input(channel)

獲取將標號為channel的針的電平磚頭。channel取值為1~26。例如rpi.gpio.input(1) 表示獲取1號針的狀態。

rpi.gpio.cleanup()

清除掉之前rpi.gpio.setup()設定的狀態。退出程式之前一定要呼叫,否則下次呼叫的時候會報錯。

channel 中儲存的是連線中使用的針的標號,按順序。

init() 是初始化gpio介面的**,使用控制lcd去前要呼叫。主要工作是設定介面命名模式和 將channel中的針設定為輸出模式

on() / off() 是將channel 中第i個針設定為高電平/低電平

ctrl() 是根據引數設定全8根針的電平。引數的低0位、低1位、低2位…分別表示channel下標為0、1、2…的針的電平狀況,1為高電平、0為低電平

test() 是測試函式。用8位二進位制表示8個燈的狀態,每隔0.1秒到下乙個狀態: 0000 0000, 0000 0001, 0000 0010, 0000 0011,0000 0100 … 實際上就是從0數到255

clean() 是對 rpi.gpio.cleanup() 的乙個封裝

在樹莓派上用python控制LED

初步學習rpi.gpio模組的過程中寫了乙個控制8個led的模組,基本上只是乙個對rpi.gpio的乙個封裝 電路圖 按照電路圖所示,在麵包板上進行連線。安裝rpi.gpio 首先得確定rpi.gpio已安裝。最新的系統已經自帶了,如果沒有的可以使用命令 sudo apt get update su...

在樹莓派上配置mono

mono是跨平台的.net編譯環境,試著在樹莓派上部署一下 1.獲取raspbian系統 如何獲取就不多說了,主要是要燒錄到sd卡里並正常啟動 1.1 獲取sudo許可權 建議使用管理員許可權,這樣問題可能少一些 也許更多 sudo s 2.安裝m4 gun tar zxvf m4 1.4.9.ta...

在樹莓派上安裝OpenVINO

準備工作 這裡我推薦2019 r3版本,之前裝了2020版本不好用,又退回到了2019 r3版本 開啟終端,執行命令 cd downloads 3.建立乙個安裝資料夾 sudo mkdir p opt intel openvino 4.解壓安裝包到安裝路徑下 sudo tar xf l openvi...