ちょっと、そこ! 7つのセグメントLCDのサプライヤーとして、私はしばしば、複数の7セグメントLCDを運転する方法について尋ねられます。最初は少しトリッキーに思えるかもしれませんが、一度それを手に入れると、それほど難しくありません。このブログでは、それを行う方法に関するいくつかのヒントとコツを共有します。
7セグメントLCDの理解
複数の7セグメントLCDを運転する前に、7セグメントLCDが何であるかをすばやく説明しましょう。 7セグメントLCDは、番号8の形状で配置された7つのセグメントで構成されるディスプレイデバイスです。各セグメントをオンまたはオフにして、異なる数字といくつかの文字を表示できます。また、より正確なディスプレイに使用できる小数点もあります。
7セグメントLCDのタイプ
さまざまな種類の7セグメントLCDを提供します。否定的なLCD、VA LCDディスプレイ、 そしてHTN LCDディスプレイ。各タイプには独自の特性があり、さまざまなアプリケーションに適しています。たとえば、ネガティブLCDは明るいセグメントを備えた暗い背景を持っています。これは、コントラストの高いアプリケーションに最適です。 VA LCDディスプレイは幅広い視野角を提供し、HTN LCDディスプレイは、さまざまな照明条件でのパフォーマンスが優れていることで知られています。


複数の7セグメントLCDを駆動:基本
複数の7セグメントLCDを運転することになると、留意すべき重要なことがいくつかあります。
1。配線とピンの接続
最初のステップは、7セグメントLCDのピン接続を理解することです。各セグメントには対応するピンがあり、共通のピン(一般的なアノードまたは一般的なカソードのいずれか)もあります。複数のLCDを使用している場合は、対応するセグメントを一緒に接続する必要があります。たとえば、各LCDのすべての「A」セグメントは、運転回路の同じピンに接続する必要があります。
一般的なピンは慎重に処理する必要があります。一般的なアノードLCDを使用している場合、すべての一般的なアノードピンを正の電圧源に接続する必要があり、セグメントはそれらを低く引くことで制御されます。一般的なカソードLCDの場合、一般的なカソードピンは接地に接続され、セグメントは正電圧を適用することで制御されます。
2。シフトレジスタの使用
複数の7セグメントLCDを駆動する最も一般的な方法の1つは、シフトレジスタを使用することです。シフトレジスタを使用すると、マイクロコントローラーから必要な出力ピンの数を減らすことができます。たとえば、4つのセグメントLCDがあり、それぞれが7つのセグメントと小数点(LCDあたり8出力)を備えた場合、シフトレジスタなしで32の出力ピンが必要です。ただし、シフトレジスタを使用すると、ほんの数個のピン(通常は3〜4)を使用して、それらすべてを制御できます。
これがどのように機能しますか。 Shiftレジスタに連続してデータを送信し、データをLCDの適切なセグメントにシフトします。 Shift Registerはデータを保存し、新しいデータが送信されるまでセグメントをオンにします。
3。多重化
多重化は、複数の7セグメントLCDを運転する場合のもう1つの重要な手法です。すべてのLCDを同時に運転する代わりに、迅速な順序で1つずつ運転します。これにより、すべてのLCDが同時にオンになっているという幻想が得られます。
Multiplexには、1つのLCDの共通ピン(タイプに応じてアノードまたはカソードのいずれか)をオンにし、そのLCDの適切なセグメントデータを送信します。次に、次のLCDにすばやく切り替えて、プロセスを繰り返します。重要なのは、人間の目が個々のスイッチングを検出できないように、これを十分に速く行うことです。
ステップ - バイ - 複数の7セグメントLCDを運転するためのステップガイド
ステップ1:コンポーネントを選択します
7セグメントLCD、マイクロコントローラー(Arduinoなど)、Shiftレジスタ(使用する場合)、および電流をセグメントに制限する抵抗器が必要です。
ステップ2:回路を設計します
前述のように、LCDのセグメントを一緒に接続します。 Shiftレジスタを使用している場合は、データシートに従って接続します。パワーとグランドピンを正しく接続してください。
ステップ3:コードを書きます
コードは、マイクロコントローラーと使用しているコンポーネントに依存します。 Arduinoを使用して、シフトレジスタで4 7セグメントLCDを駆動する簡単な例を次に示します。
#include <shiftregister74hc595.h> //シフトレジスタの数を定義するconst int numregisters = 4; // shiftregister74hc595クラスshiftregister74hc595 <numregisters> sr(11、9、10)のインスタンスを作成します。 //各デジットバイトDIGITPATTERNS [10] = {0B00111111、// 0 0B00000110、// 1 0B01011011、// 2 0B01001111、// 3 0b01100110、// 4 0b01101101、// 4 0b01111111111111年// 5 0b0111111// 6 0b00101、/ 6 0b01101、/ 6 0b01111、/ 6 0b01111、/6 0b01111111111111011111111年生までにセグメントパターンを保持する配列0b01111111、// 8 0b01101111 // 9}; void setup(){//シフトレジスタの初期化sr.setalllow(); } void loop(){//各lcd for(int i = 0; i <10; i ++){for(int j = 0; j <4; j ++){sr.setalllow(); sr.set(j * 8、high); // jth lcd sr.setrange(j * 8 + 1、j * 8 + 8、digitpatterns [i])の共通ピンを選択します。遅延(1); //多重化遅延}}}
このコードでは、Shiftregister74HC595ライブラリを使用してシフトレジスタを制御しています。各数字のセグメントパターンを定義し、次にループ関数、マルチプレックスを使用して4つのLCDのそれぞれに0から9の数値を表示します。
トラブルシューティング
複数の7セグメントLCDを運転する場合、いくつかの問題が発生する可能性があります。いくつかの一般的な問題とそれらを修正する方法は次のとおりです。
1。フリッカリングLCD
LCDがちらついている場合、それはいくつかの理由が原因である可能性があります。 1つは、多重化速度が遅すぎるということです。各マルチプレックスサイクル間の遅延を減らしてみてください。もう1つの理由は、電源が安定していないことです。電源がすべてのLCDに十分な電流を提供できることを確認してください。
2。誤ったディスプレイ
LCDの数値または文字が正しく表示されていない場合は、配線と送信しているデータを確認してください。セグメントパターンが正しく、ピンが適切に接続されていることを確認してください。
結論
複数の7セグメントLCDを運転することは、楽しくやりがいのあるプロジェクトになる可能性があります。配線の基本原則を理解し、シフトレジスタと多重化を使用することにより、優れたディスプレイシステムを作成できます。デジタル時計、スコアボード、または複数のディスプレイを必要とするその他のプロジェクトを構築する場合でも、これらの手法は役立ちます。
プロジェクトのために7つのセグメントLCDを購入することに興味があるなら、私たちはここに助けてくれます。高品質を提供します否定的なLCD、VA LCDディスプレイ、 そしてHTN LCDディスプレイ。お客様にお問い合わせください。お客様の要件について話し合い、今日プロジェクトを開始してください!
参照
- Arduinoドキュメント
- 7セグメントLCDとシフトレジスタのデータシート
