LOADING

加载过慢请开启缓存 浏览器默认开启

arduino的oled

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