[作品提交] 【得捷电子Follow me第1期】任务2:驱动外设

eew_Gg6pmv   2023-6-18 22:02 楼主

在本次活动中使用到的外设有LED、蜂鸣器和OLED显示屏。

本次使用的蜂鸣器为有源蜂鸣器,驱动方法和LED相似,代码如下:

 

image.png  当然也可以使用PWM改变输出的频率和占空比实现不同的音色: image.png  对于OLED显示屏,这次使用到的是0.96寸IIC的OLED屏,在Gitee上可以找到底层驱动的程序,在此感谢前辈造的轮子

skySeek/micropython-ssd1306 - 码云 - 开源中国 (gitee.com)

这里是显示图片和文字的程序:

from machine import Pin,I2C
from ssd1306 import SSD1306_I2C
import framebuf
from time import sleep
from utime import sleep_ms

i2c=machine.I2C(1, sda=machine.Pin("GP6"), scl=machine.Pin("GP7"), freq=400000)
oled = SSD1306_I2C(128, 64, i2c)

# display.fill(0)
# display.show()
# display.text("hello eeworld",5,10)
# display.show()

# Raspberry Pi logo as 32x32 bytearray
buffer = bytearray(b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|?\x00\x01\x86@\x80\x01\x01\x80\x80\x01\x11\x88\x80\x01\x05\xa0\x80\x00\x83\xc1\x00\x00C\xe3\x00\x00~\xfc\x00\x00L'\x00\x00\x9c\x11\x00\x00\xbf\xfd\x00\x00\xe1\x87\x00\x01\xc1\x83\x80\x02A\x82@\x02A\x82@\x02\xc1\xc2@\x02\xf6>\xc0\x01\xfc=\x80\x01\x18\x18\x80\x01\x88\x10\x80\x00\x8c!\x00\x00\x87\xf1\x00\x00\x7f\xf6\x00\x008\x1c\x00\x00\x0c \x00\x00\x03\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")

# Load the raspberry pi logo into the framebuffer (the image is 32x32)
fb = framebuf.FrameBuffer(buffer, 32, 32, framebuf.MONO_HLSB)

# Clear the oled display in case it has junk on it.
oled.fill(0)

# Blit the image from the framebuffer to the oled display
oled.blit(fb, 96, 0)

# Add some text
oled.text("Raspberry Pi",5,5)
oled.text("Pico",5,15)

# Finally update the oled display so the image & text is displayed
oled.show()

实现效果如下:

0d57db3f0671e2dc5c408e7f72897a4.jpg  

 

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复