LED 7 セグメント インジケーター。 7セグメント表示器 カソードコモン付き7セグメントLED表示器

LED (または発光ダイオード) は、順方向バイアスがかかると光エネルギーを「光子」の形で放出する光ダイオードです。 エレクトロニクスでは、このプロセスをエレクトロルミネセンスと呼びます。 LED が発する可視光の色は青から赤の範囲にあり、発せられる光のスペクトルによって決まります。このスペクトルは、製造プロセス中に半導体材料に添加されるさまざまな不純物によって決まります。

LED には従来のランプや照明器具に比べて多くの利点があり、おそらく最も重要なのは、小型、耐久性、さまざまな色、低コストで容易に入手できること、およびデジタル回路内の他のさまざまな電子コンポーネントと簡単に接続できることです。

しかし、LED の主な利点は、サイズが小さいため、LED の一部を 1 つのコンパクトなハウジングに集中させて、いわゆる 7 セグメント インジケータを形成できることです。

7 セグメント インジケータは、図に示すように、長方形に配置された 7 つの LED (その名前が付けられています) で構成されます。 7 つの LED はそれぞれ、点灯するとセグメントが数字 (10 進数または 12 桁) の一部を形成するため、セグメントと呼ばれます。場合によっては、同じパッケージ内で 8 番目の追加 LED が使用されます。これは小数点を表示するために使用されます。 (DP) なので、2 つ以上の 7 セグメント インジケーターを接続して 10 より大きい数字を表す場合に表示が可能になります。

7 つの LED ディスプレイ セグメントのそれぞれは、長方形のプラスチック インジケータ ハウジング上に直接配置された対応する接触列パッドに接続されています。 LED ピンには、個々のセグメントを表す a ~ g のラベルが付いています。 LED セグメントの他の接点は相互接続され、共通の出力を形成します。

したがって、LEDセグメントの対応するピンに特定の順序で順方向バイアスを印加すると、一部のセグメントが点灯し、残りのセグメントは暗いままとなり、点灯させたい数字パターンのシンボルをディスプレイに表示することができます。 これにより、7 セグメント ディスプレイ上で 0 から 9 までの 10 進数のそれぞれを表すことができます。

共通ピンは通常、7 セグメント ディスプレイのタイプを決定するために使用されます。 各表示 LED には 2 つの接続端子があり、そのうちの 1 つは「アノード」と呼ばれ、もう 1 つはそれに応じて「カソード」と呼ばれます。 したがって、7 セグメント LED インジケータは、共通カソード (OC) と共通アノード (OA) の 2 種類の回路設計を持つことができます。

これら 2 種類のディスプレイの違いは、OK 設計では 7 セグメントすべてのカソードが相互に直接接続され、共通アノード (CA) 設計では 7 セグメントすべてのアノードが相互に接続されていることです。 両方のスキームは次のように機能します。

  • 共通陰極 (OC) - すべての LED セグメントの相互接続された陰極は、論理レベル「0」を持つか、共通のワイヤに接続されています。 個々のセグメントは、論理ハイまたは論理 1 信号を制限抵抗を介してアノード ピンに印加して個々の LED を順バイアスすることによって点灯します。
  • 共通アノード (CA) - すべての LED セグメントのアノードが結合され、論理レベル「1」を持ちます。 特定の各カソードがグラウンド、論理「0」、または対応する制限抵抗を介して低電位信号に接続されると、インジケーターの個々のセグメントが点灯します。

多くの論理回路では電源が供給できる以上の電流を必要とする場合があるため、一般に、7 セグメントの共通アノード インジケータがより一般的です。 また、コモンカソードディスプレイは、回路内でコモンアノードディスプレイを直接置き換えるものではないことにも注意してください。 その逆も同様です。これは LED を反対方向にオンにすることと同じなので、光は放射されません。

7 セグメント メーターは 1 つのディスプレイと考えることができますが、それでも 1 つのパッケージ内に 7 つの個別の LED で構成されているため、これらの LED には過電流保護が必要です。 LED は順方向バイアスがかかっている場合にのみ光を放射し、LED が放射する光の量は順方向電流に比例します。 これは、LED の強度が電流の増加に伴ってほぼ直線的に増加することを意味するだけです。 したがって、LED の損傷を避けるために、この順電流を監視し、外部制限抵抗によって安全な値に制限する必要があります。

