注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
5.2 - 数字表示
LEDセグメントディスプレイは日常生活の至る所で見かけます。 例えば、エアコンでは温度を表示するため、交通信号ではタイマーを表示するために使用されます。
LEDセグメントディスプレイは、基本的に8つのLEDで構成された装置です。そのうち、7つのストリップ状のLEDが「8」の形を形成し、もう一つは少し小さい点状のLEDが小数点としてあります。これらのLEDはa, b, c, d, e, f, g, およびdpとマークされています。それぞれには独自のアノードピンがあり、カソードは共有されています。ピンの位置は以下の図で示されています。
これは、フル動作するために同時に8つのデジタル信号で制御する必要があることを意味し、74HC595でこれを行うことができます。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
一式を購入するのが便利です、リンクはこちら:
名前 |
このキットに含まれるアイテム |
購入リンク |
|---|---|---|
Kepler Kit |
450+ |
以下のリンクから個別に購入することもできます。
SN |
コンポーネントの紹介 |
数量 |
購入リンク |
|---|---|---|---|
1 |
1 |
||
2 |
マイクロUSBケーブル |
1 |
|
3 |
1 |
||
4 |
数本 |
||
5 |
1(220Ω) |
||
6 |
1 |
||
7 |
1 |
回路図
配線
LED セグメントディスプレイ |
|
|---|---|
Q0 |
a |
Q1 |
b |
Q2 |
c |
Q3 |
d |
Q4 |
e |
Q5 |
f |
Q6 |
g |
Q7 |
dp |
コード
注釈
kepler-kit-main/arduino/5.2_number_displayのパスの下で5.2_number_display.inoファイルを開くことができます。または、このコードを Arduino IDE にコピーしてください。
アップロード ボタンをクリックする前に、ボード(Raspberry Pi Pico)と正しいポートを選択することを忘れないでください。
プログラムが動作していると、LEDセグメントディスプレイが0~9までの数字を順番に表示するのが見えるでしょう。
仕組みは?
shiftOut() は74HC595に8つのデジタル信号を出力させます。
最後のビットの二進数をQ0に、最初のビットの出力をQ7にします。言い換えると、二進数 "00000001" を書くと、Q0はハイレベルを出力し、Q1~Q7はローレベルを出力します。
7セグメントディスプレイが数字 "1" を表示する場合、b、cにハイレベルを書き、a、d、e、f、g、およびdgにローレベルを書きます。 つまり、二進数 "00000110" を書く必要があります。可読性のため、16進数表記 "0x06" を使用します。
同様に、同じ方法でLEDセグメントディスプレイに他の数字を表示させることもできます。以下の表は、これらの数字に対応するコードを示しています。
数字 |
二進数コード |
16進数コード |
|---|---|---|
0 |
00111111 |
0x3f |
1 |
00000110 |
0x06 |
2 |
01011011 |
0x5b |
3 |
01001111 |
0x4f |
4 |
01100110 |
0x66 |
5 |
01101101 |
0x6d |
6 |
01111101 |
0x7d |
7 |
00000111 |
0x07 |
8 |
01111111 |
0x7f |
9 |
01101111 |
0x6f |
これらのコードを shiftOut() に書き込むと、LEDセグメントディスプレイが対応する数字を表示します。


