200円LCD「AM50288H」のC#ライブラリを公開しました
「AM50288H」は、大阪日本橋の電子パーツ店「デジット」や
共立エレショップの通販サイトで1つ200円で販売されているLCDです。14セグメント方式なので、ASCII文字を表示する程度なら、なかなか使い道のある製品です。今回はこのLCDをWindows 10 IoT Coreで制御するためのライブラリーを開発したので、この場を借りて公開したいと思います。
商品には簡易的なデータシートが同梱されているため、これを基に配線を行いました。
この図のように配線自体は簡単なのですが、LCDの出力端子が0.5mmピッチ10ピンFFC仕様なので、実際にはFFCケーブルと変換基板を用意する必要があります。共立電子ではケーブルを取り扱っていなかったため、管理人はeBayでケーブルを10本2ドルほどで個人輸入しましたが、到着まで1ヶ月ほどかかったので、そこまで待てないという方は、
aitendoの通販サイトを使うと良いでしょう。
続いてライブラリーの使い方の解説です。
AM50288クラス(AM50288H.cs)
- PinLE,PinDIN,PinSCK:割り当てられているGPIOピンの番号を取得、設定します。
- void Start():指定したピンを開き、通信を開始します。
- void Update():SetSegmentなどで登録した表示情報をLCDに反映させます。
- void Clear():LCDの表示をリセットします。
- void SetSegment(int pos, SegmentPosition spos):pos+1桁目のセグメントに表示するデータを指定します。たとえば、「SegmentPosition.Top | SegmentPosition.Bottom」で「=」のような文字が定義されます。SetSegmentAsBitsでは列挙型の代わりに直接ビット数値を指定します。
- ushort GetAsciiSegment(char ascii):あらかじめ登録されているASCII文字のビット数列を取得します。
- SegmentPosition GetSegmentFlag(ushort seg):セグメントのビット数列を列挙型に変換します。
- void SetAscii(int pos, char ascii):指定の桁にASCII文字を直接登録します。
- void SetAsciiString(string str):最大8文字のASCII文字列を直接登録します。8文字目以降は無視されます。
- void ShiftSegmentsLeft(), ShiftSegmentsRight():セグメントを左、もしくは右にシフトします。追加されるセグメントは空白となります。
- void SetMark(AM50288H_Mark mark, bool set):LCDに用意されている特殊なマークを登録します。setの値がtrueで表示、falseで非表示になります。
また、付属のプロジェクトファイルには動作検証用のUWPアプリが収録されています。
SetボタンやチェックボックスでLCDに表示するデータを登録することはもちろん、画面上部のセグメントイメージの箇所を直接クリックしても、表示のオン・オフが行えます。ただし、Updateボタンを押すまでLCDにデータは送信されないのでこの点には注意してください。
プログラムを開発するに当たって、セグメントの列挙型の定義は
Arduino用ライブラリーを参考にさせていただきました。この場を借りて開発者にお礼を申し上げます。
2016/12/13