このような 7 セグメントのインジケーターは静的と呼ばれます。 大きな欠点は、パッケージ内のピンの数が多いことです。 この欠点を解消するために、7 セグメント インジケーターの動的制御スキームが使用されます。

7セグメントインジケーターは、使いやすさと分かりやすさからアマチュア無線家の間で高い人気を誇っています。

このレッスンでは、7 セグメント LED インジケータとマイコンの接続図とインジケータの制御方法について学びます。

LED 7 セグメント インジケータは、デジタル情報を表示するための最も人気のある要素の 1 つです。

彼らの次のような特質がこれに貢献します。

  • 低価格。 ディスプレイの点では、LED デジタルインジケーターより安いものはありません。
  • さまざまなサイズ。 最小および最大のインジケーターは LED です。 私は桁の高さが 2.5 mm から 32 cm までの LED インジケータを知っています。
  • 暗闇で光る。 一部のアプリケーションでは、この特性がほぼ決定的になります。
  • 異なる発光色を持っています。 2色のものもございます。
  • 非常に低い制御電流。 最新の LED インジケータは、追加のキーなしでマイクロコントローラのピンに接続できます。
  • 過酷な動作条件(温度範囲、高湿度、振動、過酷な環境など)に適しています。 この品質に関しては、LED インジケーターは他のタイプの表示要素の中で匹敵するものはありません。
  • 無制限の耐用年数。

LEDインジケーターの種類。

7セグメントLEDインジケータは、7つのLED(セグメント)を使用して文字を表示します。 8 番目の LED は小数点を点灯します。 したがって、7 セグメントのインジケーターには 8 つのセグメントがあります。

セグメントは「A」から「H」までのラテン文字で指定されます。

各 LED のアノードまたはカソードはインジケーター内で結合され、共通のワイヤを形成します。 したがって、共通の陽極と共通の陰極を備えたインジケーターがあります。

共通陽極を備えた LED インジケーター。

カソード共通のLEDインジケーター。

静的 LED 制御。

LED インジケータは、電流制限抵抗を介してマイクロコントローラに接続する必要があります。

抵抗の計算は個々の LED の場合と同じです。

R = (U 供給 - U セグメント) / I セグメント

この回路の場合: I セグメント = (5 – 1.5) / 1000 = 3.5 mA

最新の LED インジケータは、1 mA の電流でも非常に明るく点灯します。 共通のアノードを持つ回路の場合、セグメントが点灯し、その制御ピンでマイクロコントローラーがローレベルを生成します。

カソードコモンのインジケーターの接続図では、電源と制御信号の極性が変わります。

セグメントが点灯し、制御ピンにハイレベル(5V)が生成されます。

LED インジケーターを制御するための多重化モード。

各 7 セグメント インジケータをマイクロコントローラに接続するには、8 本のピンが必要です。 3〜4つの指標(数字)がある場合、タスクは事実上不可能になります。 マイクロコントローラーのピンが足りません。 この場合、インジケータは動的表示モードの多重化モードで接続できます。

各指標の同じ名前のセグメントの結果が結合されます。 これにより、セグメント ピンと共通インジケータ ピンの間に LED のマトリックスが接続されます。 これは、共通のアノードを備えた 3 桁のインジケータを多重制御するための回路です。

3 つのインジケータを接続するには、静的制御モードのような 24 ピンではなく、11 ピンが必要でした。

ダイナミック表示では、常に 1 桁だけが点灯します。 ハイレベル信号 (5 V) がビットの 1 つの共通ピンに供給され、ローレベル信号がこのビットで点灯するセグメントのセグメントピンに送信されます。 一定時間が経過すると次の放電が点灯します。 ハイレベルがコモンピンに適用され、このビットのステータス信号がセグメントピンに送信されます。 無限ループ内のすべての桁について同様に続きます。 サイクルタイムはインジケーターの再生時間と呼ばれます。 再生時間が十分に短い場合、人間の目は放電の切り替わりに気づきません。 すべての放電が常に光っているように見えます。 インジケーターのちらつきを避けるために、再生サイクルの周波数は少なくとも 70 Hz である必要があると考えられています。 少なくとも 100 Hz を使用するようにしています。

