本篇使用Arduino UNO 連接SSD1306 0.96 OLED
市面上OLED常見的0.96吋屬於SSD1306晶片規格。
OLED接線很簡單,使用I2C介面,所以只有4條線,SDA、SCL接到Arduino Uno板上的A4、A5,VCC接到5V,GND接GND。
Step 1. 安裝函式庫,本篇選用Adafruit提供的函式庫Adafruit SSD1306函式庫;而這個函式庫還要Adafruit GFX Library函式庫來配合,所以請一併安裝。
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED 寬度像素
#define SCREEN_HEIGHT 64 // OLED 高度像素
// 設定OLED
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
// 偵測是否安裝好OLED了
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // 一般1306 OLED的位址都是0x3C
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
display.display(); // 顯示Adafruit的LOGO,算是開機畫面
delay(1000); // 停1秒
display.clearDisplay(); // 清除畫面
testdrawstyles(); // 測試文字
testdrawbitmap(); // 顯示圖形
}
void testdrawstyles(void) {
display.clearDisplay();
display.setTextSize(2); // 設定文字大小
display.setTextColor(1); // 1:OLED預設的顏色(這個會依該OLED的顏色來決定)
display.setCursor(0,0); // 設定起始座標
display.print("Hello world!"); // 要顯示的字串
display.display(); // 要有這行才會把文字顯示出來
delay(1000);
}
void testdrawbitmap(void) {
//display.clearDisplay();
//顯示圖形,x,y,圖形文字,寬,高,1:OLED預設的顏色(這個會依該OLED的顏色來決定)
display.drawLine(0, 0, 127, 20, WHITE); //畫直線
display.display(); // 要有這行才會把文字顯示出來
delay(1000);
}
畫矩形
display.drawRect(10, 10, 50, 30, WHITE);
//drawRect(X, Y, 寬, 高, color);
display.drawRect(10, 10, 50, 30, WHITE);
display.drawCircle(64, 32, 10, WHITE);
//drawCircle(X, Y, 直徑, 顏色);
沒有留言:
張貼留言