Arduino学习笔记:Adafruit_SSD1306——OLED学习

Arduino学习笔记:Adafruit_SSD1306——OLED学习

Adafruit_SSD1306——OLED实体图:

Arduino学习笔记:Adafruit_SSD1306——OLED学习_第1张图片

由图可见:OLED一共有4个引脚,从左到右以此是GND、VCC、SCL、SDA,分别代表接地引脚、接电源引脚、SCL引脚用于获取I2C的时钟信号、SDA引脚用于传输数据。

利用ESP8266控制OLED显示器的接线图:

Arduino学习笔记:Adafruit_SSD1306——OLED学习_第2张图片

OLED显示原理:

OLED其实就是一个MxN的像素点阵,需要显示什么就得把具体坐标位置对应的像素点点亮。
Arduino学习笔记:Adafruit_SSD1306——OLED学习_第3张图片

支持OLED显示的主要函数库:
#include  //U8g系列的函数库功能强大且齐全 
#include     //I2C的引脚由该库定义 
#include  //该库定义了一系列绘画的方法,属于基础类库 
#include //以GFX为基础,专门用于SSD1306芯片的驱动库,主要用于画图

由于OLED本地没有支持中文汉字的文字库函数,所以若想在显示器上显示中文字体,则需要用到汉字取模软件。用字模工具取模显示,取模方式:C51格式,横向取模,取16X16汉字字模 ,逐行式 ,顺向高位在前。
首先进行取模方式的设置:
Arduino学习笔记:Adafruit_SSD1306——OLED学习_第4张图片
再进行汉字取模,以“国“字为例。
Arduino学习笔记:Adafruit_SSD1306——OLED学习_第5张图片
点阵生产区就是该汉字的点阵表示,只需将OLED上的对应像素点点亮即可在OLED显示器上显示该汉字。
全部代码如下:(注意在运行该代码前要在库管理处引入对应的库函数,且选对开发板型号和接对线,博主这里用的是ESP32)

/*
  OLED显示汉字
*/
//#include 
#include 
#include 
#include 

#define OLED_RESET     4
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);
//用字模工具取模显示,取模方式:C51格式,横向取模
//取16X16汉字字模 逐行式 顺向高位在前
static const unsigned char PROGMEM str1[] =
{
     
/*--  文字:  国  --*/
/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x7F,0xFC,0x40,0x04,0x40,0x04,0x5F,0xF4,0x41,0x04,0x41,0x04,0x4F,0xE4,
0x41,0x04,0x41,0x44,0x41,0x24,0x5F,0xF4,0x40,0x04,0x40,0x04,0x7F,0xFC,0x40,0x04,
};
void setup() {
     
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextColor(WHITE);//开像素点发光
  display.clearDisplay();//清屏
  display.setTextSize(1); //设置字体大小
  display.setCursor(0, 0);//设置显示位置 
  //第一个参数控制距离左边界的位数,第二个参数控制距离上边界的位数,第三个参数是所要显示的字符,
  //第四个参数和第五个参数规定了占用范围,
  //对于汉字来说16X16的点阵才能完整显示一个汉字,一个汉字2个字节16个位,第五个参数是字体的大小
  display.drawBitmap(0, 0, str1, 16, 16, 1); //画出字符对应点阵数据
  display.display();//开显示

}

void loop() {
     

}
成果图和接线图:

Arduino学习笔记:Adafruit_SSD1306——OLED学习_第6张图片

你可能感兴趣的:(Arduino学习笔记,物联网,嵌入式,arduino)