コモンカソードを備えた LED の動的表示回路は次のようになります。

すべての信号の極性が変わります。 ここで、アクティブな放電の共通ワイヤに低レベルが適用され、点灯するセグメントに高レベルが適用されます。

発光ダイオード (LED) インジケーターの動的表示要素の計算。

計算は静的モードよりも多少複雑になります。 計算中に次のことを決定する必要があります。

  • セグメントの平均電流。
  • セグメントのパルス電流。
  • セグメント抵抗の抵抗。
  • 放電の共通端子のパルス電流。

なぜなら インジケーターの数字が順番に点灯し、その明るさによって平均電流が決まります。 インジケーターのパラメーターと必要な明るさに基づいて選択する必要があります。 平均電流は、同じ定電流による静的制御に対応するレベルでのインジケータの明るさを決定します。

平均セグメント電流 1 mA を選択しましょう。

次に、セグメントのパルス電流を計算してみましょう。 必要な平均電流を提供するには、パルス電流が N 倍大きくなければなりません。 ここで、N はインジケーターの桁数です。

私はセグメントします インプ。 = I セグメント 平均 *N

私たちのスキームでは I セグメントです。 インプ。 = 1 * 3 = 3 mA。

電流を制限する抵抗器の抵抗値を計算します。

R = (U 供給 - U セグメント) / I セグメント。 インプ。

R = (5 – 1.5) / 0.003 = 1166 オーム

放電の共通端子のパルス電流を決定します。 8セグメントを同時に点灯できるため、1セグメントのパルス電流を8倍にする必要があります。

私はインプを分類します。 = I セグメント インプ。 *8

私たちのサーキットの場合、カテゴリー Imp。 = 3 * 8 = 24 mA。

  • 抵抗器の抵抗値を 1.1 kΩ に選択します。
  • セグメント制御マイクロコントローラーのピンは少なくとも 3 mA の電流を供給する必要があります。
  • インジケータ桁を選択するためのマイクロコントローラのピンは、少なくとも 24 mA の電流を供給する必要があります。

このような電流値を使用すると、追加のキーを使用せずにインジケーターを Arduino ボードのピンに直接接続できます。 明るいインジケーターの場合、このような電流で十分です。

追加のキーを含むスキーム。

インジケーターがより多くの電流を必要とする場合、特に桁選択信号に追加のキーを使用する必要があります。 総放電電流は 1 セグメントの電流の 8 倍です。

放電を選択するためのトランジスタスイッチを備えた多重モードでの共通アノードを備えた LED インジケータの接続図。

この回路でビットを選択するには、L レベルの信号を生成する必要があります。 対応するキーが開き、インジケーターの放電に電力が供給されます。

放電を選択するためのトランジスタスイッチを備えた多重モードでの共通カソードを備えた LED インジケータの接続図。

この回路でビットを選択するには、ハイレベルの信号を生成する必要があります。 対応するキーは、アースへの共通放電端子を開閉します。

回路によっては、セグメントと共通ビット ピンの両方にトランジスタ スイッチを使用する必要がある場合があります。 このようなスキームは、前の 2 つのスキームから簡単に合成できます。 示されているすべての回路は、インジケーターにマイクロコントローラーの電源と同じ電圧が供給されている場合に使用されます。

供給電圧が増加したインジケーターのキー.

各セグメントが直列に接続された複数の LED で構成される大きなインジケーターがあります。 このようなインジケーターに電力を供給するには、5 V を超える電圧の電源が必要であり、スイッチはマイクロコントローラー レベルの信号 (通常は 5 V) によって制御される増加した電圧のスイッチングを提供する必要があります。

インジケータ信号をグランドに接続するキーの回路は変更されません。 そして、電源スイッチは、たとえば次のように別のスキームに従って構築する必要があります。

この回路では、制御信号のハイレベルによってアクティブビットが選択されます。

インジケーターの桁を切り替える間は、すべてのセグメントを短時間 (1 ~ 5 μs) オフにする必要があります。 この時間は、キー切り替えの一時的なプロセスを完了するために必要です。

