这里使用「Adafruit_SSD1306」驱动库,下载链接:https://github.com/adafruit/Adafruit_SSD1306
硬件连接
这里使用IIC驱动屏,在开发板上,ESP8266的GPIO4(D2)和GPIO5(D1)分别通过跳线帽连接到OLED屏的SDA和SCL引脚。
【花雕学编程】239种传感器执行器系列实验(资料代码+仿真编程+图形编程)
实验二百四十六:ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340
实验项目之三:ESP8266驱动OLED屏
实验开源代码
/*
【花雕学编程】239种传感器执行器系列实验(资料代码+仿真编程+图形编程)
实验二百四十六:ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340
实验项目之三:ESP8266驱动OLED屏
*/
#include <ESP8266WiFi.h> // 包含ESP8266WiFi库
#include <Wire.h> // 包含I2C通信库
#include <Adafruit_GFX.h> // 包含Adafruit_GFX库,用于图形显示
#include <Adafruit_SSD1306.h> // 包含Adafruit_SSD1306库,用于控制OLED显示屏
Adafruit_SSD1306 oled(128, 64, &Wire, -1); // 初始化OLED显示屏,尺寸为128x64,使用I2C通信
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC,0x3C); // 初始化OLED显示屏,地址为0x3C
oled.setTextColor(WHITE); // 设置文字颜色为白色,打开像素点发光
oled.clearDisplay(); // 清空显示屏内容
oled.setTextSize(1); // 设置字体大小为1
oled.setCursor(35, 5); // 设置光标位置在x=35, y=5处
oled.println("-TonyCode-"); // 在指定位置显示"-TonyCode-"
oled.setTextSize(2); // 设置字体大小为2
oled.setCursor(15, 30); // 设置光标位置在x=15, y=30处
oled.println("OLED TEST"); // 在指定位置显示"OLED TEST"
oled.display(); // 更新显示屏,显示内容
}
void loop() {
// 空的循环函数
}
代码解读
这段代码是用于驱动ESP8266连接OLED屏幕的示例。
1. 库的引入:
#include <ESP8266WiFi.h>:引入ESP8266的WiFi库。
#include <Wire.h>:引入I2C通信库,用于与OLED屏幕通信。
#include <Adafruit_GFX.h>:引入Adafruit的GFX库,提供基本的图形功能。
#include <Adafruit_SSD1306.h>:引入Adafruit的SSD1306 OLED驱动库。
2. OLED对象初始化:
Adafruit_SSD1306 oled(128, 64, &Wire, -1);:创建一个OLED对象,分辨率为128x64,使用I2C通信接口。
3. setup()函数:
oled.begin(SSD1306_SWITCHCAPVCC,0x3C);:初始化OLED屏幕,设置电源供应方式和I2C地址。
oled.setTextColor(WHITE);:设置文本颜色为白色。
oled.clearDisplay();:清除屏幕显示。
oled.setTextSize(1);:设置字体大小为1。
oled.setCursor(35, 5);:设置文本显示的起始位置。
oled.println("-TonyCode-");:在指定位置显示文本“-TonyCode-”。
oled.setTextSize(2);:设置字体大小为2。
oled.setCursor(15, 30);:设置文本显示的起始位置。
oled.println("OLED TEST");:在指定位置显示文本“OLED TEST”。
oled.display();:更新屏幕显示。
4. loop()函数:
该函数为空,表示程序运行后不会有循环操作。
实验场景图
评论