- 7セグメントおよび4桁の7セグメントディスプレイモジュール:
- 4桁の7セグメントモジュールをRaspberryPiに接続する:
- Raspberry Piのプログラミング:
- Raspberry Piを使用した4桁7セグメントの表示時間:
私たちは皆、ラズベリーパイを知っています ARMマイクロプロセッサに基づく素晴らしい開発プラットフォームです。その高い計算能力で、それは電子機器愛好家や学生の手で驚異を解決することができます。これはすべて、現実の世界と相互作用させ、何らかの出力デバイスを介してデータを分析する方法を知っている場合にのみ可能です。リアルタイムの世界から特定のパラメーターを検出してデジタルの世界に転送できるセンサーはたくさんあり、LCD画面またはその他のディスプレイでそれらを表示して分析します。ただし、少量のデータを表示するためにPI付きのLCD画面を使用することは常に経済的ではありません。ここで、16x2英数字LCDディスプレイまたは7セグメントディスプレイを使用することをお勧めします。 Raspberrypiで英数字LCDとシングルセグメント7セグメントディスプレイを使用する方法をすでに学びました。今日は4桁の7セグメントディスプレイモジュールをRaspberryPiとインターフェースし、その上に時間を表示します。
16x2英数字LCDは7セグメントディスプレイよりもはるかに快適ですが、7セグメントディスプレイがLCDディスプレイよりも便利になるシナリオはほとんどありません。LCDには文字サイズが小さいという欠点があり、数値を表示するだけの場合はプロジェクトにとってやり過ぎになります。7セグメントは、照明条件の悪さに対しても利点があり、通常のLCD画面よりも大きな角度から見ることができます。それで、それを知り始めましょう。
7セグメントおよび4桁の7セグメントディスプレイモジュール:
7セグメントディスプレイには7つのセグメントがあり、各セグメントには1つのLEDがあり、対応するセグメントを点灯して番号を表示します。7セグメントに番号「5」を表示させたい場合と同様に、対応するピンを高くして、セグメントa、f、g、c、およびdをグローする必要があります。7セグメントディスプレイには、CommonCathodeとCommonAnodeの2種類があります。ここでは、CommonCathodeの7セグメントディスプレイを使用しています。7セグメントディスプレイの詳細については、こちらをご覧ください。
これで、1つの7セグメントディスプレイに目的の数字を表示する方法がわかりました。しかし、1桁を超える情報を伝達するには、複数の7セグメントディスプレイが必要になることは明らかです。したがって、このチュートリアルでは、以下に示すように4桁の7セグメントディスプレイモジュールを使用します。
ご覧のとおり、4つの7セグメントディスプレイが相互に接続されています。各7セグメントモジュールには10ピンがあり、4つの7セグメントディスプレイには合計40ピンがあり、ドットボードにはんだ付けするのは面倒なので、モジュールを購入することを強くお勧めします。または、4桁の7セグメントディスプレイを使用するための独自のPCBを作成します。同じものの接続回路図を以下に示します。
4桁の7セグメントモジュールがどのように機能するかを理解するには、上記の回路図を調べる必要があります。図に示すように、4つのディスプレイすべてのAピンが接続されて1つのAとして集まり、B、C….からDPまで同じです。したがって、基本的にトリガーAがオンの場合、4つのAすべてが高くなるはずです。
しかし、それは起こりません。D0からD3(D0、D1、D2、およびD3)までの追加の4つのピンがあり、4つのうちどのディスプレイをハイにするかを制御するために使用できます。例:出力を2番目のディスプレイにのみ表示する必要がある場合は、他のピン(D0、D2、およびD3)をローに保ちながら、D1のみをハイにする必要があります。D0からD3のピンを使用してアクティブにする必要のあるディスプレイと、AからDPのピンを使用して表示する文字を選択するだけです。
4桁の7セグメントモジュールをRaspberryPiに接続する:
この4桁の7セグメントモジュールをRaspberryPiに接続する方法を見てみましょう。以下に示すように、7セグメントモジュールには16個のピンがあります。あなたのモジュールはもっと少ないかもしれませんが、それでも確かに次のものがあるので心配しないでください
- 7または8セグメントピン(ここでは1から8までのピン)
- アースピン(ここではピン11)
- 4桁のピン(ここではピン13〜16)
以下に、4桁の7セグメントディスプレイモジュールをRaspberryPiに接続したRaspberrypiデジタル時計の回路図を 示します。
次の表は、接続を確立し、上記の回路図に従って接続されていることを確認するのにも役立ちます。
S.No |
Rsp PiGPIO番号 |
Rsp PiPIN番号 |
7セグメント名 |
7セグメントピン番号(このモジュールでは) |
1 |
GPIO 26 |
PIN 37 |
セグメントa |
1 |
2 |
GPIO 19 |
PIN 35 |
セグメントb |
2 |
3 |
GPIO 13 |
PIN 33 |
セグメントc |
3 |
4 |
GPIO 6 |
PIN 31 |
セグメントd |
4 |
5 |
GPIO 5 |
PIN 29 |
セグメントe |
5 |
6 |
GPIO 11 |
PIN 23 |
セグメントf |
6 |
7 |
GPIO 9 |
PIN 21 |
セグメントg |
7 |
8 |
GPIO 10 |
PIN 19 |
セグメントDP |
8 |
9 |
GPIO 7 |
PIN 26 |
桁1 |
13 |
10 |
GPIO 8 |
PIN 24 |
桁2 |
14 |
11 |
GPIO 25 |
PIN 22 |
桁3 |
15 |
12 |
GPIO 24 |
PIN 18 |
数字4 |
16 |
13 |
接地 |
接地 |
接地 |
11 |
モジュールのピンを特定すれば、接続を続行できます。Raspberry piでGPIOピンを見つけるのは少し難しい作業かもしれないので、GPIOピンのこの写真を提供しました。
Raspberry Piのプログラミング:
ここでは、RPiのプログラミングにPythonプログラミング言語を使用しています。RaspberryPiをプログラムする方法はたくさんあります。このチュートリアルでは、 Python 3 IDEを使用しています。これは、Python 3IDEが最もよく使用されているためです。 完全なPythonプログラムは 、このチュートリアルの最後に与えられています。Raspberry Piでのプログラムと実行コードの詳細については、こちらをご覧ください。
このプロジェクトのPYHTONプログラムで使用するいくつかのコマンドについて説明します。
まず、ライブラリからGPIOファイルをインポートします。以下の関数を使用すると、PIのGPIOピンをプログラムできます。また、「GPIO」の名前を「IO」に変更しているため、プログラムでGPIOピンを参照する場合は常に、「IO」という単語を使用します。また、Rsp Piから時間の値を読み取るために、 時刻 と 日時 をインポートしまし た 。
RPi.GPIOをGPIOインポート時刻、日時としてインポートします
時々、私たちが使おうとしているGPIOピンが他の機能をしているかもしれません。その場合、プログラムの実行中に警告が表示されます。以下のコマンドは、PIに警告を無視して、プログラムを続行するように指示します。
IO.setwarnings(False)
PIのGPIOピンは、ボード上のピン番号または機能番号のいずれかで参照できます。ボード上の「PIN29」のように「GPIO5」です。したがって、ここでは、ピンを「29」または「5」で表すことにします。GPIO.BCMは、GPIO5ピン29に5を使用することを表します。
IO.setmode(GPIO.BCM)
いつものように、ピンを初期化することから始める必要があります。ここでは、セグメントピンとディジットピンの両方が出力ピンです。プログラミングの目的で、セグメントピンの配列を作成し、GPIO.OUTとして宣言した後、それらを「0」に初期化します。
セグメント8 =(26,19,13,6,5,11,9,10)セグメント8のセグメントの場合:GPIO.setup(segment、GPIO.OUT)GPIO.output(segment、0)
同様に、ディジットピンについては、出力ピンとして宣言し、デフォルトで「0」にします。
#Digit 1 GPIO.setup(7、GPIO.OUT)GPIO.output(7、0)#最初はオフ#Digit 2 GPIO.setup(8、GPIO.OUT)GPIO.output(8、0)#最初はオフ#Digit 3 GPIO.setup(25、GPIO.OUT)GPIO.output(25、0)#最初はオフ#Digit 4 GPIO.setup(24、GPIO.OUT)GPIO.output(24、0)#最初はオフ
7セグメントディスプレイに各数値を表示するには、配列を作成する必要があります。1つの数値を表示するには、7つのセグメントピンすべて(ドットピンを除く)を制御する必要があります。つまり、オフにするかオンにする必要があります。たとえば、5番を表示するには、次のように配置します。
S.No |
Rsp PiGPIO番号 |
7セグメント名 |
「5」を表示するステータス。 (0->オフ、1->オン) |
1 |
GPIO 26 |
セグメントa |
1 |
2 |
GPIO 19 |
セグメントb |
1 |
3 |
GPIO 13 |
セグメントc |
0 |
4 |
GPIO 6 |
セグメントd |
1 |
5 |
GPIO 5 |
セグメントe |
1 |
6 |
GPIO 11 |
セグメントf |
0 |
7 |
GPIO 9 |
セグメントg |
1 |
同様に、すべての数字とアルファベットのシーケンス番号があります。あなたは自分で書くか、以下のチャートを使うことができます。
これらのデータを使用して、以下に示すように、Pythonプログラムで各数値の配列を作成できます。
null =ゼロ= 1 = 2 = 3 = 4 = 5 = 6 = 7 = 8 = 9 =
プログラムに従うと、各文字を7セグメントディスプレイに表示する機能がありますが、今はこれをスキップして、 while 無限ループに入りましょう。どこラズベリーパイから現在の時刻を読み、4つの変数の間の時間の値を分割します。たとえば、時間が10.45の場合、変数h1は1、h2は0、m1は4v、m2は5になります。
now = datetime.datetime.now()hour = now.hour minutes = now.minute h1 = hour / 10 h2 = hour%10 m1 = minutes / 10 m2 = minutes%10 print(h1、h2、m1、m2)
これらの4つの変数値をそれぞれ4桁で表示する必要があります。変数の値を数字に書き込むには、次の行を使用できます。ここでは、桁1をハイにして表示しています。次に、関数 print_segment(variable) が呼び出され、変数の値がセグメントディスプレイに表示されます。なぜその後に遅延が発生するのか、なぜこの数字をオフにするのか疑問に思われるかもしれません。
GPIO.output(7、1)#ディジット1をオンにするprint_segment(h1)#セグメントにh1を出力するtime.sleep(delay_time)GPIO.output(7、0)#ディジット1をオフにする
その理由は、一度に表示できるのは1桁だけですが、表示するのは4桁であり、4桁すべてが表示された場合にのみ、4桁の数字全体がユーザーに表示されるためです。
では、4桁すべてを同時に表示するにはどうすればよいでしょうか。
私たちにとって幸運なことに、私たちのMPUは人間の目よりもはるかに高速なので、実際に行うことは 、一度に1桁ずつ表示しますが、上記のように非常に高速です。
MPUと7セグメントがそれを処理できるように2ms(可変delay_time)待機する1桁のディスプレイを選択し、その桁をオフにして次の桁に移動し、最後の桁に到達するまで同じことを行います。この2msの遅延は人間の目では観察できず、4桁すべてが同時にオンになっているように見えます。
print_segment(variable) 関数がどのように機能するかを知るためにそれを学ぶ最後のこと。この関数内では、これまでに宣言した配列を使用します。したがって、この関数に送信する変数の値が(0〜9)の間であれば、変数文字はこの値を受け取り、実際の値と比較します。ここで、変数は「1」と比較されます。同様に、0から9までのすべての数値と比較します。一致する場合は、配列を使用して、以下に示すように、それぞれのセグメントピンに各値を割り当てます。
def print_segment(charector):if charector == 1:for i in range(7):GPIO.output(segment8、one)
Raspberry Piを使用した4桁7セグメントの表示時間:
ここに記載されている回路図とコードを使用して接続を確立し、それに応じてラズベリーパイをプログラムします。すべてが完了したら、プログラムを起動するだけで、7セグメントディスプレイに現在の時刻が表示されているはずです。しかし、これの前にあなたがチェックしなければならないことがいくつかあります
- オフライン時間で実行されている場合に備えて、RaspberryPiが現在の時刻に設定されていることを確認してください。
- 7セグメントディスプレイによって引き出される電流の量が多く、USBポートがそれを供給できないため、ラップトップ/コンピューターではなくアダプターを使用してRaspberrypiに電力を供給します。
すべてが期待どおりに機能している場合は、以下のようなものが見つかります。
このラズベリーパイ時計の完全な動作は、以下のビデオでも確認できます。あなたがプロジェクトを気に入って、それを作るのを楽しんだことを願っています。ご意見やサポートが必要な場合はお知らせください。