構造上、放電ピンを多桁表示器の1つのケースに組み込むことも、別個の1桁表示器から多桁表示器を組み立てることもできます。 さらに、セグメントに結合された個々の LED からインジケーターを組み立てることができます。 これは通常、非常に大きなインジケーターを組み立てる必要がある場合に行われます。 上記のスキームはすべて、そのようなオプションに対して有効です。

次のレッスンでは、7 セグメント LED インジケータを Arduino ボードに接続し、それを制御するライブラリを作成します。

カテゴリー: 。 ブックマークすることができます。

数値が大きい体温計や、ALSなど適切なインジケーターを見つけるのが難しく、市販されていないサイズが必要になる場合もあります。 これを行うために、多くの場合、数字の各要素 (セグメント) は、いくつかの普通の丸い LED から組み立てられます。 当社では、74HC595 マイクロ回路を使用した、このソリューションのより高度で便利なバージョンを提供しています。 このプロジェクトの結果、高さ約 10 センチメートルの標識が完成し、遠くからでも視認できるようになりました。 必要に応じて、専用のコネクタを介して多数の桁を順番に接続できます。

回路図

この回路は、セグメントごとに 5 個の LED の大きなセットと、マイクロコントローラー入力制御を容易にするシフト レジスタを使用した 1 桁の 7 セグメント ディスプレイ コントローラーです。 このプロジェクトで使用されている LED はそれぞれ直径 5 mm です。

ULN2003 チップは、LED を流れる電流の増幅に役立ちます。 抵抗 R1 ~ R8 は、回路内で直列に接続されている LED の電流を制限します。

良い一日! 長い強制的な休憩の後、私たちは引き続き Arduino プログラミング コースを習得していきます。 以前のレッスンの 1 つで、すでに一連の LED を操作しましたが、今度はトレーニングの次の段階に進むときです。 今日の記事のテーマは7セグメントインジケーターです。

7 セグメント インジケーターについては 2 つの部分で構成されます。 最初の部分では、理論的なコンポーネントを簡単に説明し、ハードウェアを操作して簡単なプログラムを作成します。

前回は 8 つの LED のシーケンスを使用しましたが、今日も 8 つの LED (7 つの LED ストリップと 1 つのドット) が使用されます。 前のシーケンスとは異なり、このセットの要素は (次々に) 並んでいませんが、特定の順序で配置されています。 このおかげで、1 つのコンポーネントを使用するだけで 10 桁 (0 から 9) を表示できます。

このインジケーターを単純な LED とは区別するもう 1 つの大きな違いがあります。 これは共通のカソード (またはむしろ、カソードが接続されている 2 つの同等の脚 3 および 8) を備えています。 カソードの 1 つをグランドに接続するだけで十分です ( GND)。 すべてのインジケーター要素には個別の陽極があります。

ちょっとした余談。 上記はすべて、共通カソードを備えた 7 セグメント インジケーターに当てはまります。 ただし、共通の陽極を備えたインジケーターもあります。 このような指標を結び付けると大きな違いがあるため、「罪深い人」と「義人」を混同しないでください。 自分が手に持っている7セグ端末がどのようなタイプなのかをしっかりと理解する必要があります!

簡易LEDと7セグメントインジケーターの違いに加えて、共通の機能もあります。 例: LE​​D などのインジケータを 1 列 (シーケンス) に取り付けて、2 桁、3 桁、4 桁の数字 (桁) を表示できます。 ただし、セグメント セットを自分で組み立てることについてあまり心配しすぎることはお勧めしません。 1 桁のインジケーターの「隣」で、複数桁のインジケーターも販売されています。

LED を接続するときに電流制限抵抗を使用する必要があることを忘れていないことを願っています。 同じことがインジケーターにも当てはまります。インジケーターの各要素には、独自の抵抗が接続されている必要があります。 8 つの要素 (7 + 1) – 8 つの抵抗。

私の手元には、5161AS(コモンカソード)とマークされた7セグメントユニットがありました。 ピン配置:



回路図

前に述べたように、セグメント「A」をオンにするには、グランドを共通ピン (3 または 8) に接続し、ピン 7 に 5V 電源を供給します。 インジケーターに共通のアノードがある場合は、アノードに 5V を印加し、セグメントの出力に接地します。

