(2020/06/21 日環蝕)
這次採用Thonny來寫micropython程式,硬體一樣採用Web:Bit,韌體在第一單元可找到
一、LED燈
LED燈接長腳接P1 (GPIO 32),短腳接GND
點亮LED燈
>>> from machine import Pin #使用外部模組功能的動作叫做匯入 (import),匯入的有類別或函式,這邊是匯入Pin類別
>>> led = Pin( 32 , Pin.OUT) #建立Pin物件,名稱叫led
>>> led.value(1)
>>> led.value(0)
點亮LED燈3秒
from machine import Pin
import time
led = Pin( 32 , Pin.OUT) #引脚名稱及配置为输入或输出
led.value(1) #也可用led.on()
time.sleep(3) #也可用 time.sleep_ms(3000)
led.value(0) #也可用led.off()
LED燈一閃一滅 (1秒)
from machine import Pin
import time
led = Pin( 32 , Pin.OUT)
while True:
led.value(1)
time.sleep(1)
led.value(0)
time.sleep(1)
2顆LED燈交互閃燈 (1秒) P2=GPIO33
from machine import Pin
import time
led1 = Pin( 32 , Pin.OUT)
led2 = Pin( 33 , Pin.OUT)
while True:
led1.on()
led2.off()
time.sleep(1)
led1.off()
led2.on()
time.sleep(1)
也可試著將LED燈的長腳接3V3,短腳接P1(GPIO32)
二、按鍵
下拉電阻
上拉電阻
內建A鍵(GPIO 35)、B鍵(GPIO 27),它們均輸入高電位,這兩個腳位採用上拉電阻
取得按下A鍵的值
from machine import Pin
import time
btn = Pin( 35 , Pin.IN)
while True:
print(btn.value())
time.sleep_ms(50)
其值:未按下時為1,按下時為0
B鍵的結果一樣
按A鍵點亮LED燈
from machine import Pin
import time
led = Pin( 32 , Pin.OUT)
btn = Pin( 35 , Pin.IN)
while True:
if btn.value() == 0:
led.on()
else:
led.off()
也可簡化成這樣
from machine import Pin
import time
led = Pin( 32 , Pin.OUT)
btn = Pin( 35 , Pin.IN)
while True:
led.value(btn.value()-1) #發現減1有用,不然要改LED的長腳到3V3,短腳到P1
按A鍵亮燈,再按一次則滅燈
三、光敏電阻
使用內建的左右光敏電阻
import light
from time import sleep_ms #也可以用這樣來表示
R = light.Intensity(39) #使用A3腳位(GPIO39)
L = light.Intensity(36) #使用A0腳位(GPIO36)
while True:
print('R=',R.read())
print('L=',L.read())
sleep_ms(1000)
得到最小值為0(最暗)、最大值為1000(最亮)
使用外加的光敏電阻,接在P1 (GPIO32)
from machine import Pin , ADC
import time
light = ADC(Pin(32))
while True:
print (light.read())
time.sleep_ms(50) #如果沒有加個等待時間,下方數據會顯示不出來
設計一個天黑請開燈的作品
四、DHT11溫濕度感測器
使用內建的溫度感測器
from microbit import *
while True:
temp = temperature() # get temperature ℃
print(temp)
display.scroll(str(temp))
sleep(10000)
量測到溫度高達38、39度多
外接上DHT11在P1(GPIO32)上
import dht
from machine import Pin
import time
d = dht.DHT11(Pin(32))
while True:
print(str(d.temperature()) + 'C')
print(str(d.humidity()) + '%')
time.sleep(2)
量測到溫度、濕度都是0
五、超音波感測器
六、伺服馬達
七、播放聲音
八、語音辨識
九、人臉辨識
十、藍牙傳輸
十一、LCD