说来也巧,我正在外地玩的时候有一个大佬说有一个小屏幕又便宜又简单还是双色的,那还客气什么直接拿下。等我做高铁到家的时候快递已经在家门口等我了。

到手一看,这不就是SSD1306么?我在之前录过一个在树莓派pico上使用ssd1306的视频
https://www.bilibili.com/video/BV1SA411P7EV/
所以驱动也是现成的
https://github.com/v-leihe/PicoFun/blob/main/lib/ssd1306.py
Demo代码需要修改一下
https://github.com/v-leihe/PicoFun/blob/main/examples/Part6-Oled1306.py
这里我们用带扩展版的Esp32-C5用i2c连接屏幕
#原来的屏幕是128x32的改为128x64
WIDTH = 128 # oled display width
HEIGHT = 64 # oled display height
#3v3 → VCC
#GND → GND
#10/C → SCL
#9/D → SDA
sda = Pin(9, Pin.PULL_UP)
scl = Pin(10, Pin.PULL_UP)
oled.text("ESP32-C5",5,0)
oled.text("ESP32-C5",5,16)

这里可以看出双色屏幕是上面16个像素高的颜色是黄色,下面48个像素是蓝色。可以有效的把信息分开显示
彩蛋:
既然我们用的是esp32-c5,那我们显示树莓派的logo就不太合适了。这个其实也是一个困扰了我一段时间的问题,自己用byte数组画图标太麻烦了,于是我写个一个小工具放在网上
https://miffydad.dpdns.org/drawBytePic/index.html

我现在可以随意上传或者拖拽一个图片,然后自动压缩到指定尺寸,因为我现在这个屏幕比以前的大我可以画一个64x64的图标,然后点击“转换为ByteArray”我就直接获得了一个像素图片。然后我们把他显示在屏幕上
# Load into the framebuffer (the image is 64x64)
fb = framebuf.FrameBuffer(buffer, 64, 64, framebuf.MONO_HLSB)
oled.blit(fb, 64, 0)

现在您可以随意设计图片显示在这个屏幕上了
评论