30個物聯網傳感器小實驗1:三行代碼點亮LED燈
以下所有實驗均要求樹莓派刷入完整版Raspbian
操作系統,也就是官網上Raspbian Stretch with desktop and recommended software
的版本。
三行代碼點亮LED燈
- 接線圖如下:
- 代碼如下:
from gpiozero import LED
red = LED(17)
while True:red.on()
- 在終端運行
python3 LED.on.py
即可點亮LED燈!
LED燈閃爍
- 新建
LED.blink.py
文件,代碼如下:
from gpiozero import LED
from signal import pause
red = LED(17)
red.blink()
pause()
核心在於on()
方法改成了blink()
方法,再運行python3 LED.blink.py
即可閃爍!
LED燈調亮度
- 新建
LED.pwn.py
文件,代碼如下:
from gpiozero import PWMLED
from time import sleep
led = PWMLED(17)
while True:
led.value = 0 # 全滅
sleep(1)
led.value = 0.5 # 半亮
sleep(1)
led.value = 1 # 全亮
sleep(1)
核心在於使用的類改爲PWMLED
,不再是LED
類了。在命令行界面運行python3 LED.pwn.py
之後,可以看到LED
燈全滅、半亮、全亮,間隔1s
,交替運行。
LED淡入淡出
- 新建
LED.pulse.py
文件,代碼如下:
from gpiozero import PWMLED
from signal import pause
led = PWMLED(17)
led.pulse()
pause()
核心在於使用了pulse()
函數,可以觀察到led
等淡入淡出的效果!
不寫一行代碼點亮LED燈
- 在命令行界面使用
pinout
命令,輸出各針腳定義。
- (2)號口
5v
電壓接1kΩ
的電阻,接LED
長腳正極,LED
負極接(6)號GND地線負極,這樣LED
燈直接就會點亮,不寫一行代碼!
全綵RGB燈
- 紅綠藍分別接
GPIO(2)、GPIO(3)、GPIO(4)
口,新建RGBLED.py
文件,代碼如下:
RGBLED.py
from __future__ import division # required for python 2
from gpiozero import RGBLED
from time import sleep
led = RGBLED(red=2, green=3, blue=4)
led.red = 1 # full red
sleep(1)
led.red = 0.5 # half red
sleep(1)
led.color = (0, 1, 0) # full green
sleep(1)
led.color = (1, 0, 1) # magenta
sleep(1)
led.color = (1, 1, 0) # yellow
sleep(1)
led.color = (0, 1, 1) # cyan
sleep(1)
led.color = (1, 1, 1) # white
sleep(1)
led.color = (0, 0, 0) # off
sleep(1)
# slowly increase intensity of blue
for n in range(100):
led.blue = n/100
sleep(0.1)
- 在命令行界面,運行以上代碼
python RGBLED.py
,則RGBLED
燈顏色不斷變化,效果如下:
麪包板
也稱爲無焊接面包板,是我們進行物理和電子實驗的好幫手,由於其內部集成了走線,從而避免了複雜實驗時雜亂無章的飛線。麪包上的針腳孔可以輕鬆地搭配衆多帶針腳的傳感器使用,許多傳感器和麪包板都包含了配電的部分,使得包含麪包板的電路實驗設計變得更加容易。一句話總結一下,我們做實驗並非一定要用到麪包板,但是有個麪包板可以使我們事半功倍。
麪包板有幾個特性:
- 左右兩側爲正負極。正負極下方各有各的金屬片,豎排相連。
- 中間兩側爲通用端口,左側和右側互不相同。
- 中間兩側的針孔下方橫向相連。
舉個例子從從A1到E1
是相連接的,從F1
到J1
是相連接的,但是E1
和F1
是不通的。樹莓派的5v
或者3v3
只要接到+
級的任何一個孔,整個+
級的豎排都會存在相應電壓的供電,樹莓派的GND
接-
級。下圖是一個真實的麪包板。
好了,本次介紹就到這裏,這個系列的全文會收錄在我的github目錄,歡迎大家star和溝通:https://github.com/asukafight...