1.5inch OLED Module old

来自Waveshare Wiki
跳转至: 导航搜索

相关资料

树莓派

提供C语言与python例程

树莓派使用教程

开启SPI接口

PS:如果使用的是Bullseye分支的系统,需要将”apt-get“改成“apt",Bullseye分支的系统只支持Python3。
  • 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config
选择Interfacing Options -> SPI -> Yes 开启SPI接口

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

sudo reboot

请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查

开启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
sudo apt-get updata
sudo apt-get install python-pip 
sudo pip install RPi.GPIO
sudo apt-get install python-smbus
sudo pip install spidev

下载例程

在树莓派终端运行:

sudo apt-get install p7zip-full
wget http://www.waveshare.net/w/upload/9/9d/1.5inch_OLED_Moudle.7z
7z x 1.5inch_OLED_Moudle.7z  -r -o./1.5inch_OLED_Moudle
sudo chmod 777 -R  1.5inch_OLED_Moudle
cd 1.5inch_OLED_Moudle/Raspberry/

硬件连接

1.5inch-oled-module-rpi-connet.JPG

LCD 树莓派BCM
VCC 5V
GND GND
DIN MOSI
CLK SCK
CS CE0
DC 24
RST 25

SPI例程(默认例程)

  • C语言
cd C
make clean
make
sudo ./main
  • python
cd python
#python2
sudo python main.py
#python3
sudo python3 main.py

I2C控制

  • 默认使用的4线SPI,如果硬件上修改成I2C的,需要修改程序
OLED 树莓派
DIN SDA
CLK SCL

C语言

打开C\obj\DEV_Config.h,把如下:

#define USE_SPI 1
#define USE_IIC 0

改成

#define USE_SPI 0
#define USE_IIC 1

然后重新执行:

make clean
make
sudo ./main

python

打开python/config.py,把如下:

Device_SPI = 1
Device_I2C = 0

改成

Device_SPI = 0
Device_I2C = 1

然后重新执行:

sudo python main.py

STM32使用

  • 本例程使用的开发板为 XNUCLEO-F103RB,程序是基于HAL库

硬件连接

LCD XNUCLEO-F103RB
VCC 5V
GND GND
DIN PA7
CLK PA5
CS PB6
DC PA8
RST PA9

SPI与I2C切换

在DEV_Config.h中定义了两个宏:USE_SPI_4W和USE_IIC。若使用I2C控制,则将USE_IIC配置为1,USE_SPI_4W配置为0;若使用四线SPI控制,则将USE_IIC配置为0,USE_SPI_4W配置为1;
同样的硬件上的连接就需要改成连接至I2C接口。
DIN-PB9
CLK-PB8

预期效果

打开串口调试工具并配置正确,复位开发板后,会打印相关信息,OLED首先会刷屏,然后展示常见的画点,画线,画框,画图,显示字等功能2s,然后再显示位图,16位灰度图,同时显示时间(动态模拟时钟)

Arduino使用

  • 本例程使用的开发板为Arduino UNO

硬件连接

LCD UNO
VCC 5V
GND GND
DIN D11
CLK D13
CS D10
DC D7
RST D8
BL D9

SPI与I2C切换

在DEV_Config.h中定义了两个宏:USE_SPI_4W和USE_IIC。若使用I2C控制,则将USE_IIC配置为1,USE_SPI_4W配置为0;若使用四线SPI控制,则将USE_IIC配置为0,USE_SPI_4W配置为1;
同样的硬件上的连接就需要改成连接至I2C接口。
DIN-D14
CLK-D15

使用

  • 配置通信方式:

在DEV_Config.h中定义了两个宏:USE_SPI_4W和USE_IIC; 若使用I2C控制,则将USE_IIC配置为1,USE_SPI_4W配置为0;若使用四线SPI控制,则将USE_IIC配置为0,USE_SPI_4W配置为1;

  • 配置RAM:

在OLED_Driver.h中定义了三个宏来选择控制方式, 可以找到如下:

#define USE_INT_RAM 1
#define USE_EXT_RAM 0
#define USE_OLED_RAM 0

分别是使用控制器内部RAM,使用外接RAM,以及使用OLED的RAM
内部RAM根据Arduino的型号有区别:
例程使用的是UNO控制,因此OLED_BUFSIZ只有64 * 16字节,占1K大小,如果要显示全屏,OLED_BUFSIZ需要8K大小; 若使用外部RAM控制,只需要将USE_EXT_RAM 设置成 1其他两个配置成0即可; 关于使用OLED RAM的,因为OLED控制器在使用串口通信时,是无法读取缓存中数据的,这里的定义只是为了兼容其它OLED,无其他特殊意义

现象

编译并下载至开发板
打开串口调试工具并配置正确,复位开发板后,会打印相关信息,OLED首先会刷屏,然后展示常见的画点,画线,画框,画图,显示字等功能2s,然后再显示位图,16位灰度图,同时显示时间(动态模拟时钟)

Jetson nano

安装库

安装函数库

  • 打开终端界面,输入以下指令安装相应的函数库
sudo apt-get update
sudo apt-get install python3-pip
sudo pip3 install Jetson.GPIO
sudo groupadd -f -r gpio
sudo usermod -a -G gpio your_user_name
sudo cp /opt/nvidia/jetson-gpio/etc/99-gpio.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger

【注意】your_user_name 是你使用的用户名,比如说 waveshare

  • 安装I2C
sudo apt-get install python-smbus
  • 安装图像处理库:
sudo apt-get install python3-pil
sudo apt-get install python3-numpy

下载程序

sudo apt-get install p7zip
wget http://www.waveshare.net/w/upload/9/9d/1.5inch_OLED_Moudle.7z
7zr x 1.5inch_OLED_Moudle.7z -r -o./1.5inch_OLED_Moudle
sudo chmod 777 -R  1.5inch_OLED_Moudle
cd 1.5inch_OLED_Moudle/Jetson\ Nano/

硬件连接

LCD Jetson nano(BCM)
VCC 5V
GND GND
DIN MOSI
CLK SCK
CS CE0
DC 24
RST 25

I2C控制

  • Jetson nano目前只支持I2C控制,修改对应的硬件连接方式
OLED Jetson nano
DIN SDA
CLK SCL

C语言

打开C\obj\DEV_Config.h,把如下:

#define USE_SPI 1
#define USE_IIC 0

改成

#define USE_SPI 0
#define USE_IIC 1

然后重新执行:

make clean
make
sudo ./main

python

打开python2/config.py,把如下:

Device_SPI = 1
Device_I2C = 0

改成

Device_SPI = 0
Device_I2C = 1

然后重新执行:

sudo python main.py

python3同理