LoginSignup
0
1

More than 3 years have passed since last update.

OLED LCDディスプレイ(SSD1306)をESP32でHello-worldしてみる!

Posted at

OLED LCDディスプレイを買ったので、手元にあるESP32で簡単に動作確認してみたいと思います。意外と最近の記事が少なかったので備忘録もかねて書きます。
ついでにLCDディスプレイとI2C通信についても軽くふれていきます。

使ってみたLCDディスプレイについて

Amazonで売っていたHiLetgoのOLEDLCD(SSD1306)です。
約900円でした。I2C通信仕様の物を選んでみました。
Macのキーボードに載せてみました。思ったよりかなり小さい・・・
ピンはGND,VCC,SCL,SDAの4本です。

IMG_0846.JPG

I2C通信とは?

接続する前にI2C通信について簡単に説明します。I2C通信とはシリアル通信の1種です。
厳密にいうとシリアル通信の同期方式の一つになります。電源線の他に2本の線を接続する必要があります。

SDA : データ線 データを転送する。
SCL : クロック信号線 送信側と受信側の同期を行う。

参考になる記事
電子工作初心者のために シリアル通信方式を分かりやすくまとめてみた

ESP32との接続方法(Devkitcの場合)

ESP32のどこにさせばいいの?ということでまず、お手元のESP32の入出力ダイアグラムをみてみましょう。VCCは3.3vに繋いでください。
下記図をみると
GPIO21:SDA データ線
GPIO22:SCL クロック線
に該当することがわかります。

入出力ダイアグラム.jpg

ライブラリ

SSD1306 ESP32 と検索して出てくるライブラリをインストールしてください。

コード

注意する箇所はI2Cアドレスです。SSD1306本体の裏側を見て、抵抗がどこに繋がっているか確認して下さい。

//OLED LCD サンプル
//SDA データ線 GPIO 21
//SCL クロック線GPIO 22

#include <Wire.h>
#include "SSD1306.h"//ディスプレイ用ライブラリを読み込み

//本体裏側 0x78に接続→0x3C 0x7A→0x3A
SSD1306  display(0x3c, 21, 22); //SSD1306インスタンスの作成(I2Cアドレス,SDA,SCL)


void setup() {
  display.init();    //ディスプレイを初期化
  display.setFont(ArialMT_Plain_16);    //フォントを設定
  display.drawString(0, 0, "Hello SSD1306!!");    //(0,0)の位置にHello Worldを表示
  display.display();   //指定された情報を描画
}

void loop() {

}

結果(イメージ)

※SSD1366となっていますが、ミスです※

IMG_0847.JPG

終わりに

思ったより簡単にできました。ディスプレイがあるとセンサの値や、状態を確認するのが簡単になりそうですね。しかも安いし、コンパクトで尚且つ綺麗でした。
複数使う場合はアドレスを割当なければならないので、またいろいろ調査してみてください!!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1