回路

Arduinoを使用して4桁7セグメントディスプレイを正しく駆動する方法:5ステップ

Илон Маск снова станет папой. Его подруга Граймс рассказала, что ждет ребенка

Илон Маск снова станет папой. Его подруга Граймс рассказала, что ждет ребенка

目次:

Anonim

4桁7セグメントディスプレイをArduinoに接続する方法を説明しているインストラクターの数です1,2,3,4,5

あなたが楽しみのために速いブレッドボードプロジェクトをやりたいならば、これらのインストラクターは十分に良いです。しかし、もしあなたが本格的なプロジェクトをやりたいのであれば、それをするのがより良い方法です。

ところで。私はあなたが7セグメントディスプレイがどのように機能するかについて一般的な理解を持っていると仮定しています。もしそうでなければ、あなたは私が上記で参照したインストラクタブルで提供される説明を読むことができます。

用品:

ステップ1:ハードウェア

1.各桁のほとんどの命令では、共通のアノード/カソードに接続された単一の抵抗を使用していました。これは高速ブレッドボードプロジェクトには有効ですが、本格的なプロジェクトにはお勧めできません。このような接続セグメントの場合、現在の、したがって桁の明るさは、いくつのセグメントが機能しているかによって異なります。そのため、数字が違えば明るさも違ってくるので、醜いです。これを行うための適切な方法は、各セグメントに抵抗を使用することです。この場合、4つではなく8つの抵抗が必要になりますが、明るさは一定です。

2.ほとんどの命令では、ArduinoのボードのI / Oピンに直接接続された共通のアノード/カソード。一般的には間違った方法です。ほとんどのディスプレイでは、1セグメントあたりの最大電流は10〜20mAです。そのため、合計電流は80〜160mAになります。 Arduinoは、I / Oピンあたり最大40mAをソース/シンクすることができます。それで、電流を増幅するためにトランジスタを使って供給に共通の陽極/陰極を接続するより良い方法。このようにして、セグメント当たりの最大電流を使用することができ、それによりディスプレイの最大輝度が可能になる。

ステップ2:使用部品

当然のことながら、これは実装の一例です。同じ概念が7セグメントディスプレイでも機能します。別々の数字を使用することもできます。

コモンアノード4桁7セグメントディスプレイ

PNPトランジスタ2N 3906 x 4

抵抗器610オーム×14概念上の証明にすぎないので、すべての抵抗器は同じです。当然のことながら、7セグメントディスプレイの最大電流と使用されているトランジスタの電流利得に従って抵抗を選択する必要があります。

私はブレッドボード上の部品に別々の5V電源を使用しました。一般に、すべてのコンポーネントをArduinoボードに接続しても問題ありません。この場合、ブレッドボードのプラスとマイナスの電源ラインの間に100マイクロファラッドのコンデンサを接続すると便利です。

ステップ3:ソフトウェア

ほとんどの命令では、表示を制御するコードはloop()関数から呼び出されます。この方法は一般的にはうまくいきますが、loop()関数にコードを追加または削除すると、フレームレートと明るさが変わります。またほとんどの場合、ビデオの表示はちらつきます。この動作は本格的なプロジェクトには望ましくありません。

もっと良い方法は割り込みによって呼び出される関数から表示を制御することです。添付クラスはTimer1を割り込みに使用して表示制御を実装します。 16レベルの明るさ制御も実装されています。

付属のスケッチmy_4digit_7segment_one.inoは、時計や温度の表示など、表示を制御するためのクラスのさまざまな使用方法を示しています。

コードにはたくさんのコメントがあるので、それを異なるタイプの7セグメント表示に適応させるのは簡単です。それはまた複数のディスプレイまたは別々の数字よりも制御を適応させることができる。

ステップ4:コード性能

63マイクロ秒ごとに1回割り込みから呼び出される表示最新表示機能。内部時間はオシロスコープで約3.5マイクロ秒で測定。そのため、コードはマイクロプロセッサ時間の6%未満しか使用しません。

フレームレートは約248 FPSです。

ステップ5:ちらつきのないビデオ