(2017.8.17 作成)
(2017.10.4 更新)
このモジュールを使用するライブラリには既存のものがいくつかありますが、ここで公開しているプログラムはLEDコントローラ(TM1637)とLEDモジュールの2種類のクラスからなっており、LEDモジュールの中からコントローラークラス(TM1637)を用いる構成になっています。
このためユーザーはTM1637クラスを直接操作する必要はないと思います。
またLEDモジュール部分も4桁の表示を行うBaseクラスと、それを継承した時刻表示用クラス(LEDdisp_Clock)と数値表示クラス(LEDdisp_Numeral)の2種類に分かれています。
以下ではそれぞれのクラスについて簡単に説明していますが、多分ソースコードを見ていただいた方が早いです。
4桁の7セグLEDを使用するベースクラスです。このベースクラスを直接使用することは想定していませんが、このクラスでは4桁LEDで表示できる整数と文字表示についての機能を提供しています。
Char0 ~ 9 | 数字 |
A~ | 表示できるいろいろなパターンの文字 |
画面消去 |
|
プロトタイプ |
void Clear()const; |
戻り値 |
なし |
引数 |
なし |
備考 |
各桁のデータを消去し、画面を消灯します |
整数表示 |
||
プロトタイプ |
void Show( const int16_t &val, const uint8_t &Brightness, const bool ZeroPad=false)const; |
|
戻り値 |
なし |
|
引数 |
val |
整数を表示する 正の場合は4桁、負の場合は3桁まで。 |
Brightness |
0~9まで 0で消灯、9でDuty 14/16(88%) |
|
ZeroPad |
上位の桁を0で埋めるかどうか | |
備考 |
|
任意位置に一文字表示 |
||
プロトタイプ |
void Show( const uint8_t &pos, const Char &c, const uint8_t &Brightness)const; |
|
戻り値 |
なし |
|
引数 |
pos |
表示位置。0~3まで。4以上は無視されます |
c |
表示文字。クラス内で定義されているChar型 | |
Brightness |
0~9まで。0で消灯、9でDuty 88% | |
備考 |
|
連続して文字表示 |
||
プロトタイプ |
void Show(const uint8_t &pos, const Char *c, const uint8_t &Length, const uint8_t &Brightness)const; |
|
戻り値 |
なし |
|
引数 |
pos |
表示開始位置。0~3まで。4以上は無視されます |
c |
表示文字の配列 |
|
Length |
文字数 | |
Brightness |
0~9まで。0で消灯、9でDuty 88% | |
備考 |
|
4桁の時刻表示用の7セグLEDモジュールです。tickerクラスを使用することで1秒単位でコロンを点灯させることができます。
時刻はCのtm構造体を用いて設定します。
また基底クラスの関数(整数、文字表示)ももちろん行えます。
timer.hにあるCのtm構造体を引数として渡した際に表示するものを"時間:分"とするか"分:秒"とするかを選ぶ際に使用します。
hhmm | hh:mm表示 |
mmss | mm:ss表示 |
Constructor |
||
プロトタイプ |
LEDdisp_Clock(DKS::IDigitalOut *SCL, DKS::IDigitalOut *SDA, DKS::IWait *Wait, DKS::ITicker *ticker=0); |
|
戻り値 |
なし |
|
引数 |
SCL SDA |
DigitalOutクラスのインスタンス |
Wait |
Waitクラスのインスタンス SoftwareI2Cのタイミング作成に使用します。 |
|
ticker |
Tickerクラスのインスタンス 時刻の":"マークを点滅させるために使用します。 不使用時は0を入れてください |
|
備考 |
|
時刻表示 |
||
プロトタイプ |
void Show(const struct tm &t, const TimeFormat &format, const uint8_t &Brightness); |
|
戻り値 |
なし |
|
引数 |
tm |
C言語の時刻を格納するtm構造体 |
format |
hhmmかmmss |
|
Brightness |
0~9まで。0で消灯、9でDuty 88% | |
備考 |
後述するTick関数を使用することで":"マークを1秒周期で点滅させられます。 |
":"文字の点滅 |
|
プロトタイプ |
void TickStart(); void TickStop(); |
戻り値 |
なし |
引数 |
なし |
備考 |
後述するTickProcess関数を定期的に呼び出す動作の開始、終了を指示します。この関数単体では点滅動作を行えません。 |
":"文字の点滅処理 |
|
プロトタイプ |
TickProcess(); |
戻り値 |
なし |
引数 |
なし |
備考 |
500msごとにコンストラクタで指定したTickerクラスが この関数を呼び出すように設定してください。 |
4桁の数値表示用のLEDモジュールを使用するクラスです。
float値を渡すと表示できます。もちろんBaseクラスの整数/文字表示も行えます
Constructor |
||
プロトタイプ |
LEDdisp_Clock(DKS::IDigitalOut *SCL, DKS::IDigitalOut *SDA, DKS::IWait *Wait, DKS::ITicker *ticker=0); |
|
戻り値 |
なし |
|
引数 |
SCL SDA |
DigitalOutクラスのインスタンス |
Wait |
Waitクラスのインスタンス SoftwareI2Cのタイミング作成に使用します。 |
|
備考 |
|
数値表示 |
||
プロトタイプ |
void Show(const float &f, const uint8_t &Brightness); |
|
戻り値 |
なし |
|
引数 |
f |
表示する数値。正の場合4桁、負の場合3桁までです。 |
Brightness |
0~9まで。0で消灯、9でDuty 88% | |
備考 |
表示できる桁数を超えたときは四捨五入が行われます。 |