Esp8266(NodeMcu) 0.96寸OLED顯示屏的簡單使用


  Esp8266使用0.96寸OLED顯示屏,進行簡單測試。

OLED簡介

  OLED,即有機發光二極管(Organic Light-Emitting Diode),又稱爲有機電激光顯示(Organic Electroluminesence Display, OELD)。OLED顯示技術具有自發光、廣視角、幾乎無窮高的對比度、較低耗電、極高反應速度等優點。OLED採用非常薄的有機材料塗層和玻璃基板,當有電流通過時,這些有機材料就會發光。

OLED引腳簡介

7腳OLED效果圖:圖片來源百度文庫,
在這裏插入圖片描述

GND: 電源地
VCC: 供電電源 3.3V、5V 都可以
D0: 串行輸入時鐘 CLK
D1: 串行輸入數據
RES: 復位
DC: 控制輸入數據/命令(高電平(1)爲數據,低電平(0)爲命令)

Esp8266代碼

  Arduin編譯環境,需要的庫<Adafruit_GFX.h>、<Adafruit_SSD1306.h>自行下載。5個引腳就可以驅動,如果自己在測試的時候5個引腳OLED不亮,把VCC與GND都連接就可以了。

#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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章