
OLED128x64(I2C)配線図およびサンプルコード
最も一般的なArduino用OLEDはI2Cインターフェース(4ピン)です:
ピン表示 | 意味 |
---|---|
VCC | 電源の正極(通常は3.5Vまたは5V) |
GND | 電源のGND |
SCL | クロックライン(ArduinoのSCLに接続) |
SDA | データライン(ArduinoのSDAに接続) |
配線方法(I2Cの場合):
OLEDピン | 接続先(Arduino UNO) |
---|---|
VCC | 5V(OLEDによっては3.5Vが必要な場合があります。背面の表記をご確認ください) |
GND | GND |
SCL | A5(UNOのI2Cクロック) |
SDA | A4(UNOのI2Cデータ) |
Arduinoのサンプルコード(U8g2ライブラリ使用):
1. ライブラリのインストール:Arduino IDE > ライブラリマネージャー > “U8g2″を検索してインストール
2. サンプルコードは以下の通りです:
#include
#include
// 初始化:U8G2_SSD1306_128X64_NONAME_F_HW_I2C(使用硬件I2C)
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0); // R0 = 正向显示
void setup() {
u8g2.begin();
}
void loop() {
u8g2.clearBuffer(); // 清除显示缓冲区
u8g2.setFont(u8g2_font_ncenB08_tr); // 设置字体
u8g2.drawStr(0, 20, "Hello OLED!");
u8g2.sendBuffer(); // 将缓冲内容送到 OLED
delay(1000);
}
注意:
U8g2では、Y座標は画面の上端ではなく文字のベースラインに対応しているため、以下に注意してください:
• 画面の左上の座標は (0,0) ですが、1行目の文字はだいたいY=10〜12あたりに配置します(フォントによります)
• `u8g2.drawStr(x, y, “文字”)` で描画しますが、このときの `y` はベースラインの位置を指定します
補足説明:
以下のようにして各行の高さを取得することもできます:
int height = u8g2.getMaxCharHeight(); // 現在のフォントのピクセル高さを取得
そして複数行を次のように配置します:
u8g2.drawStr(0, height * 1, "第1行");
u8g2.drawStr(0, height * 2, "第2行");
u8g2.drawStr(0, height * 3, "第3行");
oxxo