====== IsegWrite() ====== ''IsegWrite()''は指定位置にセグメントデータを出力します。 {{:ja-jp_commands:reference:isegwrite.svg?900|IsegWrite コマンドの動作フロー}} ''bool IsegWrite(const uint8_t segments[], uint8_t length = 4, uint8_t position = 0, uint8_t device = 0)'' ===== コマンド ===== ^ コマンド ^ 引数 ^ 戻り値 ^ 動作 ^ | ''IsegWrite(segments, length, position, device)'' | ''const uint8_t segments[]'' — 各桁の''XGFEDCBA''セグメントビット配列\\ ''uint8_t length = 4'' — 書き込む桁数''1~4''\\ ''uint8_t position = 0'' — 書き込み開始位置''0~3''、左端の桁が''0''\\ ''uint8_t device = 0'' — FND装置番号''0~6''、省略時は''0'' | ''bool'' | 指定位置にセグメントデータを出力します。 | ===== 使用例 ===== const uint8_t CLK_PIN = 14; const uint8_t DIO_PIN = 15; void setup() { IsegBegin(CLK_PIN, DIO_PIN, 100, 0); // TM1637 FNDのCLK・DIOピンとデバイス番号を設定します。 IsegBrightness(5, true, 0); // 画面の明るさと表示状態を設定します。 } void loop() { const uint16_t value = analogRead(A0); // 指定チャンネルの生のアナログ値を読み取ります。 uint8_t digits[4] = { IsegEncodeDigit((value / 1000) % 10), // 数字1桁をセグメントデータに変換します。 IsegEncodeDigit((value / 100) % 10), // 数字1桁をセグメントデータに変換します。 IsegEncodeDigit((value / 10) % 10), // 数字1桁をセグメントデータに変換します。 IsegEncodeDigit(value % 10) // 数字1桁をセグメントデータに変換します。 }; IsegWrite(digits, 4, 0, 0); // セグメントデータを指定位置に出力します。 delay(100); } ===== 注意事項 ===== * TM1637 IC内蔵の4桁FND専用です。一般的なマルチプレクスFNDを直接駆動するコマンドではありません。 * ''IsegBegin()''の呼び出しに成功してから表示コマンドを使用します。 * CLKとDIOに同じピンを指定した場合、または装置番号が''7''以上の場合は初期化されません。 * ''length + position''は4以下にしてください。範囲に合わない数値は表示せず、''false''を返します。 * 通信中は数ms間実行がブロックされる場合があるため、割り込みサービスルーチン内で呼び出しません。 * 指定したピンはUART、PWM、エンコーダ、外部割り込みなどの他の機能と同時使用しません。 * FNDの電源・信号電圧は実際のモジュールと製品取扱説明書で確認してください。 ===== 同じカテゴリの内蔵コマンド ===== * [[:ja-jp_commands:reference:isegbegin|IsegBegin() 詳細説明を見る]] * [[:ja-jp_commands:reference:isegbrightness|IsegBrightness() 詳細説明を見る]] * [[:ja-jp_commands:reference:isegclear|IsegClear() 詳細説明を見る]] * [[:ja-jp_commands:reference:isegdecimal|IsegDecimal() 詳細説明を見る]] * [[:ja-jp_commands:reference:iseghex|IsegHex() 詳細説明を見る]] * [[:ja-jp_commands:reference:isegencodedigit|IsegEncodeDigit() 詳細説明を見る]] [[:ja-jp_commands:builtin|← 内蔵コマンド一覧]]