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);
}

效果圖:
青燁慕容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章