即出厂程序设置:两个0R电阻连接SPI位置;
两个0R电阻连接I2C位置;PS:程序默认SPI模式,需要切换模式请修改DEV_Config.h详见程序说明-底层硬件接口-接口选择
本款OLED使用的内置控制器为SSD1309,它有128×64bitsSRAM,支持最大128×64像素屏幕,支持SPI/I2C/6800并口/8080并口,256级亮度设置,本屏幕为128×64像素,所以内部SRAM没有完全使用。本模块采用四线SPI和IIC两种接口,兼容性好,传输速度高。
提供BCM2835、WiringPi、RPI(Python)库例程
连接树莓派的时候,选择用7PIN排线连接,请参考下方的引脚对应表格
sudorebootI2C同理,进入配置界面选择InterfaceingOptions->I2C->Yes开启IIC接口,然后重启
如果使用bookworm系统,只能使用lgpio库,bcm2835跟wiringPi无法安装与使用,python库可以不安装,直接运行程序即可
cdcsudomakecleansudomake-j8所有屏幕的测试程序,可以直接通过输入对应的尺寸进行调用:
sudo./main屏幕尺寸根据不同OLED,应当输入以下某一条指令:
#python2sudopythonOLED_1in3_c_test.py#python3sudopython3OLED_1in3_c_test.py假如你购买了1.5inchRGBOLEDModule,请输入:
Device_SPI=1Device_I2C=0注意:切换SPI/I2C修改这里defmodule_init()defmodule_exit()注意:1.这里是处理使用液晶屏前与使用完之后一些GPIO的处理。2.module_init()函数会在液晶屏的init()初始化程序自动调用,但module_exit()需要自行调用defspi_writebyte(data)i2c_writebyte(reg,value):main.py主函数,如果你的python版本是python2,在linux命令模式下重新执行如下:
sudopythonmain.py如果你的python版本是python3,在linux命令模式下重新执行如下:
sudoapt-getinstallpython3-pil安装库然后导入库
fromPILimportImage,ImageDraw,ImageFont其中Image为基本库、ImageDraw为画图功能、ImageFont为文字
image1=Image.new("1",(disp.width,disp.height),"WHITE")第一个参数定义图片的颜色深度,定义为"1"说明是一位深度的位图,第二个参数是一个元组,定义好图片的宽度和高度,第三个参数是定义缓存的默认颜色,定义为“WHITE”。
draw=ImageDraw.Draw(image1)draw.line([(0,0),(127,0)],fill=0)第一个参数为一个4个元素的元组,以(0,0)为起始点,(127,0)为终止点,画一条直线,fill="0"表示线为白色。
draw.rectangle([(20,10),(70,60)],fill="WHITE",outline="BLACK")第一个参数为一个4个元素的元组,(20,10)矩形左上角坐标值,(70,60)为矩形右下角坐标值,fill="WHITE"表示内部填充黑色,outline="BLACK"表示外边框为黑色。
draw.arc((150,15,190,55),0,360,fill=(0,255,0))在正方形内画一个内切圆,第一个参数为一个4个元素的元组,以(150,15)为正方形的左上角顶点,(190,55)为正方形右下角顶点,规定矩形框的水平中位线为0度角,角度顺时针变大,第二个参数表示开始角度,第三个参数标识结束角度,fill=0表示线为白色如果不是正方形,画出来的就是椭圆,这个实际上是圆弧的绘制。
除了arc可以话圆之外,还有ellipse可以画实心圆
draw.ellipse((150,65,190,105),fill=0)实质是椭圆的绘制,第一个参数指定弦的圆外切矩形,fill=0表示内部填充颜色为白色,如果椭圆的外切矩阵为正方形,椭圆就是圆了。
写字符往往需要写不同大小的字符,需要导入ImageFont模块,并实例化:
Font1=ImageFont.truetype("../Font/Font01.ttf",25)Font2=ImageFont.truetype("../Font/Font01.ttf",35)Font3=ImageFont.truetype("../Font/Font02.ttf",32)为了有比较好的视觉体验,这里使用的是来自网络的免费字体,如果是其他的ttf结尾的字库文件也是支持的。注:每字库包含的字符均有不同;如果某些字符不能显示,建议根据字库使用的编码集来使用写英文字符直接使用即可,写中文,由于编码是GB2312所以需要在前面加个u:
draw.text((5,68),'Helloworld',fill=0,font=Font1)text=u"微雪电子"draw.text((5,200),text,fill=0,font=Font3)第一个参数为一个2个元素的元组,以(5,68)为左顶点,字体为font1,点,fill为字体颜色,fill=0,所以会显示字体颜色为白色,第二句显示微雪电子,字体颜色为白色。
image=Image.open('../pic/pic.bmp')参数为图片路径。
提供基于STM32F103RBT6的例程
我们提供的例程是基于STM32F103RBT6的,提供的连接方式也是对应的STM32F103RBT6的引脚,如果需要移植程序,请按实际引脚连接
我们进行了底层的封装,由于硬件平台不一样,内部的实现是不一样的,如果需要了解内部实现可以去对应的目录中查看在DEV_Config.c(.h)可以看到很多定义
我们提供的例程是基于UNOPLUS的,提供的连接方式也是对应的UNOPLUS的引脚,如果需要移植程序,请按实际引脚连接
在正常的工作条件下,一般有50000个小时
在3.3V工作电压下:
0.95inchRGBOLED的工作电流:全白显示约为38mA,全黑显示约为4mA。
0.96inchOLED的工作电流:全亮约为25mA,全灭约为1.5mA。
1.3inchOLED的工作电流:全亮约为29mA,全灭约为1.0mA。
1.51inchOLED的工作电流:全亮约为171mA,全灭约为6.9mA。
2.42inchOLED的工作电流:全亮约为196mA,全灭约为7.3mA。
OLED是没有背光的,显示属于自发光方式。只接VCC和GND,OLED是不会亮的。