0、结果
说明:先来看看实际的结果,如果是你想要的,可以接着往下看。
1、外观
说明:本次使用的oled是0.96寸的,别的规格的屏幕不一定适用本教程,一般而言有显示白色、蓝色和蓝黄一起显示的。
2、连线
说明:只需要连接四根线。
uno————oled 0.96
5V--------------VCC
GND--------------GND
SCL--------------SCL
SDA--------------SDA
3、源程序
说明:采用非阻塞方式编写,一定时间显示一次数据,并将对应功能进行函数化,方便移植。
/****************************************oled96 part****************************************/
#include <Arduino.h> //include library
#include <U8g2lib.h> //include library
#include <Wire.h> //include library
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
#define oledTimeInterval 1000 //Detect the time interval of a trip
unsigned long oledTimes = 0; // Record the device running time
int textNum = 0;
/****************************************set up and loop part*********************************/
void setup() {
u8g2.begin(); //Example Initialize the IIC
}
void loop() {
oledDisplayMath(); //Display math
}
/****************************************oled96 part****************************************/
/*Display math*/
void oledDisplayMath() {
if (millis() - oledTimes >= oledTimeInterval) { //This command is executed once in a while
oledTimes = millis();
textNum++;
u8g2.setFont(u8g2_font_ncenB14_tr); //u8g2_font_6x12_tr
u8g2.setFontDirection(0);
u8g2.firstPage();
do {
u8g2.setCursor(0, 15); //0 means start at the first column and 15 means end at row 15
u8g2.print("Hello World!");
u8g2.setCursor(0, 31); //0 means start at the first column and 15 means end at row 15
u8g2.print("Num: ");
u8g2.setCursor(64, 31);
u8g2.print(textNum);
} while ( u8g2.nextPage() );
}
}
4、注意事项
说明:需要在线下载<u8glib.h>库文件。
5、基本原理
OLED 0.96寸显示屏是一种基于有机发光二极管(OLED)技术的显示屏幕。OLED通过利用有机物质在电流的作用下发光的特性来实现图像显示。0.96寸OLED屏幕是一种小型、高分辨率的显示器,可以用于各种嵌入式应用中。其原理如下:
1.内部架构
OLED 0.96寸显示屏由灰阶控制电路和OLED显示面板两部分组成。OLED显示面板由一系列的有机材料构成,包括发光材料和电子传输材料。发光材料负责发出红、绿、蓝三种颜色的光,而电子传输材料则负责将电子传输到每一个有机点上。
2.工作原理
当有电流通过OLED显示面板时,在每一个有机点处都会发射出光。OLED灰阶控制电路控制大量的电信号调整每一个像素点上的亮度,从而产生图像。与传统的液晶显示屏相比,OLED显示屏无需背光,具有更快的响应速度、更高的对比度和更鲜艳的颜色。其像素点是自发光的,因此可以在较小的屏幕上实现高分辨率和精细的图像显示。