今回はSSD1306を使いディスプレイに表示する方法を紹介します。
今回使用するディスプレイ
画像は秋月電子さんのサイトになっていますがAmazonで「SSD1306」と検索すると同じものが出てきます。
回路図
プログラム
ライブラリの追加
ライブラリマネージャーに「SSD1306」と検索します。するとAdarfuit SSD1306と出てくると思うのでインストールします。
ライブラリの依存関係について聞かれるので全てをインストールをクリック。
これでライブラリの追加は終わりです。
プログラム例
#include <Wire.h> #include <Adafruit_GFX.h> //Adarfuitの画像描写ライブラリーを読み込む #include <Adafruit_SSD1306.h> //AdarfuitのSSD1306用ライブラリーを読み込む const int SCREEN_WIDTH = 128; //ディスプレイのサイズ指定 const int SCREEN_HEIGHT = 64; //ディスプレイのサイズ指定 const int SCREEN_ADDRESS = 0x3C; //I2Cのアドレス指定 Adafruit_SSD1306 display( SCREEN_WIDTH, SCREEN_HEIGHT, &Wire); //ディスプレイ制御用のインスタンスを作成。この時にデイスプレのサイズを渡す。 int count = 1; //countを整数型の変数として定義 void setup() { display.begin( SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS ); //ディスプレイを初期化。この時にI2Cアドレスを渡す。 display.clearDisplay(); //画面描写エリアを削除。 display.display(); //画面描写エリアをディスプレイに転送。ここで全画面を削除。 delay( 1000 ); //1秒待機 } void loop() { display.clearDisplay(); display.setTextSize( 2 ); //フォントサイズ指定。 display.setTextColor( SSD1306_BLACK, SSD1306_WHITE ); //display.setTextColor( 文字本体の色, 背景の色) display.setCursor( 15, 10 ); //描写開始座標(X.Y) display.print( " HIBIKI " ); //("")内を表示する。 display.setCursor( 0, 30 ); display.setTextColor( SSD1306_WHITE, SSD1306_BLACK ); display.setTextSize( 1 ); display.println( " MicroMouse " );//printの後ろにlnが付くことで表示した後に開業する。 display.print( " Enjoy! " ); display.setCursor( 10, 55 ); display.print( "Count:" ); display.print( count ); //変数の中身を表示する。 display.display(); //上記で設定したprint()をディスプレイに転送し表示する。 delay(1000); count = count + 1; //ループを1回通るごとに1づつたされる。 }
実際の接続画像
注意事項
本来i2C通信を行うときはSDA,SCLそれぞれにプルアップ抵抗が必要です。今回購入したディスプレイ(SSD1306)はディスプレイの基板側にプルアップ抵抗(4.7kΩ)がはんだ付けされているため新たにプルアップ抵抗を入れる必要がありません。
R6、R7に4.7kΩが付いておりその先にSDA,SCLピンに接続されていたためこの抵抗がプルアップ抵抗だと予想しています。
プログラムにコメント文で説明を入れているため読みながら試してみてください。
今回は文字と数字の表示しか紹介していませんが上記のサイトには図形の表示方法も紹介せれているので気になる方はお試しください。
これでSSD1306の紹介を終わります。お疲れ様でした。