テストベンチを組み立ててみましょう。 Arduino ボードの 2 番ピンに接続する最初の脚から順番にワイヤを接続します。 インジケーターのピン8にアースを接続します。

スタンドを組み立てたら、ファームウェアの書き込みを開始できます。

インジケーターを確認するには、作成したプログラムを実行してみましょう。 要素「A」を選択してフラッシュしましょう。


次に、数字の 2 を点滅させましょう。これを行うには、さらにいくつかの要素をオンにします。

1 桁を出力するには、n 行のコードを記述する必要があります。 難しいですね。

別の方法もあります。 インジケーターに数値を表示するには、まずその数値を特定のビットのシーケンスとして表す必要があります。

対応表。

ディスプレイに共通のアノードがある場合は、1 を 0 に、0 を 1 に置き換える必要があります。

16 進列は、バイト形式で数値を表現したものです (これについては、第 2 部で詳しく説明します)。

2 進数体系の数値は次のように記述されます。 0b00000000。 0b- バイナリーシステム。 ゼロは、すべての LED がオフであることを意味します。

接続するときは、ピン 2 ~ 9 を使用しました。ピン 2 をオンにするには、ピン 2 に 1 を書き込みます = 0b00000001。右から 4 番目のビットはドットを担当します。 最後のビットはインジケーターの中央の線に対応します。

数値0を出力する例を書いてみましょう。

入力行の数を減らすために、8 ビットすべてを「反復」できるループを使用します。 変数 イネーブルセグメント読み取られているビットの値が割り当てられます。 この後、電流出力は適切なモードに設定されます ( 信号の有無).

注: bitRead() 関数は、指定されたビットの状態を読み取り、状態値 (0 または 1) を返します。bitRead(x, n)ここで、x はビットを読み取る必要がある数値です。 n は、状態を読み取る必要があるビットの番号です。 番号付けは、0 の番号が付いた最下位 (右端) ビットから始まります。

そして最初の部分の最後に小さなカウンターを書きます。

今日の記事では、7セグメントインジケーターとArduinoと「友達を作る」方法について説明します。 いくつかのオプションがあります。 もちろん、最も簡単なのは、次の場所に行くことです。 そして統合されたシールドを備えた既製のインジケーターを購入します(これは、マッチングカードと呼ばれるものです)。しかし、私たちは簡単な方法を探しているわけではないので、もう少し難しい道を選びます。 初心者 - 以前の記事と同様に、この記事も心配しないでください (そして ) 貴方のために。 達人には同じ経験豊富な達人に向けて書いてもらい、私は初心者です - 初心者に向けて書きます。

なぜ 7 セグメントインジケーターなのか? 結局のところ、多数の文字、線、さまざまな対角線と解像度、白黒とカラーを備えた非常に多くの異なる画面があり、最も手頃な価格のものは数ドルかかります...そしてここが「古い」画面です。 1つは、非常に単純ですが、膨大な数のピンを必要とする7セグメントインジケーターですが、それでもこの「老人」にも利点があります。 実際のところ、ここで示したスケッチを使用すると、桁の高さが14 mmのインジケーターだけでなく、より本格的な(自家製ではあるが)プロジェクトも復活させることができ、この場合のメーターの桁は制限から遠く離れています。 これは首都の住民にとってはそれほど興味深いことではないかもしれないが、クラブや村議会に日付や気温も表示できる時計が設置されれば、ノヴォカツァペトフカやニジニヤヤ・ケドロフカの住民は非常に喜び、その創造者について話すだろう。この時計を長い間使い続けています。 しかし、そのような時計については別の記事で取り上げます。 - 書きます。 上に書いたことはすべて入門書と考えることができます。 前回の記事と同様、この記事も 2 つのパートで構成されます。 最初の部分では単にインジケーターを「管理」し、次の部分では少なくとも少しは役立つものに適応させようとします。 それでは、続けてみましょう:

パート 1。 実験的 - 教育的

