Arduino UNO R4の登場で広がるArduinoの世界(3)Arduino UNO R4 minimaでLiquidCrystalライブラリを動かす
今回、Arduino UNO R4で採用されたルネサスのRA4M1に内蔵されているOPアンプを動かすことを予定していました。このOPアンプの機能を利用するためにArduino.ccを捜したのですが、入力がA1、A2、出力がA3との記述しか見つかりませんでした。
ルネサスのRA4M1のデータシートのpp.1383~1394の間に、OPアンプを利用するためのRA4M1の具体的な操作については記述してあります。これらの操作を行うArduinoライブラリの提供があるのを待つことにしました。
ここでは、前半にパラレル・インターフェースのLC
●LCDモジュールを接続する
Arduinoの標準のライブラリに用意されているLCDモジュール用の「LiquidCrystalライブラリ」を 使用します。このライブラリは、日立のHD44780のキャラクタLCDモジュールのコントローラおよびその互換機に対応しています。パラレル・インターフェースのキャラクタ・ディスプレイ・モジュールのほとんどに対応しています。ここでは秋月電子通商で販売しているSD1602HULBを使用します。
このデバイスの使い方は、この「電子工作を始めよう」の中の次のページで紹介しています。詳細についてはそちらも参考にしてください。
ArduinoにLCDキャラクタ・ディスプレイ・モジュールを接続する(1)
この記事では、10回にわたって各種のパラレル・インターフェースのキャラクタLCDモジュールを説明しています。
●テスト回路
図の①~⑭はLCDモジュールのピン番号を示します。①の右横はバックライトの電源のGND、その右横はバックライトのプラス電源、330Ωの電流制限抵抗を介してバックライトの電源が供給されます。
このテスト回路の具体的な接続方法、利用方法は次に示すページにあります。
SD1602モジュールのピン配置とArduino UNO R4との6本の配線は、d2(RS)、d3(E)、d4(DB4)、d5(DB5)、d6(DB6)、d7(DB7)と接続します
ArduinoにLCDキャラクタ・ディスプレイ・モジュールを接続する(4)
■超小型LCDキャラクタ・ディスプレイ・モジュールをArduinoで使う(1)
当然のことですが、UNO R3 で利用できた5V電源のLCDモジュールはUNO R4でも同様に使用することができました。次は、I2CインターフェースのLCDモジュールをテストします。
●I2CインターフェースのLCD
秋月電子通商で販売しているI2CインターフェースのLCDモジュールAQM1602は、3.3V、5Vの両方の電源電圧に対応しているので、3.3V電源のArduino MKRシリーズ、5V電源のArduino UNOのどちらにも直接接続できます。
UNO R4の回路図ではSCL、SDAの端子はボード内で5.1kΩの抵抗で5Vの電源にプルアップされています。しかし、そのつもりでI2Cの配線のプルアップ抵抗を省略してテストすると、期待通りの結果が得られませんでした。SCLとSDA端子と5Vの電源との間の抵抗を計ったら数メガΩ以上の値でプルアップ抵抗の存在を確認できませんでした。それぞれのラインを10kΩの抵抗でプルアップしテストを行います。
AQM1602の5VとGNDの電源は、UNOの電源を接続します。I2Cの信号線はAQM1602のSCL、SDAの端子とArduino UNO R4のSCLとSDAをそれぞれ接続します。忘れずに10kΩの抵抗でI2Cの信号線をプルアップします。
●テスト・スケッチ
テスト・スケッチは、次のページで作成したライブラリi2clcdを利用します。このページの最後にi2clcd.zipをダウンロードできる表示があります。この表示をダブルクリックすると、ダウンロード・フォルダにi2clcd.zipがダウンロードされます。
「I2CインターフェースLCDモジュール用のライブラリを作る(7)ライブラリ完成」
ダウンロードしたi2clcd.zipを展開すると次のようになります。
このライブラリを作成した当時は必要ありませんでしたが、以後ライブラリの仕様に変更があり、library.propertiesのファイルがライブラリのフォルダに追加されるようになりました。このファイルはライブラリに関する情報をArduino IDEに知らせるもので、次のような内容が含まれています。
◆library.properties ファイルのフォーマット
オプション以外が必須です。
◆name
ライブラリの名称を name=名称 で設定します。
◆version
ライブラリのバージョン番号を示します。Arduino IDE 2.1.1のバージョン番号と同じようにN.N.Nのフォーマットで示します。
◆author
作成者を示す名前、ニックネームなどを設定します。オプションでメール・アドレスを追加もできます。
◆ maintainer
メインテンナンス行う者の名前とメール・アドレスです。
◆sentence
ライブラリの説明文です。
◆paragraph
より詳しいライブラリの追加の説明文です。
◆category - (defaults to Uncategorized) allowed values:
次に示すカテゴリを示します。
Display
Communication
Signal Input/Output
Sensors
Device Control
Timing
Data Storage
Data Processing
Other
◆url
ライブラリの説明のあるurlを記述します。
◆architectures
特定のアーキテクチャに依存するコードが含まれている場合、そのアーキテクチャを示します。依存しない場合は*を設定してボードを選ばないことを示します。以上で必須の項目がそろいます。
◆UTF-8でエンコード
library.properties はUTF-8で、このファイルは説明は日本語で表記できる可能性があります。作成者、ライブラリの説明を日本語表記にして、次のようにlibrary.propertiesファイルを作成しました。
各項目は 項目名=説明 形式で設定します。ライブラリの作成者を示すauthorは筆者を漢字表記にしました。そのほか説明文を日本語表記にしています。
name=i2clcd version=1.2.0 author=神崎康宏 maintainer= denshi.club denshi.club@gmail.com sentence=Arduino I2Cインターフェース用LCDライブラリ paragraph=AQM1602、ACM1602用、3.3V、5Vの電源電圧にも対応 category=display url=https://www.denshi.club/cookbook/arduino/r4/arduino-uno-r4arduino3.html architectures=* |
●ライブラリのフォルダを作る
このライブラリに格納するフォルダをi2clcdの名で作成します。そのフォルダにsrcという名のフォルダを作成し、そのフォルダにi2clcd.hとi2clcd.cppを格納します。
i2clcdフォルダのルート・ディレクトリには、library.properties、keywords.txtを格納します。サンプル・スケッチが用意されている場合は、ルート・ディレクトリにexamplesフォルダを作成し、そこにサンプル・スケッチを格納します。examplesフォルダには、今回テストに利用したi2clcdtest01.inoを格納しています。サンプルとして利用してください。
i2clcdライブラリのフォルダを次に示します。srcフォルダにはi2clcd.hとi2clcd.cppが格納されています。
ここで作成したライブラリはZIP形式のファイルにして、メニュー・バーから、次のようにインストールします。
スケッチ>ライブラリのインクルード> ZIP形式のライブラリをインストール
この方法でi2clcdライブラリをインストールします。まず作成したライブラリのフォルダを右ボタンでクリックして表示されるリストから、「ZIPファイルを圧縮する」を選択して次に示すようにi2clcd.zipを作ります。
●ライブラリi2clcdのインストール
i2clcd.zipができたので「スケッチ>ライブラリのインクルード」を選択すると、次に示すように「ZIP形式のライブラリをインストール」が選択できるようになります。
「ZIP形式のライブラリをインストール」を選択すると、ライブラリのzipフォルダを設定するための画面が表示されます。該当するライブラリを選択して「開く」ボタンをクリックしてライブラリをインストールします。
ライブラリがインストールされると、次に示すようにコンソール(出力)にlibrary installedと表示されます。「スケッチ>ライブラリをインクルード」を選択すると、ライブラリのリストの「提供されたライブラリ」の中にi2clcdが表示されます。
「ファイル>スケッチ例」を選択すると、利用できるスケッチ例の一覧に次に示すように「カスタムライブラリのスケッチ例」にi2clcdの表示のもとにi2clcdtest01のスケッチが表示されます。このスケッチを選択し実行してみます。
サンプルのスケッチを開くと次のようになります。このスケッチを次に示すArduino UNO R4 MinimaとAQM1602のテスト回路にアップロードします。
テスト・スケッチでは、#include “i2clcd.h”と#include <Wire.h>でライブラリのヘッダ・ファイルを読み込み、setup()関数ではWire.begin()でWireライブラリを開始しています。
上段にi2clcd testと表示し、下段にはテスト開始からカウントアップした値と命令の実行時間を示す44ms近辺の値が表示されます。
i2clcd.zipのフォルダのデータを用意したのでダウンロードして利用してみてください。
ライブラリの具体的な内容については次回説明します。
(2023/08/13)
<神崎康宏>