OLED¶
概要¶
このレッスンでは、SSD1306ドライバーを使用したOLEDディスプレイについて学びます。OLED(有機発光ダイオード)ディスプレイは、スマートウォッチ、携帯電話、さらにはテレビなど、さまざまな電子機器で広く使用されています。SSD1306は、有機/ポリマー発光ダイオードのドットマトリックスグラフィックディスプレイシステム用のシングルチップCMOS OLED/PLEDドライバー兼コントローラーです。電流が流れると発光する有機物質ベースのダイオードを使用し、クリアで鮮明なビジュアル出力を提供します。
提供されたコードでは、ArduinoボードとI2Cプロトコルを介してOLEDディスプレイがインターフェースされます。コードはAdafruit SSD1306ライブラリを使用してディスプレイを制御します。プログラムは、以下のようなさまざまな機能をカバーしています:
テキストの表示:「Hello world!」が画面に表示されます。
反転テキスト:「Hello world!」が反転した色の配色で表示されます。
フォントサイズ:「Hello!」が拡大されたフォントサイズで表示されます。
数字の表示:123456789が表示されます。
ASCII文字:一連のASCII文字が表示されます。
スクロール:テキストがディスプレイを横切ってスクロールします。
ビットマップ表示:事前定義されたビットマップ画像がOLED画面に表示されます。
このOLEDディスプレイは、デジタル時計、ミニゲームコンソール、情報表示など、さまざまなアプリケーションで使用できます。コンパクトでポータブルなデバイスでユーザーインターフェイスを提供するための素晴らしい方法です。
必要なコンポーネント¶
このプロジェクトには、以下のコンポーネントが必要です。
全セットを購入するのが便利です。こちらがリンクです:
名称 |
このキットのアイテム数 |
リンク |
---|---|---|
Elite Explorer Kit |
300+ |
以下のリンクから個別に購入することもできます。
コンポーネント紹介 |
購入リンク |
---|---|
- |
|
配線図¶
回路図¶
コード¶
注釈
ファイル
15-oled.ino
をelite-explorer-kit-main\basic_project\15-oled
のパスで直接開くことができます。または、このコードをArduino IDEにコピーしてください。
注釈
ライブラリをインストールするには、Arduinoライブラリマネージャーを使用し、 「Adafruit SSD1306」 と 「Adafruit GFX」 を検索してインストールしてください。
コード解析¶
ライブラリのインクルードと初期定義: OLEDとのインターフェースに必要なライブラリを含めます。その後、OLEDの寸法とI2Cアドレスに関する定義が提供されます。
Adafruit SSD1306: このライブラリはSSD1306 OLEDディスプレイのインターフェースに役立つように設計されています。ディスプレイの初期化、設定の制御、コンテンツの表示などの方法を提供します。
Adafruit GFXライブラリ: これは、OLEDを含むさまざまな画面でテキストを表示したり、色を生成したり、図形を描画するためのコアグラフィックスライブラリです。
注釈
ライブラリをインストールするには、Arduinoライブラリマネージャーを使用し、 「Adafruit SSD1306」 と 「Adafruit GFX」 を検索してインストールしてください。
#include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define OLED_RESET -1 #define SCREEN_ADDRESS 0x3C
ビットマップデータ: OLED画面にカスタムアイコンを表示するためのビットマップデータです。このデータは、OLEDが解釈できる形式でイメージを表しています。
画像を配列に変換できるオンラインツール image2cpp を使用できます。
PROGMEM
キーワードは、配列がArduinoマイクロコントローラのプログラムメモリに格納されていることを示しています。大量のデータがRAMを大量に消費する場合に、プログラムメモリ(PROGMEM)にデータを格納すると有用です。static const unsigned char PROGMEM sunfounderIcon[] = {...};
セットアップ関数(初期化と表示):
setup()
関数はOLEDを初期化し、一連のパターン、テキスト、アニメーションを表示します。void setup() { ... // Serial initialization and OLED object initialization ... // Displaying various text, numbers, and animations }