![b26613aae63a113749ceb3607fada9f4.png](https://img-blog.csdnimg.cn/img_convert/b26613aae63a113749ceb3607fada9f4.png)
最近会发些以各类传感器的使用为主文章。预计后面几篇基本上也是这样,把各类传感器向大家介绍一下,顺便跟大家分享几个小作品。
之前的推送步子有点大,作品中用了OLED 屏幕。可能有的同学不明就里。所以,打算用2篇文章把OLED 屏幕向大家介绍一下。
什么是OLED 屏幕
OLED 屏幕作为一种新型的显示技术,其自身可以发光(普通的液晶屏是用背光灯发光的,oled是靠像素点本身发光的),亮度,对比度高,功耗低,在当下备受追捧。而在我们正常的显示调整参数过程中,我们越来越多的使用这种屏幕。屏幕分辩率有128*64,128*32等,屏幕尺寸有0.96和1.3英寸等。
发光颜色有黄色、白色、蓝色、双色等。
目前我们经常使用的 OLED 屏幕一般有两种接口,IIC 或者 SPI
IIC接口有4个针脚(VCC,GND SCL,SDA)
SPI接口(D0时钟,D1数据,RES复位,DC命令/数据选择,CS片选)
驱动芯片来说主要有SSD1306、SH1107两种
一般OLED屏幕都会有一套相配套的程序库,比较主流的是Adafruit_GFX、Adafruit_SSD1306库和u8g、u8g2。我本人必要愿意用u8g系列的库。因为它功能强大。
今天,我们先来以SSD1306芯片的12864屏幕为例,介绍Adafruit系列库的使用。
Adafruit_GFX和Adafruit_SSD1306 有什么关系呢?
Adafruit_GFX定义了一系列的绘画方法(线,矩形,圆....),属于基础类,并且最重要的一点,drawPixel方法由子类来实现。Adafruit_SSD1306定义了一系列跟SSD1306有关的方法,并且重写了drawPixel方法,属于扩展类。
也就是说Adafruit_SSD1306是以Adafruit_GFX为基础,专门用于SSD1306芯片的驱动库。这个库的功能是画图。
以下,我们通过具体的程序来讲解库的用法。
#include
#include
#include
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH 16