当サイトは2020年小学生のプログラミング必修化に関して、関連する情報を纏めています。

Arduino(アルデュイーノ) とOLED液晶ディスプレイを繋ぐ 3

Arduino(アルデュイーノ) とOLED液晶ディスプレイを繋ぐ 3

 

当記事は、『HiLetgo® 0.91″ IIC I2C シリアルOLED液晶ディスプレイモジュール 128×32 』を使用してArduino IDE V1.8.7で紹介した記事をOLEDディスプレイ128×64を使用すると共にIDE V1.8.16を使用して書き直したものです。

Arduino(アルデュイーノ)のプログラムは、Arduino IDEという開発環境でソフトを作り、Arduino本体にUSB経由でパソコンからプログラム(スケッチと呼びます)をロードして動かします。今回はこのIDEを使います。当記事は、こちらの記事を参考にしました。英語ではありますが、詳しく説明されています。

当サイトの他の記事でArduino IDEを導入済みの方はAステップは省略してください。また、Arduinoについて初めての方はこちらの記事を参照ください。Scratchのようにブロックでプログラミングできる環境も紹介しています。

A.Arduino Software(IDE)の導入(Windows 10)

1.Arduino ソフトウエアのページを開き、『ARDUINO 1.8.16』(2021/9/19現在の最新)の『Windows ZIP file 』をクリックしてください。導入が終わるまでArduinoはパソコンにつながないで下さい。

2.寄付をもとめられますので、寄付をする場合は『寄付をしてダウンロード』、しない場合は『ダウンロードだけ』をクリックします。以下はダウンロードだけの例です。
arduroid2-2

3.arduino-1.8.16-windows.zipというファイルがダウンロードされますので、適当なフォルダーに解凍してください。arduino-1.8.16というフォルダーの中に『arduino.exe』というプログラムがありますので、ダブルクリックすると以下のように開発環境が開きます。(注:私はCドライブに解凍しました)

4.今後Arduino IDEを使用していくうえで、行番号を表示しておくと便利ですので設定を変更しておきます。ファイル→環境設定をクリックします。

5.環境設定のウインドウが開きますので、『□行番号を表示する』に✔を入れてOKをクリックしてください。

6.以下のように行番号が表示されます。

7.ここで、ArduinoをパソコンのUSBポートに接続すると、ドライバーが導入されます。ツールメニューのシリアルポートで接続されたことが確認できます。COM7の数字はパソコンの環境によって異なります。

B.OLED液晶ディスプレイ用のライブラリーの導入

今回使用した液晶ディスプレイは、I2Cと呼ばれる通信方法でArduinoと通信します。SSD1306というコントローラーチップが使われていますので、そのチップを使うためのライブラリーが必要です。以下の手順でAdafruit_SSD1306ライブラリーとAdafruit-GFXライブラリーを導入します。

1.Arduinoのツールメニューから『ライブラリーを管理』を選択します。

2.以下の『ライブラリーマネージャー』ウインドウが表示されますので、以下のように検索窓に『Adafruit GFX Library』を入力すると下に結果が表示されますので、『Adafruit GFX Library』をインストールしてください。
注:バージョンは最新が表示されていますので、特定のバージョンをインストールしたい場合以外は変更する必要はありません。

3.前のステップでインストールをクリックすると、以下の画面が表示されますので『Install all』をクリックしてください。

4.先ほどと同じように検索窓に『Adafruit SSD1306』を入力すると下に結果が表示されますので、『Adafruit SSD1306』をインストールしてください。これで必要なライブラリーは導入されましたので、ライブラリーマネージャーのウインドウは閉じてください。

5.上記の手順で導入したライブラリーは『ドキュメント→Arduino→libraries』フォルダー内に保管されています。また作成したスケッチも同じArduinoフォルダー内に保管されます。

C.Arduinoと液晶ディスプレイを以下のように接続します

D.サンプルプログラムで液晶ディスプレイに表示してみる

1.Arduino IDEのファイル→開くをクリックします。

2.以下のようなウインドウが開きますので、『ドキュメント→Arduino→libraries→Adafruit_SSD1306→examples→ssd1306_128x64_i2c』フォルダー内の『ssd1306_128x64_i2c.ino』を選択して開くをクリックしてください。

3.『ssd1306_128x64_i2c.ino』が開きますが、私の購入した製品ではサンプルプログラムを修正する必要がありました。I2Cデバイスはそれぞれアドレスを持ちますが、サンプルプログラムでは128×64デバイスは『0x3D』でコーディングしてありますが、私の製品は『0x3C』でしたのでプログラムがロードされても何も表示されませんでした。
その場合は以下のようにサンプルプログラム35行目を修正してください。
(注:購入したOLEDディスプレイの取説などで確認してください)

35行目修正前
#define SCREEN_ADDRESS 0x3D ///< See datasheet for Address; 0x3D for 128×64, 0x3C for 128×32
35行目修正後
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128×64, 0x3C for 128×32

4.スケッチをボードに書き込むため、➡(マイコンボードに書き込む)をクリック

5.コンパイルが始まります。

6.コンパイルが終わると、続いてボードへの書き込みがされます。

7.書き込みが終わると、プログラムが実行されます。

ここまでで、Arduinoと液晶ディスプレイがうまく動くことが確認できました。

E.漢字を液晶ディスプレイに表示してみる

カタカナだけでも表示できないかと調べてみましたら、カタカナどころか漢字まで表示できるライブラリーを公開されている方がいらっしゃいましたので、紹介します。
たま吉さんのサイトの記事で、Arduino UNOのメモリーだけで1710文字(教育漢字1,006字+α)が使えます。詳しくはたま吉さんの記事を参照してください。たま吉さんのサイトでは、SDカードにフォントファイルを置いて漢字を表示するライブラリーも公開されていますので、大変参考になります。

Copyright (c) 2018 Hirokazu Yamazaki
当記事のサンプルプログラムは以下のライセンスに基づき使用、提供しています。
https://opensource.org/licenses/mit-license.php

Copyright (c) 2012, Adafruit Industries
All rights reserved.
https://github.com/adafruit/Adafruit_SSD1306/blob/master/license.txt

 

アルデュイーノカテゴリの最新記事