このプロジェクトの基礎となっているのは、以前の記事ですでによく知られている ARDUINO UNO です。 最も簡単な購入方法はこちらです:またはここ: 、さらに、4 桁の 7 セグメントインジケーターが必要になります。 特に私はGNQ-5641BG-11を持っています。 なぜこれなのか? そう、単純に5年前に間違えて購入してしまい、買い替えに行くのが面倒だったので、ずっと横たわって待機していたのです。 共通のアノードを持っている人は誰でも大丈夫だと思います(共通のカソードを使用することは可能ですが、配列データと他のポートの値を反転する必要があります、つまり、反対のものに変更する必要があります)。 Arduinoが焼けてしまわないように、あまり強力ではありません。 さらに、それぞれ約 100 オームの 4 つの電流制限抵抗と、12 ピン (コア) 用のケーブル (私には 10 cm で十分でした) を幅の広い方から「引きはがす」ことができ、私はそうしました。 または、別のワイヤを使用してハンダ付けすることもできますが、問題はありません。 ボード用のピン (11 本) も必要ですが、注意すればピンなしでも大丈夫です。 インジケーターのスケッチを図 1 に、その図を図 2 に示します。また、このインジケーターの各セグメントには 2.1V 以下の電圧を供給する方がよいことにも注意してください (100 オームの抵抗によって制限されます)。この場合、消費するのは 20 mA 以下です。 数字の「8」が点灯する場合、消費電力は 7x20=140 mA を超えず、Arduino 出力としては十分許容範囲です。 好奇心旺盛な読者は次のような質問をするでしょう。「しかし、それぞれ 140 mA の放電を 4 回行うと、すでに 4x140 = 560 mA になり、これはすでに多すぎます。」 答えます - 残り 140 個になります。どうやって? 読む! インジケーターのピンの位置は図 3 に示されています。そして、表 1 に従って接続を行います。


米。 1 - インジケーターのスケッチ


米。 2 - インジケーター回路


米。 3 - ピンの位置

表1

Arduino Uno をピンで固定する

インジケータピン

注記

セグメントG

セグメントF

セグメントE

セグメントD

セグメントC

セグメントB

セグメントA

セグメント No. 1 の共通アノードは、100 オームの抵抗を介して接続します。

セグメント No. 2 の共通アノードは、100 オームの抵抗を介して接続します。

セグメント No. 3 の共通アノードは、100 オームの抵抗を介して接続します。

セグメント番号 6 の共通アノードは、100 オームの抵抗を介して接続します。



単純なスケッチ、つまり 0 から 9 までの単純な「数え表」を記入します。


ここで少し説明します。 DDRD はポート D (DDRB - それぞれポート B) のレジスタであり、「レジスタ」という「恐ろしい」言葉の後ろには、ポートがそのピンで何かを読み取る (情報を受け取る) か、あるいはその逆かを示す「隠された」関数があるだけです。逆に、そこで何かをしてから書く(情報を与える)ことも可能です。 この場合、行 DDRD=B11111111; ポート D のすべてのピンが出力されることを示します。 彼らから情報が出てくるでしょう。 文字「B」は、2 進数がレジスタに書き込まれることを意味します。 せっかちな読者はすぐに「10 進数は可能ですか?!」と尋ねるでしょう。 それは可能であることを急いで言っておきますが、それについては少し後ほど詳しく説明します。 ポートの半分を入力に使用し、半分を出力に使用したい場合は、次のように指定できます。 DDRD=B11110000; 1 は情報を送信するピンを示し、0 はこの情報を受信するピンを示します。 レジスターの主な便利さは、すべてのピンを 8 回登録する必要がないという事実にもあります。 プログラム内で 7 行を保存します。 次に、次の行を見てみましょう。

PORTB=B001000; // ポート B のピン 11 を High に設定します

PORTB はポート B データ レジスタです。 そこに数字を書き込むことで、ポートのどのピンが 1 になり、どのピンが 0 になるかを示します。 コメントに加えて、コントローラーが見えてデジタルピンが上になるようにArduino Unoを撮ると、レジスタへのエントリが明確になると言いたいと思います。 どの「0」(または「1」)がどのピンに対応するか、つまり ポート B の右端のゼロは 8 番ピンを担当し、左端のゼロは 13 番ピン (LED が内蔵されています) を担当します。 ポート D のそれぞれについて、右側はピン 0 用、左側はピン 7 用です。
このような詳細な説明の後、すべてが明確になることを願っていますが、明確なので、私たちが子供の頃から知っていて愛されている10進数体系に戻ることを提案します。 そしてもう 1 つ、25 線のスケッチは小さいように思えるかもしれませんが、初心者にとってはそれでも多少面倒です。 減らしていきます。

