ESP8266(NodeMCU)OLED的使用

  ESP8266驱动OLED显示屏。使用SPI协议将单色7引脚SSD1306 0.96 OLED显示屏与NodeMCU连接,学习其基本的使用。

OLED显示屏

  有机发光二极管(Organic Light Emitting Diode,OLED)是一种发光二极管,其中由有机化合物制成的发光层在供应电流时发光。该层放置在两个电极之间。该技术用于计算机、电视、智能手机等显示屏。OLED显示器具有自己的光,不需要像LCD那样的任何背光,因此它们是节能的并且与许多微控制器一起使用。在LCD上使用OLED显示器的另一个优点是在OLED上显示大量且更好的图形质量。

  市场上有各种各样的OLED显示器。这些显示器的特征在于颜色、引脚数、控制器IC和屏幕尺寸。在基础颜色上,OLED有单色蓝色,单色白色和黄色/蓝色可供选择。通信方式上,主要有两种类型的OLED - 3pin和7pin。 3引脚OLED可用于I2C通信模式,7引脚OLED可用于SPI模式或I2C模式。

7脚OLED实物图:

在这里插入图片描述
使用代码,参考修改零知开源,代码仅供学习,需要安装相应的库函数。

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED显示宽度(像素)
#define SCREEN_HEIGHT 32 // OLED显示高度(像素)

// 使用软件SPI连接的SSD1306显示器声明(默认情况下):
#define OLED_MOSI   5  //DI   ------ D1
#define OLED_CLK    4  //D0  ------- D2
#define OLED_DC    14  //DC  ------- D5
#define OLED_CS    12  //CS  ------- D6
#define OLED_RESET 13  //RES -------D7
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,
  OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);


void setup() {
  Serial.begin(9600);

  // SSD1306_SWITCHCAPVCC = 内部产生3.3V的显示电压
  if(!display.begin(SSD1306_SWITCHCAPVCC)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // 不要继续,一直循环
  }
//在屏幕上显示初始显示缓冲区内容库用Adafruit启动屏幕初始化。
  display.display();
  // 清空缓冲区
  display.clearDisplay();

  // 用白色绘制单个像素
  display.drawPixel(10, 10, WHITE);

  // 在屏幕上显示显示缓冲区。必须在绘制命令后调用display(),使其在屏幕上可见!
  display.display();
  delay(2000);
}


void loop() {
    testdrawstyles();
    delay(2000);
}


void testdrawstyles(void) {
  display.clearDisplay();

  display.setTextSize(1);             // 正常1:1像素比例
  display.setTextColor(WHITE);        // 绘制白色文本
  display.setCursor(0,0);             // Start at top-left corner
  display.println(F("Qing Ye Mu Rong !"));

  display.setTextColor(BLACK, WHITE); // Draw 'inverse' text
  display.println(202059);

  display.setTextSize(2);             // Draw 2X-scale text
  display.setTextColor(WHITE);
  display.print(F("0x")); display.println(0xDEADBEEF, HEX);

  display.display();
  delay(2000);
}

效果图:
青烨慕容

猜你喜欢

转载自blog.csdn.net/weixin_45488643/article/details/106029569