====== 7セグメントLEDガイド ======
TM1637 ICを内蔵した4桁の7セグメント表示器(FND)を、ILOGICS Arduino SDKの内蔵関数で制御できます。
SDKをインストールしていない場合は、[[https://www.ilogics.net/ja-jp/resources/downloads/software/3|ILOGICS Arduino SDKダウンロードページ]]からインストールしてください。MPINO STUDIO2ではインストールは不要です。
===== 1. 使用する7セグメントLEDを確認する =====
^ 時計型 ^ 小数点型 ^
| {{:guide:seven_segment:revision3:clock_module.png?356|時計型 TM1637 4桁LED}} | {{:guide:seven_segment:revision3:decimal_module.png?378|小数点型 TM1637 4桁LED}} |
| 中央に**コロン(:)**を表示 | 桁の間に**小数点(.)**を表示 |
| 個別の小数点は制御できません | 小数点の表示用 |
===== 2. 製品に接続する =====
接続する前に、製品とモジュールの電源を切ってください。
下はMPINO-8A4R-SにMolex 4ピン(5264-04)ケーブルで7セグメント表示器(FND)を接続した例です。ケーブルの色は変わることがあるため、色ではなくピン名を見て接続してください。
{{ :ja-jp_guide:seven_segment:connection-desktop.png?1200 |MPINO-8A4R-S、Molex 4ピン 5264-04ケーブル、TM1637 FNDの接続構成 }}
{{ :ja-jp_guide:seven_segment:connection-mobile.png?640 |MPINO-8A4R-S、Molex 4ピン 5264-04ケーブル、TM1637 FNDの接続構成 }}
==== 製品別の配線 ====
下の端子は1台目(装置0)のものです。最大台数までの配線は製品名を開いて確認してください。
^ 配線図 ^ 最大台数 ^ LEDのCLKに接続する端子 ^ LEDのDIOに接続する端子 ^ 同時に使用できない機能 ^
| [[:ja-jp_guide:seven_segment:wiring_mpino_8a4r_s|MPINO-8A4R(T)-S]] | 2 | FND/ENCO CLK (D24) | FND/ENCO DIO (D25) | 同じ端子のエンコーダ・割り込み入力 |
| [[:ja-jp_guide:seven_segment:wiring_mpino_8a4r_su|MPINO-8A4R-SU]] | 4 | FND/ENCO CLK (D24) | FND/ENCO DIO (D25) | 同じ端子のエンコーダ・割り込み入力 |
| [[:ja-jp_guide:seven_segment:wiring_mpino_8a8r_s|MPINO-8A8R(T)-S]] | 4 | ENC/FND CLK (D24) | ENC/FND DIO (D25) | 同じ端子のエンコーダ・割り込み入力 |
| [[:ja-jp_guide:seven_segment:wiring_mpino_16a16r|MPINO-16A16R]] | 2 | ENC/FND CLK (D24) | ENC/FND DIO (D25) | 同じ端子のエンコーダ・割り込み入力 |
| [[:ja-jp_guide:seven_segment:wiring_mpino_8a8r|MPINO-8A8R]] | 3 | PWM7 (D7) | PWM8 (D8) | 同じ端子のPWM出力 |
| [[:ja-jp_guide:seven_segment:wiring_mpino_16a8r|MPINO-16A8R]] | 2 | A(2)(Arduino A2) | A(3)(Arduino A3) | 同じ端子のアナログ入力 |
| [[:ja-jp_guide:seven_segment:wiring_mpino_16a8r8t|MPINO-16A8R8T]] | 2 | P(5)(Arduino D5) | P(2)(Arduino D2) | 同じ端子のPWM出力 |
| [[:ja-jp_guide:seven_segment:wiring_mpaino|MPAINO-8A8R(T)]] | 1 | UART TXD (D14) | UART RXD (D15) | ''Serial3'' UART |
**MPINO-8A8T-S:** 標準品はD24・D25の4.7kΩプルダウン抵抗のため、ENC/FNDコネクタで7セグメント(TM1637)を制御できません。ご注文時に「7セグメント制御」オプションを選択すると、10kΩプルアップ抵抗に変更してお届けします。PWM端子には影響しないため、標準品でも最大3台を接続できます。
**その他のMPAINOモデルとK・K2モジュール:** このガイドは現在、MPAINO-8A8R(T)に1台接続する場合を対象としています。その他のMPAINOモデルに接続する場合や、K・K2パルス出力モジュールで台数を増やす場合は、事前にお問い合わせください。
===== 3. ILOGICS内蔵関数 =====
^ 関数 ^ 機能 ^ 使用例 ^
| [[:ja-jp_commands:reference:isegbegin|IsegBegin(clkPin, dioPin)]] | LEDのCLK・DIOに接続したArduinoピンを指定 | ''IsegBegin(24, 25);'' |
| [[:ja-jp_commands:reference:isegbrightness|IsegBrightness(brightness)]] | 明るさを設定(''0~7''、数字が大きいほど明るい) | ''IsegBrightness(7);'' |
| [[:ja-jp_commands:reference:isegdecimal|IsegDecimal(number)]] | 整数を10進数で表示 | ''IsegDecimal(123);'' |
| [[:ja-jp_commands:reference:iseghex|IsegHex(number)]] | 整数を16進数で表示 | ''IsegHex(0xABCD);'' |
| [[:ja-jp_commands:reference:isegclear|IsegClear()]] | 4桁の表示を消去 | ''IsegClear();'' |
| [[:ja-jp_commands:reference:isegwrite|IsegWrite(segments)]] | 桁ごとのセグメント値を直接表示 | 下の''123V''の例を参照 |
| [[:ja-jp_commands:reference:isegencodedigit|IsegEncodeDigit(digit)]] | 数字1桁をセグメント値に変換 | ''IsegEncodeDigit(1)'' |
''IsegBegin()''の''true''は、指定した設定値が有効であるという意味です。実際のLEDの応答は、続けて呼び出す通信関数の戻り値で確認できます。
===== 4. 例:123を表示する =====
MPINO-8A4R(T)-SのFND/ENCOコネクタにLEDを1台接続した例です。\\
Arduino IDEで新しいスケッチにコードを入力し、ボードとポートを選択してから、検証(✓) → 書き込み(→)の順に実行してください。
void setup() {
IsegBegin(24, 25); // FND/ENCO: D24 → CLK, D25 → DIO
IsegBrightness(7); // LEDの明るさを7に設定
IsegDecimal(123); // 123を表示
}
void loop() {
}
書き込みが終わったら、LEDに**123**が表示されることを確認してください。左の空いた桁には何も表示されません。
==== 表示を変える例 ====
次の呼び出しは、上のコードの''IsegDecimal(123);''の代わりに**一度に一つずつ**使用してください。
IsegDecimal(123, true); // 先頭の0を含めて0123を表示
IsegDecimal(123, true, 2); // 小数点型のLEDで01.23を表示
IsegHex(0xABCD); // 16進数4桁を表示
IsegClear(); // 4桁を消去
**123V**を表示するには、''setup()''の''IsegDecimal(123);''の代わりに下のコードを使用してください。''0x3E''は文字Vにあたる、F・E・D・C・Bセグメントの値です。
uint8_t displayData[4] = {
IsegEncodeDigit(1),
IsegEncodeDigit(2),
IsegEncodeDigit(3),
0x3E
};
IsegWrite(displayData);
==== 複数台を使用する ====
複数のLEDを使用するには、それぞれに装置番号を割り当てます。装置番号は''IsegBegin()''の第4引数と、表示関数の最後の引数です。省略すると''0''になります。関数が受け付ける装置番号は''0~6''で、製品ごとの接続台数は上の表のとおりです。装置番号ごとのピン設定は製品別の配線ページに記載しています。この例はMPINO-8A4R(T)-S用です。
void setup() {
IsegBegin(24, 25, 100, 0); // 装置0: FND/ENCO
IsegBegin(21, 22, 100, 1); // 装置1: PWM
IsegBrightness(7, true, 0);
IsegBrightness(7, true, 1);
IsegDecimal(1234, false, 0, 4, 0, 0); // 装置0に1234を表示
IsegDecimal(5678, false, 0, 4, 0, 1); // 装置1に5678を表示
}
void loop() {
}
===== 5. 表示されないときの確認 =====
- Arduino IDEで、実際の製品に合った**ILOGICSボード**とCOMポートを選択しているか確認してください。
- プログラムが先に''IsegBegin()''を呼び出しているか、''IsegDecimal()''に4桁で表示できる数値を指定しているかを確認してください。4桁の場合、''IsegDecimal()''が表示できるのは''-999~9999''です。範囲を超える数値は表示されず、関数は''false''を返します。