树莓派4B-Python-使用SSD1306 OLED



文章目录

  • 树莓派4B-Python-使用SSD1306 OLED
  • 前言
  • 一、SSD1306 OLED
  • 二、参数介绍
  • 三、与树莓派接线
  • 1.开启I2C
  • 2.下载Luma.oled库(用于Python3版本的)
  • 3.屏幕与树莓派连接
  • 四、代码
  • 总结



前言

该文章主要是搞清楚如何使用新网购入手的OLED模块,打算将其装在V4小车上作为小车状态的输出屏,当然这第一次买所以买的屏幕有点太迷你了,凑近了才能看清屏幕上的内容,这次研究顺利的话下次再买个大一些的OLED屏。


一、SSD1306 OLED

python通过驱动控制灯 python驱动oled_树莓派


该OLED 屏幕为0.96寸,分辨率128 * 64,四线制,屏幕上四分之一显示黄色,屏幕下四分之三显示蓝色。

树莓派驱动OLED的两种库

二、参数介绍

GND————接地
VCC————3.3 ~ 5V
SCL————串行时钟
SDA————串行数据

驱动芯片————SSD1306
通信方式————IIC

分辨率————128 * 64
支持显示————一般为数字、大小写英文

三、与树莓派接线

1.开启I2C

先下载:

sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools

再开启i2c

python通过驱动控制灯 python驱动oled_树莓派_02

2.下载Luma.oled库(用于Python3版本的)

关于Luma.oled库的使用文档

sudo apt-get install python3-dev python3-pip libfreetype6-dev libjpeg-dev
sudo -H pip3 install --upgrade pip3
sudo apt-get purge python3-pip
sudo -H pip3 install --upgrade luma.oled

若出现一大堆红字时,是因为网络不给力,多试几次就好了

3.屏幕与树莓派连接

python通过驱动控制灯 python驱动oled_树莓派_03


红色线————5V

黑色线————GND

黄色线————SCL

绿色线————SDA

输入以下内容会得知是否已成功开启i2c

sudo i2cdetect -y 1

得到的结果:

python通过驱动控制灯 python驱动oled_解决方案_04


其中显示了“ 3C ”就说明是成功开启i2c了。

四、代码

代码如下:

from luma.core.interface.serial import i2c, spi
from luma.core.render import canvas
from luma.oled.device import ssd1306, ssd1325, ssd1331, sh1106
 
serial = i2c(port=1, address=0x3C)
device = ssd1306(serial)
 
with canvas(device) as draw:
    draw.rectangle(device.bounding_box, outline="white", fill="black") # 让屏幕周围显示一个框
    draw.text((30, 10), "Hello World", fill="white") # 将Hello World显示在屏幕第30列、第10行,显示的内容颜色为white(白色),但该屏幕无法呈现白色,只能显示当前LED灯的颜色

总结

之后就发现了一个关键但不致命的问题,那就是想显示中文字幕时就会报错。

python通过驱动控制灯 python驱动oled_python通过驱动控制灯_05