在Arduino上顯示OLED螢幕資料


在本教程中,我們將Arduino與SSD 1306 OLED顯示屏連線。

電路圖

如您所見,我們將Vcc連線到3.3V,GND連線到GND,SDA連線到A4,SCL連線到A5。A4和A5在Arduino Uno上也充當SDA和SCL。

所需庫

與OLED顯示屏連線Arduino Uno需要以下庫:

  • Adafruit SSD1306

  • Adafruit GFX

  • Adafruit BusIO(Adafruit GFX需要)

轉到**工具 → 管理庫**,搜尋這些庫並點選安裝。



示例

程式碼如下:

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

#define WIDTH 128 // OLED width (pixels)
#define HEIGHT 64 // OLED height (pixels)

#define ADDRESS 0x3C

//Creation of SSD1306 display object
Adafruit_SSD1306 display(WIDTH, HEIGHT, &Wire, -1);

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

   if(!display.begin(SSD1306_SWITCHCAPVCC, ADDRESS)) {
      Serial.println("SSD1306 initialization failed");
      while(1){}
   }

   delay(5000);
   display.clearDisplay();

   display.setTextColor(WHITE);
   display.setTextSize(1);
   display.setCursor(0, 10);
   // Display static text
   display.println("Hello World!");
   display.display();
}

void loop() {

}

如您所見,我們首先包含所需的庫,然後定義顯示寬度、高度和I2C地址。

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

#define WIDTH 128 // OLED width (pixels)
#define HEIGHT 64 // OLED height (pixels)

#define ADDRESS 0x3C

接下來,我們定義顯示。

Adafruit_SSD1306 display(WIDTH, HEIGHT, &Wire, -1);

末尾的-1表示此OLED顯示屏沒有復位引腳。如果OLED螢幕有復位引腳,請輸入連線復位引腳的Arduino GPIO引腳編號。&Wire表示I2C通訊物件(Wire)。

在Setup中,我們首先初始化Serial,然後我們嘗試使用display.begin()初始化顯示物件。它接收兩個引數:SSD1306_SWITCHCAPVCC和OLED顯示屏的I2C地址。

您可能想知道SSD1306_SWITCHCAPVCC代表什麼。根據Adafruit SSD1306庫原始碼中的註釋,此第一個引數確定VCC選擇。

“傳遞SSD1306_SWITCHCAPVCC從3.3V電源產生顯示電壓(升壓),否則傳遞SSD1306_EXTERNALVCC。大多數使用Adafruit SSD1306擴充套件板的情況都需要SSD1306_SWITCHCAPVCC。”

如果初始化成功,我們將繼續進行,否則我們將進入無限迴圈。

如果我們繼續進行,我們將等待一小段時間,然後清除顯示屏,然後設定文字顏色、文字大小和游標位置,然後寫入要顯示的文字。建議您嘗試不同的文字顏色、大小和游標位置。

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

   if(!display.begin(SSD1306_SWITCHCAPVCC, ADDRESS)) {
      Serial.println("SSD1306 initialization failed");
      while(1){}
   }
   delay(5000);
   display.clearDisplay();

   display.setTextColor(WHITE);
   display.setTextSize(1);
   display.setCursor(0, 10);
   // Display static text
   display.println("Hello World!");
   display.display();
}

在迴圈中,什麼也不做。

void loop() {

}

更新於:2021年5月31日

767 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.