arduino的oled
芯片手册:
芯系列0.96oled(SSD1306)请确保你的芯片支持<Wire.h>或者<SPI.h>的库
否则不做支持
具体引脚请看自己的芯片不做过多叙述
头文件加宏定义:
//这个为IIC屏
#include <SPI.h>//spi库
#include <Wire.h>//iic库
#include <Adafruit_GFX.h>//适配很多种屏幕显示图形字体的一个功能库;
#include <Adafruit_SSD1306.h>//适配驱动OLED屏显示芯片的库文件;
#define SCREEN_WIDTH 128 //横向分辨率 x
#define SCREEN_HEIGHT 64 //纵向向分辨率 yy
#define OLED_RESET -1 //复位脚,一般屏幕没复位所以填-1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
//第三个参数用于选择模式,&Wire为iic模式,&SPI为spi模式
oled初始化函数
display.begin(SSD1306_SWITCHCAPVCC, 0x3C)
SSD1306_SWITCHCAPVCC这个不知道
0x3C为iic通信的设备的地址
返回值:布尔值成功是1否则是0
清空屏幕信息
display.clearDisplay();
设置文本大小
display.setTextSize(uint16_t s);
s:
为文本的大小,默认为1。
其中1代表6 x 8
2代表12 x 16
3代表18 x 24
以此类推。
设置屏幕颜色
display.setTextColor(uint16_t c);
c参数:
SSD1306_BLACK(0)设置黑色
SSD1306_WHITE(1)设置白色
SSD1306_INVERSE(2)设置相反的颜色
设置显示屏显示旋转角度
display.setRotation(uint8_t x)
参数:x为旋转角度,范围:0~3。默认为0。
其中0代表旋转0度,1代表旋转90度2代表旋转180度,3代表旋转270度。
设置屏幕渲染的位置
display.setCursor(x,y);
参数:x为文本的起始x坐标,y为文本的起始y坐标。
范围:x,y均大于或等于0
在指定位置画一个不填充颜色的矩形
display.drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
x:
为矩形起始x坐标
y:
为矩形起始y坐标
w:
为矩形宽度
h:
为矩形高度
color:
为矩形边的颜色范围:x,y大于或等于0;w,h大于0,在Adafruit_SSD1306库中color的取值为
SSD1306_BLACK,SSD1306_WHITE或SSD1306_INVERSE
在指定位置显示绘制位图
display.drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h, uint16_t color)
在指定位置显示绘制位图,可用来在显示屏上显示中文。
参数:x为图像起始x坐标,y为图像起始y坐标
bitmap[]:
为单色位图的字节数组w为位图宽度,h为位图高度
color:
为位图颜色。范围x,y均大于或等于0同上
打印屏幕
display.display();
将当前缓冲区中的数据推送到SSD1306 显示屏。即显示数据。
参考代码:
IIC
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void ShowText(void);
void setup() {
Serial.begin(9600);//初始化串口
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("SSD1306 allocation failed");
//等待屏幕初始化
while(1);
}
ShowText();
}
void loop() {
// put your main code here, to run repeatedly:
}
void ShowText(void) {
//清空屏幕信息
display.clearDisplay();
//设置文本字体大小为2
display.setTextSize(2);
//设置屏幕颜色为白色
display.setTextColor(SSD1306_WHITE);
//设置打印的起始坐标10,16
display.setCursor(10, 16);
//设置显示的文本信息
display.println(F("happy day"));
//将屏幕缓冲区数据刷到屏幕上,显示出来
display.display();
}
SPI
开发ing