ArduinoでOLED

この記事では、Arduinoと0.91インチのOLEDディスプレイを使って、文字を表示するまでのやり方を解説していく。なお、通信方法はI2Cで、u8g2ライブラリを使用した。

OLEDは「有機エレクトロルミネッセンス」や「有機EL」とも呼ばる。今までの黒い液晶文字は自ら発光しないためバックライトで表示を明るくしていたが、OLEDディスプレイはLEDで発光するのでバックライトの必要は無く、明るくキレイ。

以前なら高価だったOLEDディスプレイも、今では安く手に入れることができる。今回は「DSD TECH/OLED 0.91インチディスプレイ」を使って、Arduino互換品のSeeeduino XIAOで文字を表示させていく。

購入したDSD TECHのOLED 0.91インチディスプレイ
購入したDSD TECHのOLED 0.91インチディスプレイ

開発環境

項目バージョン
ArduinoデバイスSeeeduino XIAO
OLEDディスプレイDSP TECH 0.91インチディスプレイ
Arduino IDE1.8.10
パソコンmacOS Big Sur 11.0.1
ライブラリu8g2

「DSD TECH/OLED 0.91インチディスプレイ」のマニュアルはこちら

Seeeduino XIAOのセットアップ方法はこちらを参考に

u8g2ライブラリのインストール

ArduinoでOLEDディスプレイに文字を表示するために、次の手順でu8g2ライブラリをインストールする。

Arduino IDESketchInclude Library へ進み「u8g2」で検索してu8g2ライブラリをインストール。

Arduino IDE ライブラリマネージャを開いてu8g2で検索する
Arduino IDE ライブラリマネージャを開いてu8g2で検索する

OLEDディスプレイに文字を表示

それではOLEDとSeeeduinoを繋いで「Hello world!」を表示させてみよう。

OLEDとSeeeduino XIAOの配線

配線は次の通り。

OLEDとSeeeduino XIAOの配線図
OLEDとSeeeduino XIAOの配線図

OLEDSeeeduino XIAO
GNDGND
VCC5V
SCLSCL(A5)
SDASDA(A4)

Seeeduino XIAOのGPIO
Seeeduino XIAOのGPIO

「Hello world!」を表示させるプログラム

#include <U8g2lib.h>

U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

void setup(void) {
  u8g2.begin();
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_8x13_tf);
  u8g2.drawStr(0, 10, "Hello world!");
  u8g2.drawStr(0, 21, "OLED screen TEST");
  u8g2.drawStr(0, 32, "with U8g2lib");
  u8g2.sendBuffer();
}

void loop(void) {
}

今回使用する「DSD TECH/OLED 0.91インチディスプレイ」は、SSD1306チップが使われている。そして通信方法はI2C、解像度は128x32なので、プログラム中のようにU8G2_SSD1306_128X32_UNIVISION_F_HW_I2C を宣言している。

上記プログラムをArduinoにアップロードすれば、下の写真のように文字が表示されるだろう。

Arduinoを使ってOLEDにHello worldの文字が表示できた
Arduinoを使ってOLEDにHello worldの文字が表示できた

もう少し実践的な例として、超音波センサーを使って距離を逐次表示できるようにしてみたのでこちらの記事もご参考に。

ちなみに文字の大きさやフォントは、こちらのリストから選ぶことができる。

今回使用した製品はこちら

DSD TECH 2 PCS OLED 0.91インチディスプレイ IIC I2C シリアルポート Arduino ARM用
DSD TECH 2 PCS OLED 0.91インチディスプレイ IIC I2C シリアルポート Arduino ARM用

0.91インチのOLEDディスプレイ:解像度128 * 32、非常にクリア、黒の背景、青色のテキスト表示。 IIC(I2C)インタフェース:SPIインタフェース画面よりも4つのPIN(VCC、GND、SCL、SDA)だけが簡単です。 他のセンサーを接続するために、さらに多くのポートを残すことができます。

Amazon
Seeed Studio Seeeduino XIAO-Arduino IDE 互換ボード SAMD21 Cortex M0+搭載 ブレッドボード互換 USB Type-C(3pcs)
Seeed Studio Seeeduino XIAO-Arduino IDE 互換ボード SAMD21 Cortex M0+搭載 ブレッドボード互換 USB Type-C(3pcs)

Seeeduino XIAO開発ボードは、ARMCortex-M0+ 32ビット48MHzマイクロコントローラー(SAMD21G18)を搭載し、低消費電力です。クロック周波数は48MHzと、Arduino Uno、Arduino Nanoの3倍です。 又、このArduino IDE互換ボードには256KBのフラッシュメモリ、32KBのSRAMも搭載されています。

Amazon

Arduinoの参考書

電子部品ごとの制御を学べる! Arduino 電子工作実践講座 改訂第2版
電子部品ごとの制御を学べる! Arduino 電子工作実践講座 改訂第2版

電子パーツを自由自在に組み合わせて電子工作ができるように、Arduinoによる電子部品ごとの制御方法を詳しく解説。初心者や電子工作に躓いた人でも安心して取り組めるよう、豊富な図・写真で徹底解説。2018年発刊の「Arduino 電子工作 実践講座」の改訂版です。

KindleAmazon
Arduinoをはじめよう 第3版 (Make:PROJECTS)
Arduinoをはじめよう 第3版 (Make:PROJECTS)

本書では、開発者自らが、Arduinoの哲学、ハードウェア、ソフトウェアの基礎を解説、誰にでもできる簡単なチュートリアルを行います。

Amazon

Amazonでお得に購入するなら、Amazonギフト券がオススメ!

コンビニ・ATM・ネットバンキングで¥5,000以上チャージすると、プライム会員は最大2.5%ポイント、通常会員は最大2%ポイントがもらえます!
Amazonギフト券

あなたにおすすめ