Arduino UNO R4 WiFiフリップドットディスプレイNTP時計
UNO R4 WiFi

概要

以前、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

inserted by FC2 system