ユーザ用ツール

サイト用ツール


ja-jp_guide:seven_segment

7セグメントLEDガイド

TM1637 ICを内蔵した4桁の7セグメント表示器(FND)を、ILOGICS Arduino SDKの内蔵関数で制御できます。

SDKをインストールしていない場合は、ILOGICS Arduino SDKダウンロードページからインストールしてください。MPINO STUDIO2ではインストールは不要です。

1. 使用する7セグメントLEDを確認する

時計型 小数点型
時計型 TM1637 4桁LED 小数点型 TM1637 4桁LED
中央にコロン(:)を表示 桁の間に小数点(.)を表示
個別の小数点は制御できません 小数点の表示用

2. 製品に接続する

接続する前に、製品とモジュールの電源を切ってください。

下はMPINO-8A4R-SにMolex 4ピン(5264-04)ケーブルで7セグメント表示器(FND)を接続した例です。ケーブルの色は変わることがあるため、色ではなくピン名を見て接続してください。

MPINO-8A4R-S、Molex 4ピン 5264-04ケーブル、TM1637 FNDの接続構成

MPINO-8A4R-S、Molex 4ピン 5264-04ケーブル、TM1637 FNDの接続構成

製品別の配線

下の端子は1台目(装置0)のものです。最大台数までの配線は製品名を開いて確認してください。

配線図 最大台数 LEDのCLKに接続する端子 LEDのDIOに接続する端子 同時に使用できない機能
MPINO-8A4R(T)-S 2 FND/ENCO CLK (D24) FND/ENCO DIO (D25) 同じ端子のエンコーダ・割り込み入力
MPINO-8A4R-SU 4 FND/ENCO CLK (D24) FND/ENCO DIO (D25) 同じ端子のエンコーダ・割り込み入力
MPINO-8A8R(T)-S 4 ENC/FND CLK (D24) ENC/FND DIO (D25) 同じ端子のエンコーダ・割り込み入力
MPINO-16A16R 2 ENC/FND CLK (D24) ENC/FND DIO (D25) 同じ端子のエンコーダ・割り込み入力
MPINO-8A8R 3 PWM7 (D7) PWM8 (D8) 同じ端子のPWM出力
MPINO-16A8R 2 A(2)(Arduino A2) A(3)(Arduino A3) 同じ端子のアナログ入力
MPINO-16A8R8T 2 P(5)(Arduino D5) P(2)(Arduino D2) 同じ端子のPWM出力
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内蔵関数

関数 機能 使用例
IsegBegin(clkPin, dioPin) LEDのCLK・DIOに接続したArduinoピンを指定 IsegBegin(24, 25);
IsegBrightness(brightness) 明るさを設定(0~7、数字が大きいほど明るい) IsegBrightness(7);
IsegDecimal(number) 整数を10進数で表示 IsegDecimal(123);
IsegHex(number) 整数を16進数で表示 IsegHex(0xABCD);
IsegClear() 4桁の表示を消去 IsegClear();
IsegWrite(segments) 桁ごとのセグメント値を直接表示 下の123Vの例を参照
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. 表示されないときの確認

  1. Arduino IDEで、実際の製品に合ったILOGICSボードとCOMポートを選択しているか確認してください。
  2. プログラムが先にIsegBegin()を呼び出しているか、IsegDecimal()に4桁で表示できる数値を指定しているかを確認してください。4桁の場合、IsegDecimal()が表示できるのは-999~9999です。範囲を超える数値は表示されず、関数はfalseを返します。
ja-jp_guide/seven_segment.txt · 最終更新: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki