0.91inch OLED Module

来自Waveshare Wiki
Eng10讨论 | 贡献2019年7月31日 (三) 14:35的版本
跳转至: 导航搜索
0.91inch OLED Module
{{{name2}}}
{{{name3}}}
功能简介
特性 无特性,不解释
显示尺寸 0.91英寸
分辨率 128×32
' 无特性,不解释
' 无特性,不解释
接口 OLED I2C

产品概述

产品特性

  • 驱动芯片 : SSD1306
  • 支持接口 : I2C
  • 分辨率 : 128 * 32
  • 显示尺寸 : 1.5inch
  • 显示颜色 : 白色
  • 工作电压 : 3.3V / 5V

工作原理

SSD1306 是一款 128*64 像素的 OLED 控制器,但该 OLED 只有 128*32 个像素点,所以该屏只用到了 SSD1306 缓存区的前半部分。
该 OLED 支持 8bit 8080 并行、8bit 6800 并行、三线 SPI、四线 SPI 和 I2C 等通信方式,但考虑到该模块的尺寸,以及节省微控制器宝贵的 IO 资源,故舍弃了前四种通信方式,只支持 I2C的通信方式。

I2C 通信协议

0.91inch oled module i2c.png
在 I2C 通信时,先发送一个 7bit 的从设备地址+1bit 的读写位,等待设备的响应。
在从设备应答后,接着发送一个控制字节,该字节决定了后面发送的字节是命令还是数据,然后再等待从设备应答。
在从设备再次应答之后,若发送命令,则只发送一字节的命令。若发送数据,可以只发送一个字节,也可以多个字节的数据连着发送,视情况而定。
详见 Datasheet Page20 Figure 8-7

树莓派使用

开启I2C接口

  • 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 
选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动

RPI open i2c.png
然后重启树莓派:

sudo reboot

安装库

如果使用bookworm系统,只能使用lgpio库,bcm2835跟wiringPi无法安装与使用

BCM2835

#打开树莓派终端,并运行以下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/

wiringPi

#打开树莓派终端,并运行以下指令
cd
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

#Bullseye分支系统使用如下命令:
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行gpio -v会出现2.70版本,如果没有出现说明安装出错

lgpio

#打开树莓派终端,并运行以下指令
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
sudo make install

# 更多的可以参考官网:https://github.com/gpiozero/lg
  • 安装Python函数库
#python2
sudo apt-get update
sudo apt-get install python-pip
sudo apt-get install python-pil
sudo apt-get install python-numpy
sudo pip install RPi.GPIO
sudo pip install spidev
#python3
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo pip3 install RPi.GPIO
sudo pip3 install spidev

下载示例程序

sudo apt-get install p7zip
http://www.waveshare.net/w/upload/3/37/0.91inch_OLED_Module_Code.7z
7zr x 0.91inch_OLED_Module_Code.7z -r -o./0.91inch_OLED_Module_Code
sudo chmod 777 -R 0.91inch_OLED_Module_Code
cd 0.91inch_OLED_Module_Code

运行测试例程

  • BCM2835
cd bcm2835/
make clean 
make
sudo ./oled_0in91
  • wiringPi
cd wiringpi/
make clean 
make
sudo ./oled_0in91
  • python
cd python/
sudo python Adafruit_Python_SSD1306/setup.py install
sudo python stats.py

STM32使用

  • 本例程使用的开发板主控为 XNUCLEO-F103RB
  • 本例程基于 HAL 库,因此可以使用 STM32CubeMX 把示例程序移植到其他 STM 芯片上
  • 本例程在 Keil v5 环境下编译通过
模块 XNUCLEO-F103RB
VCC 3V3/5V
GND GND
SDA SDA/D14
SCL SCL/D15

在资料中下载程序,或点击此处下载
解压后打开\STM32\0.91inch_OLED_Demo\MDK-ARM\0.91inch_OLED_Demo.uvprojx
编译并下载到开发板上

Arduino使用

  • 本例程使用的开发板主控为Arduino UNO
模块 XNUCLEO-F103RB
VCC 3V3/5V
GND GND
SDA SDA
SCL SCL

在资料中下载程序,或点击此处下载
解压后将Arduino\0.91Inch_OLED_Demo\下的文件复制到Arduino\0.91Inch_OLED_Demo\oled\目录下
打开Arduino\0.91Inch_OLED_Demo\oled\oled.ino
编译并下载到开发板上

OLED是没有背光的,显示属于自发光方式。只接VCC和GND,OLED是不会亮的。 必须用程序控制才能亮点OLED。


1.注意电源不要接反。

2.不能长时间显示同一画面,否则将产生残影,导致OLED损坏。