ESP8266 /ESP32OLED显示自定义图标或中文

Posted Kamimiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP8266 /ESP32OLED显示自定义图标或中文相关的知识,希望对你有一定的参考价值。

本文是接着上一篇文章写的

使用软IIC驱动OLED显示字符

工作准备

字模软件:下载地址

文字取模

打开 - PCtoLCD2002.exe
模式,选择字符模式,输入文字然后生成字模

在这里插入图片描述
把生成的字模存在一个列表里

class Chine:
  chine=[
  0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,
  0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00,#/*"温",0*/

  0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,
  0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00,#/*"度",1*/
  ]

把以下函数写进main.c 注意函数内的列表调用要跟随自己放的文件名改

def ByteOpera(num,dat):
  byte= [0x01,0x02,0x04,0x8,0x10,0x20,0x40,0x80]
  if dat&byte[num]:
    return 1
  else:
    return 0
def LcdShowCh_16x16(n, x_axis, y_axis):
  for i in range(2):
    for a in range(16):
      for b in range(8):
        if(ByteOpera(b,Chine.chine[n*32+i*16+a])):
          oled.pixel(x_axis+a,y_axis+i*8+b,1)
        else:
          oled.pixel(x_axis+a,y_axis+i*8+b,0)  

测试:

  LcdShowCh_16x16(0,0,16)#显示 温
  LcdShowCh_16x16(0,16,16)#显示 度
  oled.show() #OLED 执行显示

写进板子重启后,应该可以看见第一行显示 温度 两字

手绘图像取模

切换取模软件到图形模式
新建一个空白图像
在这里插入图片描述
在这里插入图片描述
在这里画出一个符号然后取模 ,像中文那样放进列表再调用就可以显示了
在这里插入图片描述

在这里插入图片描述
因为刷新率关系,这里漏了个字没拍到

看完这两篇文章,现在你已经可以用OLED显示 英文,中文,和一些小图标了

以上是关于ESP8266 /ESP32OLED显示自定义图标或中文的主要内容,如果未能解决你的问题,请参考以下文章

ESP8266 /ESP32OLED显示自定义图标或中文

ESP8266/ESP32 +1.3“ or 0.96“ IIC OLED指针时钟+数字时钟显示

ESP8266 /ESP32软件IIC方式驱动OLED显示字符,基于micropython

ESP8266 /ESP32软件IIC方式驱动OLED显示字符,基于micropython

ESP8266 /ESP32软件IIC方式驱动OLED显示字符,基于micropython

ESP32/8266 + Arduino SSD1306库驱动OLED