搞定了开发环境,接下来就是逐一搞定各个外设了。
OLED
oled本质上就是很多微小的led组成的发光阵列,控制每个单元的亮与灭来显示信息。这里OLED模块有128x64个发光单元,使用SSD1306驱动。使用前辈们造好的轮子https://github.com/stlehmann/micropython-ssd1306驱动OLED显示,使用I2C1来驱动。
from machine import Pin,I2C
from ssd1306 import SSD1306_I2C
i2c=machine.I2C(1, sda=machine.Pin("GP6"), scl=machine.Pin("GP7"), freq=400000)
display = SSD1306_I2C(128, 64, i2c)
display.fill(0)
display.show()
display.text("hello eeworld",5,10)
display.show()
这个蜂鸣器模块,应该是个无源蜂鸣器。意味着蜂鸣器自生是没有信号源的,必须要单片机提供震动信号给蜂鸣器,蜂鸣器才会发声,与扬声器相似。可以通过单片机控制蜂鸣器发出不同频率的音调。
import machine
import time
pizzo = machine.Pin(20)
pwm1 = machine.PWM(pizzo)
frep1 = 100
pwm1.freq(frep1)
pwm1.duty_u16(32768)
while True:
frep1 += 100
pwm1.freq(frep1)
time.sleep(.5)
if frep1 > 2400:
frep1 = 200
PicoW自带了wifi模块,有了wifi就能方便地联网了。不过查了一下,只能连接2.4G的网络,无法连接5G的wifi。这里用手机创建一个2.4G热点。
import network
import time
#import ntptime
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("weile", "weile120")
while not wlan.isconnected() and wlan.status() >= 0:
print("Waiting to connect:")
time.sleep(1)
print(wlan.ifconfig())
当单片机与网络连接后,就可以拓展单片机的世界啦!可以访问互联网上的内容。这里首先从互联网获得时间,校正单片机上的时间。
import time
import utime
import machine
import ntptime
ntptime.NTP_DELTA = 3155644800
ntptime.host = 'ntp1.aliyun.com'
ntptime.settime()
print( time.localtime(time.time()))
rtc = machine.RTC()
while True:
t = rtc.datetime()
print(t)
time.sleep(5)