AliExpressで購入したSSD1306 OLEDモジュールをArduinoで動作確認しました。使用したライブラリはAdafruit SSD1306です。
ライブラリのインストール
Arduino IDE (Ver.1.8.13)で、「スケッチ」-「ライブラリをインクルード」-「ライブラリを管理...」を開く。検索窓に「Adafruit SSD1306」などと入力して、
Adafruit SSD1306 (by Adafruit)
を探し「インストール」します。同様に
Adafruit GFX Library (by Adafruit)
を探し「インストール」します。
SPI
ブレッドボード配線
Arduino Pro mini 3.3V/8MHz(互換品)を使用しました。
接続表
SSD1306 | Arduino | 機能 |
---|---|---|
GND | GND | GND |
VCC | VCC | VCC(3.3V) |
D0 | 10 | SPI/SCK |
D1 | 9 | SPI/MOSI |
RES | 13 | RESET |
DC | 11 | Data/Command |
CS | 12 | SPI/CS |
動作確認用スケッチ
「ファイル」-「スケッチ例」-「カスタムライブラリのスケッチ例」-「Adafruit SSD1306」-「ssd1306_128x64_spi」
SPI通信波形
C1:D1(SPI/MOSI) C2:D0(SPI/SCK)
I2C
ブレッドボード配線
Arduino Pro mini 3.3V/8MHz(互換品)を使用しました。
I2Cの信号線(SCK/SDA)はプルアップが必要ですが、OLEDモジュールでプルアップされており、Arduino側でも内部プルアップされているため、外部プルアップは不要です。ただし信号波形がなまる場合は必要に応じて追加で外部プルアップします。
接続表
SSD1306 | Arduino | 機能 |
---|---|---|
GND | GND | GND |
VCC | VCC | VCC(3.3V) |
SCK | A5 | I2C/SCL |
SDA | A4 | I2C/SDA |
動作確認用スケッチ
「ファイル」-「スケッチ例」-「カスタムライブラリのスケッチ例」-「Adafruit SSD1306」-「ssd1306_128x64_i2c」
重要:SSD1306 OLEDのI2Cアドレスを変更する必要がある場合があります。私が使用したモジュールは変更が必要でした。
// #define SCREEN_ADDRESS 0x3D ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
I2C波形
外部プルアップしない場合
C1:SDA C2:SCK
2.2kΩで外部プルアップした場合
C1:SDA C2:SCK
0 件のコメント:
コメントを投稿