====== 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''を返します。