【得捷电子Follow me第1期】任务2、3 外设驱动和网络时间同步
[复制链接]
搞定了开发环境,接下来就是逐一搞定各个外设了。
OLED
oled本质上就是很多微小的led组成的发光阵列,控制每个单元的亮与灭来显示信息。这里OLED模块有128x64个发光单元,使用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
-
WIFI
PicoW自带了wifi模块,有了wifi就能方便地联网了。不过查了一下,只能连接2.4G的网络,无法连接5G的wifi。这里用手机创建一个2.4G热点。
- import network
- import time
-
-
- 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)
|