7セグメントディスプレイ計算機
セグメントの点灯をプレビューし、抵抗値を計算し、マルチプレックスタイミングを1つのUIで検証します。コモンカソードまたはコモンアノードディスプレイ向けのファームウェア対応ルックアップテーブルを数秒で共有できます。
ライブプレビュー
マルチプレックスプロファイル
- 1桁あたりのデューティサイクル
- 25%
- 1桁あたりの更新レート
- 60 Hz
- 設定
- 4 桁 @ 240 Hz
Hardware Parameters
- Calculated Resistor
- 161.1 Ω
- Standard Resistor (E12)
- 150 Ω
- Power Dissipation
- 52.2 mW
Code Generator - Arduino
// Arduino 7-Segment Display Code
// Wiring: Common Cathode
// Resistor: 150Ω (1/4W or higher)
const uint8_t SEGMENT_MAP[16] = {
0x3F // 0,
0x06 // 1,
0x5B // 2,
0x4F // 3,
0x66 // 4,
0x6D // 5,
0x7D // 6,
0x07 // 7,
0x7F // 8,
0x6F // 9,
0x77 // A,
0x7C // B,
0x39 // C,
0x5E // D,
0x79 // E,
0x71 // F,
0x3D // G,
0x76 // H,
0x06 // I,
0x1E // J,
0x75 // K,
0x38 // L,
0x55 // M,
0x54 // N,
0x3F // O,
0x73 // P,
0x67 // Q,
0x50 // R,
0x6D // S,
0x78 // T,
0x3E // U,
0x1C // V,
0x2A // W,
0x76 // X,
0x6E // Y,
0x5B // Z,
0x00 // ,
0x40 // -,
0x08 // _,
0x48 // =,
0x63 // *,
0x22 // ",
0x02 // ',
0x63 // °,
0x00 // .,
0x04 // ,,
0x06 // !,
0x53 // ?,
0x52 // /,
0x64 // \,
0x39 // [,
0x0F // ],
0x39 // (,
0x0F // ),
0x61 // <,
0x43 // >,
0x06 // |
};
// Current display value: HELLO
const uint8_t displayDigits[] = {0x76, 0x79, 0x38, 0x38, 0x3F};
void setup() {
// Configure segment pins (A-G, DP) as outputs
// Pins 2-9 for segments A-G and DP
for (int i = 2; i <= 9; i++) {
pinMode(i, OUTPUT);
}
}
void displayDigit(uint8_t pattern) {
for (int i = 0; i < 8; i++) {
digitalWrite(i + 2, pattern & (1 << i));
}
}
void loop() {
// Display each digit in sequence
for (int digit = 0; digit < 5; digit++) {
displayDigit(displayDigits[digit]);
delay(5); // 5ms per digit for multiplexing
}
}Complete runnable code for your selected platform, including initialization and display functions.
Byte Array Output
const uint8_t digits[] = {0x76, 0x79, 0x38, 0x38, 0x3F};Copy directly into your microcontroller code. Each byte represents the segment pattern for one digit.
エクスポートとデバッグ
- ●Byte array: 0x76, 0x79, 0x38, 0x38, 0x3F
- ●HEXマスク: 0x3F387976
- ●2進数マスク: 0b00111111001110000111100101110110
- ●直列抵抗: 150Ω (52.2mW)
- ●ロジックモード: コモンカソード
対応が必要です
- 「セグメントマップを生成」をクリックして、現在の設定を確定し、コードをエクスポートしてください。
この7セグメントディスプレイ計算機の使い方
3つの簡単なステップで配線準備完了のデータを取得します。
- 入力と配線を選択する
10進数、16進数、または2進数の入力を選択し、ロジック極性が正しくなるようにディスプレイの配線をコモンカソードまたはコモンアノードに設定します。
- マルチプレックスパラメータを設定する
桁数、更新レート、およびLEDの電気的定格を設定します。デューティサイクルや電圧制限が安全でない場合、アプリが警告します。
- 生成とエクスポート
「生成」をクリックして設定を確定し、ルックアップマスクをコピーして、ファームウェアチームのメンバーとパラメータを共有します。
ケーススタディ:産業用カウンターディスプレイの安定化
製造エンジニアが、既存の7セグメントハードウェアを維持しつつ、最新のドライバーを使用して4桁の生産カウンターを改修する必要があります。
- ディスプレイ
- 従来の4桁コモンアノードモジュール
- コントローラー
- タイマー割り込みを備えたSTM32マイクロコントローラー
- 課題
- 低い更新レートでのちらつきと抵抗の過熱
- 16進数のカウントをマッピングする
エンジニアは16進数値を入力し、セグメントマスクが既存のPLCディスプレイと一致することを確認します。
- マルチプレックス速度を調整する
更新レートを320 Hzに上げ、1桁あたりの頻度を80 Hz以上に保つことで、ちらつきの警告を解消します。
- 消費電流のバランスを取る
LED電流を20 mAから12 mAに調整することで推奨抵抗値が上がり、熱暴走を防ぎます。
結果
このカウンターは、安定した輝度、準拠した電流制限、および計算機から生成された注釈付きファームウェア配列を備えて出荷されます。
7セグメントディスプレイに関するFAQ
計算機はカスタムセグメント順序に対応していますか?
現在のリリースでは、標準のA~Gセグメント順序を前提としています。特注のPCBの場合、エクスポートされた16進数マスクをファームウェアチームと共有し、必要に応じてビットを再マッピングしてください。
更新レートはどのように設定すべきですか?
1桁あたり少なくとも60 Hzを目指してください。4桁の場合、全体で240 Hzを意味します。1桁あたりのレートが快適なしきい値を下回ると、警告バナーが表示されます。
チームメンバーと設定を共有できますか?
はい。生成されたマスクとパラメータの概要をドキュメントまたはバージョン管理にコピーして、ハードウェア、ファームウェア、およびQAの整合性を保つことができます。
16進数を超えるセグメントについてはどうですか?
今後のアップデートでカスタマイズ可能なグリフライブラリが追加される予定です。現時点では、2進数マスク出力とカスタムルックアップテーブルを組み合わせて、0~F以外の文字に対応してください。
これはドライバーICで動作しますか?
はい、もちろんです。直接MCU制御には16進数マスクを使用するか、MAX7219やTM1637などのドライバーICのピン配置に合わせて変換してください。
推奨抵抗値はどのように適用すればよいですか?
1桁のアプリケーションでは、計算された抵抗値を1セグメントあたりの最も近い標準値として使用します。マルチプレックスディスプレイの場合は、1セグメントあたりの直列抵抗として扱ってください。
LED電流を下げることはできますか?
はい。消費電力を減らすため、または熱制限を満たすために電流を下げてください。計算機が推奨抵抗値を即座に更新します。
このツールは温度ディレーティングに対応していますか?
過電流のリスクを強調表示します。正確な熱解析を行うには、抵抗出力とLEDデータシートのディレーティング曲線とを組み合わせてください。
ダークモードはありますか?
はい。インターフェースはサイト全体のダークモードを継承しており、暗い研究室のベンチで参照しやすくなっています。
計算機を再実行する頻度はどれくらいですか?
桁数、更新レート、またはLED特性を変更するたびに再実行してください。警告により、新しい設定が常に仕様内に収まることが保証されます。
参考資料
- Arduino 7セグメントディスプレイガイド
- MAX7219 LEDドライバーアプリケーションノート
- FPGA .coeファイルリファレンス