AliExpressの電子部品がとても安いので、最近よく利用しています。無料配送だと、届くまで時間がかかりますが。
今回は、OLEDディスプレイを購入して、遊んでみました。
○配線図
※OLEDディスプレイの形状は異なります。
○I2Cアドレスの確認
次のスケッチをArduinoに書き込み、シリアルモニターでI2Cアドレスを確認します。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Wire.h> | |
void setup() { | |
Wire.begin(); | |
Serial.begin(9600); | |
Serial.println("\nI2C Scanner"); | |
} | |
void loop() { | |
byte error, address; | |
int nDevices; | |
Serial.println("Scanning..."); | |
nDevices = 0; | |
for(address = 1; address < 127; address++ ) | |
{ | |
// The i2c_scanner uses the return value of | |
// the Write.endTransmisstion to see if | |
// a device did acknowledge to the address. | |
Wire.beginTransmission(address); | |
error = Wire.endTransmission(); | |
if (error == 0) { | |
Serial.print("I2C device found at address 0x"); | |
if (address<16) | |
Serial.print("0"); | |
Serial.print(address,HEX); | |
Serial.println(" !"); | |
nDevices++; | |
} else if (error==4) { | |
Serial.print("Unknow error at address 0x"); | |
if (address<16) | |
Serial.print("0"); | |
Serial.println(address,HEX); | |
} | |
} | |
if (nDevices == 0) | |
Serial.println("No I2C devices found\n"); | |
else | |
Serial.println("done\n"); | |
delay(5000); // wait 5 seconds for next scan | |
} |
○ライブラリのインストール
「Adafruit SSD1306」「Adafruit GFX」ライブラリをダウンロードしてインストールします。
○サンプルスケッチの書き込み
①[ファイル]→[スケッチの例]→[Adafruit SSD1306]→[ssd1306_128x64_i2c]を選択します。
②I2Cのアドレスを確認したアドレスに書き換えます。
display.begin(SSD1306_SWITCHCAPVCC, 0x3D); // initialize with the I2C addr 0x3D (for the 128x64)
↓
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)
③「#if~#endif」の3行をコメントアウトします。
④[スケッチ]→[マイコンボードに書き込む]を選択します。
0 件のコメント:
コメントを投稿