1.5inch OLED Module old
相关资料
树莓派
提供C语言与python例程
树莓派使用教程
开启SPI接口
- 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 选择Interfacing Options -> SPI -> Yes 开启SPI接口
sudo reboot
请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查
开启I2C接口
- 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动
sudo reboot
安装库
如果使用bookworm系统,只能使用lgpio库,bcm2835跟wiringPi无法安装与使用,python库可以不安装,直接运行程序即可
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
sudo su 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/
硬件连接
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同理