フリップドットディスプレイ
UNO

概要

ポーランドのALFAZETAという会社が製造・販売しているXY5というフリップドットディスプレイをArduinoから制御するための実験です。

以前、Arduino Project Hubで紹介されていたFlip-Dot-Clockで利用されているデバイスが面白そうだったので調べていたところ、作者の方がこちらのページに入手方法等を書かれていたので、参考にして入手しました。

フリップドットディスプレイを使ったデジタル時計はこちら

データシート

概要

フリップドットディスプレイは、裏と表で色の違う小さいディスクを電磁石の力を利用して回転させ、情報を表示させます。いろいろなサイズのものがありますが、今回私が入手したディスプレイは、縦7ドット、横28ドットのディスプレイです。それでも、横幅は30cm弱あります。ディスクが回転する際、カシャカシャと音を立てます。また、ディスクそのものは光りません。

デモモードも用意されていて、その場合は、電源を接続するだけで、ディスプレイにいろいろ表示されます。

電圧と電流、制御方法は以下の通りです。

項目 内容
電源電圧 24V
最大消費電流(ただしサイズは14x28のもの) 680mA
制御方法 RS-485

RS-485を利用して、制御します。Arduinoでは、RS-485を扱うことはできないので、LTC485CN8というRS-485トランシーバを利用しました。

インタフェース

コマンド

以下の順序で、RS-485を通じて、コマンドを送信すると、ディスクが回転し、情報が表示されます。ディスプレイからは何も送信されません。

データ 名前 説明
0x80 ヘッダ 制御開始
0x83 コマンド 表示コマンド
アドレス アドレス ディスプレイのアドレス。アドレスはDIPスイッチを使って設定します。
データ データ 28バイト分のデータ。各データは、0x00から0x7f
0x8f エンドバイト 制御終了。

実験

XY5とLTC485CN8、Arduinoとの接続

XY5とLTC485CN8、Arduinoは以下のように接続しました。

XY5 LTC485CN8のピン番号 Arduinoのピン番号
VCC(24V) - -
GND - -
- 8(VCC) 5V
- 5(GND) GND
+485 6(A) -
-485 7(B) -
- 4(DI) 1(TX)
- 2(RE) 5V
- 3(DE) 5V

XY5からデータを受信する必要がないので、Arduinoの0番とLTC485CN8の1番は使用せず、LTC485CNの2番(RE)と3番(DE)は5V固定にしています。

Arduinoプログラミング

ディスプレイよりは大きめのデータ用のバッファを作成し、ディスプレイのサイズのウインドウを切り出して表示するようにしてみました。また、任意のドットの表示・非表示、文字の表示をできるようにしました。フォントは、7x4のサイズで作成しました。とても小さいフォントなので、うまく読めない文字もあります。英小文字はあきらめました。

全体としては、LiquidCrystal ライブラリっぽくしてみました。

実行の様子

スクロールする前の様子です。HELLO WORLDと表示していますが、WORLDの部分はまだ見えていません。

スケッチ

「HELLO WORLD」と表示し、左にスクロールするプログラムです。いつものようにエラー処理はほとんど入っていません。

GitHubにコードを置いてあります。

バージョン

Hardware:Arduino Uno
Software:Arduino 1.8.1

最終更新日

January 23, 2021

inserted by FC2 system