同じ「数え表」のさらに単純なスケッチに記入してみましょう。


ビデオ 1.
たったの11行! これが私たちのやり方、「初心者のやり方」です! レジスタには 2 進数ではなく 10 進数が書き込まれることに注意してください。 当然のことながら、10 進数の場合は前に文字を付ける必要はありません。 すべての数字を表にまとめても問題ないと思います。

表 2. 表示文字とポートデータの対応

共通アノード

共通カソード

バイナリーシステム

10進法

バイナリーシステム

10進法

表 3. 表示される数字とポートデータの対応

共通アノード

共通カソード

バイナリーシステム

10進法

バイナリーシステム

10進法



注意! 表 2 および 3 のデータは、表 1 に従って配線された場合にのみ有効です。
次に、0 から 9999 までの「カウント テーブル」を含むスケッチをアップロードしましょう。




米。 4 - 計数表

実際のスケッチは次の場所で見ることができます。ビデオ 2.

このスケッチには、コード自体よりも多くのコメントがあります。 質問などあってはならないのですが… それに加えて、これはどのような「ちらつきサイクル」なのか、実際に何がちらつくのか、またその理由は何でしょうか? そして、これにはある種の変数もあります...
そして重要なのは、4 つのカテゴリすべての同じ名前のセグメントが 1 点で接続されていることです。 A1、A2、A3、および A4 には共通のカソードがあります。 A1、B1、....G1 共通アノード。 したがって、4 桁のインジケーターに「1234」を同時に適用すると、「8888」が得られ、これには非常に驚くでしょう。 これを防ぐには、最初にカテゴリの「1」を点灯させ、次にそれを消し、カテゴリの「2」を点灯させるなどの手順を実行する必要があります。 これを非常に速く行うと、フィルムのフレームのように数字のちらつきが融合し、目はほとんど気付かなくなります。 この場合の点滅変数の最大値は、インジケーターの数字が変化する速度を制御します。 ちなみに、この「ちらつき」のおかげで、最大消費電流は560 mAではなく、わずか140 mAになっています。ここで、より便利なものに移ることをお勧めします。

パート2。 少なくとも少しは役に立つ

このパートでは、ARDUINO MEGAを使用して、パソコンから7セグメント表示器に文字を出力してみます。 なぜ「交差点で馬を乗り換える」という発想が突然生まれたのでしょうか? 理由は 2 つあります。1 つは、これまでの記事で ARDUINO MEGA について考慮したことがなかったことです。 次に、ARDUINO UNO では、COM ポートとポート D を動的に交換する方法がまだわかりません。しかし、私は初心者です。許せます。 もちろん、このコントローラーはここから購入できます。 。 この計画を実行するには、はんだごてを使って Arduino 側からケーブルをはんだ付けし直す必要があり、また新しいスケッチを書く必要がありました。 図 5 で、ケーブルがどのようにはんだ付けされているかを確認できます。実際には、ARDUINO MEGA と ARDUINO UNO ではポートのピン配置が異なり、Mega にはさらに多くのポートがあります。 使用されるピンの対応関係を表 4 に示します。



米。 5 - 新しいケーブル配線

表4

ポートメガ


注意! このテーブルはこのプロジェクトに対してのみ有効です。

また、Arduino Mega のポート C はピン 37 から降順で「開始」し、ポート A はピン 22 から昇順で「開始」することにも注意してください。



米。 6 - 全体図



小さな実装機能: 4 文字を出力します。 文字は数字である必要があります。 「1234」と入力した場合は「1234」が表示され、「123456」と入力した場合は引き続き「1234」が表示され、「ytsuk」、「fyva1234」、「otiog485909oapom」と入力した場合は何も表示されません。 「pp2345mm」と入力すると、「23」が表示されます。 小型で「確実な機能」が組み込まれています。

スケッチ自体:



このプログラムがどのように動作するかは、次の場所で確認できます。ビデオ 3.



Pavel Sergeev が作成したレビュー