概要
以前、Arduino UNOで実験したフリップドットディスプレイと、Arduino UNO R4 WiFiを使い、NTP時計を作成しました。
ライブラリは、ArduinoGraphicsをベースにしたものに書き直しました。ArduinoGraphicsに付属のフォントもそのまま利用可能です。
ライブラリ
Arduino_LED_Matrixを参考に、ArduinoGraphicsを継承したライブラリを作成しました。
また、美咲フォントを表示するようにArduinoGraphicsを拡張した、garretlab_ArduinoGraphicsを利用するようにもして、美咲フォントも表示できるようにしました。
作成したのは、表示領域となるバッファを操作する関数と、そのバッファをフリップドットディスプレイに表示するためのデバイス依存のコード程度です。print()関数などは全く作成していないにもかかわらず利用可能です。文字のスクロールもできます。
作成したライブラリは、以下に置きました。
時刻の取得
Arduino UNO R4 WiFiに付属のスケッチ例である、WiFiUdpNtpClientのコードをほぼそのまま利用して、NTPサーバーから時刻を取得しました。
本来であれば、RTC_NTPSyncを利用して、NTPサーバーから取得した時刻を、リアルタイムクロックに設定する方法もあると思います。今回はそこまで行いませんでした。
フォント
ArduinoGraphicsに付属のフォントを使ってもよかったのですが、数字とコロン(:)だけのフォントを作成してみました。あいかわらず、デザインセンスありません。
プログラム
作成したライブラリのスケッチ例として、 https://github.com/garretlab/garretlab_XY5/tree/main/examples/clock というスケッチを作成しました。
WiFiに接続するための、SSIDとパスワードは、arduino_secrets.hに定義します。
XY5は、RS-485を利用して制御します。Arduinoでは、RS-485を扱うことはできないので、LTC485CN8というRS-485トランシーバを利用しました。ArduinoとLTC485CN8とは、シリアル通信を利用して通信します。
Arduino UNO R4 WiFiは、2つのハードウェアシリアルポートを搭載しています。シリアルモニタと通信する際は、USBシリアルに接続されているSerial
を利用します。一方、ボード上の0番ピンと1番ピンは、Serial1
を利用します。詳細はUSBシリアルとUARTを参照してください。
XY5の設定
XY5には、ディップスイッチが2組付いています。一つは、アドレスとテストモードの設定、もう一つは、通信速度の設定です。
アドレスとテストモードの設定
設定は以下の通りです。
スイッチ番号 | 意味 |
---|---|
0-5 | XY5のアドレス |
6 | 着磁時間。OFF: 500マイクロ秒(デフォルト)、ON: 450マイクロ秒 |
7 | テストモード。ON: テストモードオン、OFF: テストモードオフ。 |
サンプルプログラムでは、XY5のアドレスを1としています。このため、スイッチ0をON、1-5をOFFとしています。
通信速度の設定
設定は以下の通りです。
1 | 2 | 3 | 通信速度(bps) |
---|---|---|---|
OFF | OFF | OFF | N/A |
ON | OFF | OFF | N/A |
OFF | ON | OFF | N/A |
ON | ON | OFF | 9600 |
OFF | OFF | ON | 19200 |
ON | OFF | ON | 38400 |
OFF | ON | ON | 57600 |
ON | ON | ON | 9600 |
サンプルプログラムでは、通信速度を57600bpsとしています。このため、スイッチは1から順に、OFF・ON・ONとしています。
ピン接続
Arduino UNO R4 WiFiとLTC485CN8、XY5は、以下のように接続しました。
Arduino UNO R4 WiFiのピン番号 | LTC485CN8のピン番号 | XY5 |
---|---|---|
- | - | VCC(24V) |
- | - | GND |
5V | 8(VCC) | - |
GND | 5(GND) | - |
- | 6(A) | +485 |
- | 7(B) | -485 |
1(TX) | 4(DI) | - |
5V | 2(RE) | - |
5V | 3(DE) | - |
プログラム
以下に、プログラムを置きました。
https://github.com/garretlab/garretlab_XY5/
バージョン
Hardware: | Arduino UNO R4 WiFi |
Software: | Arduino IDE 2.3.2/Arduino UNO R4 Boards 1.2.0 |
最終更新日
August 3, 2024