【Arduino】OLEDに文字表示【Seeeduino】

【Arduino】OLEDに文字表示【Seeeduino】
【Arduino】OLEDに文字表示【Seeeduino】

この記事では、ArduinoとOLEDディスプレイを使って文字を表示する方法を解説していきます。使ったOLEDディスプレイは0.91インチと超小型のものです。通信方法はI2Cになりますが、u8g2ライブラリというものを使用すればとても簡単に文字表示が可能です。

LCDで文字表示させる場合には、 ArduinoでLCDに文字表示 をご覧ください。

また、Raspberry PiでOLEDを使いたい場合は Raspberry PiでOLEDに文字表示 をご覧ください。

はじめに

OLEDとは

OLEDとは「Organic Light Emitting Diode」の略で、LEDの発光素材にオーガニック(有機物質) を使ったものです。「有機エレクトロルミネッセンス」や「有機EL」と呼ばれたりします。 通常の黒い液晶ディスプレイですと、自ら発光しないため、明るくするにはバックライトが必要でした。しかし、OLEDディスプレイであればバックライトが不要です。OLED自らが発光するので、明るく鮮明な表示ができます。私もはじめてArduinoで使ってみましたが「カッコイイ!」と思いました。笑

OLEDによるディスプレイは液晶と比べて実用化が遅かったため高価です。それでも、だいぶ価格は下がっているようで、安くて手に入りやすいです。ちなみに、今回はこちらのOLEDディスプレイを使用しました。解像度は128x32で、ドライバICはSSD1306が使われてます。電源は3.3V〜5Vの範囲で使用できます。

▼ 他にもいろいろなサイズがあります!

開発環境

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

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

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

Arduinoボードは「Seeeduino XIAO」を使用しましたが、お好みのArduinoボードで構いません。どのArduinoでも、この記事の内容で動作します。

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

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

ArduinoでOLEDディスプレイを扱うには 「u8g2ライブラリ」 を使うと便利です。今回使用するOLEDディスプレイはI2C通信ですが、ライブラリを使えば細かい設定をせずにすぐ使うことができます。まずは、Arduino IDEに「u8g2ライブラリ」ライブラリをインストールしましょう。

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

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

ちなみにこの「u8g2」ライブラリは次のチップが使われているOLEDやLCDに対応しているそうです。

SSD1305、SSD1306、SSD1309、SSD1322、SSD1325、SSD1327、SSD1329、SSD1606、SSD1607、SH1106、SH1107、SH1108、SH1122、T6963、RA8835、LC7981、PCD8544、PCF8812、HX1230 、UC1601、UC1604、UC1608、UC1610、UC1611、UC1701、ST7565、ST7567、ST7588、ST75256、NT7534、IST3020、ST7920、LD7032、KS0108、SED1520、SBN1661、IL3820、MAX7219 etc...

使用できるすべてのデバイスリストはこちらをご確認ください。 u8g2 setup cpp·olikraus/u8g2Wiki·GitHub

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

それではOLEDディスプレイとArduinoをつないで「Hello world!」を表示させてみましょう。

OLEDとSeeeduino XIAOの配線

配線は次の通りです。どのArduinoにもI2C用のSCLピンとSDAピンがありますので、そちらに合わせて繋いでください。

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

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

Seeeduino XIAOのGPIO
Seeeduino XIAOのGPIO

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

SeeduinoでOLEDに文字表示
SeeduinoでOLEDに文字表示

こちらが「Hello world!」を表示させるプログラムです。上記プログラムをArduinoにアップロードすれば、写真のように文字が表示されるはずです。

cpp
#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) {
}
U8G2_SSD1306_128X32_UNIVISION_F_HW_I2Cは、使用するOLEDの内蔵ICと画面サイズに合わせてください。今回は、内蔵ICにSSD1306が使われており、画面サイズは128x32ですので、このような記述になってます。違うOLEDディスプレイご利用する場合は、こちらのリストから選び書き換えてみてください。

u8g2 setup cpp·olikraus/u8g2 Wiki·GitHub

u8g2.setFont(u8g2_font_8x13_tf) ではフォントを選ぶことができます。使用できるフォントはこちらを参考にしてみてください。 fntgrp·olikraus/u8g2 Wiki·GitHub fntlistall · olikraus/u8g2 Wiki · GitHub

また、こちらの記事では超音波センサを使って距離を逐次表示してみました。

関連記事

 
最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム

人気のArduino互換機
Arduinoで人気の周辺パーツ
あると便利な道具
Arduinoのオススメ参考書

▼ Arduino初心者向きの内容です。ほかのArduino書籍と比べて図や説明がとてもていねいで読みやすいです。Arduinoで一通りのセンサーが扱えるようになります。

▼ 外国人が書いた本を翻訳したものです。この手の書籍は、目からうろこな発見をすることが多いです。

▼ Arduinoの入門書を既に読んでいる方で、次のステップを目指したい人向きの本です。C言語のプログラミングの内容が中心です。ESP32だけでなく、ふつうのArduinoにも役立つ内容でした。

関連記事