ESP32 チュートリアル 10/55 - セブンセグメントディスプレイ 74HC595 を使用したデジタルカウンター - ESP32 IoT ラーニングキット

ESP32 チュートリアル 10/55 - セブンセグメントディスプレイ 74HC595 を使用したデジタルカウンター - ESP32 IoT ラーニングキット

このチュートリアルでは、ESP32マイクロコントローラで制御される7セグメントディスプレイを使用してデジタルカウンターを作成します。カウンターは0から9まで増加し、その後再び0に減少し、カウントプロセスの明確なビジュアルを提供します。また、個々のセグメントを点灯させたり、7セグメントディスプレイに文字を表示する方法も探ります。

ESP32_アニメート7セグメント-セグメント

このプロジェクトでは、74HC595シフトレジスタを利用してディスプレイを制御し、ESP32のGPIOピンを多く使用せずにセグメントを効率的に管理しています。シフトレジスタにバイナリ値を送信することで、対応するセグメントを点灯させて数字や文字を表現できます。このプロセスをより深く理解するためには、ビデオ(03:15のビデオ)を参照できます。

ESP32_アニメート7セグメント-文字

ハードウェアの解説

このプロジェクトの主なコンポーネントには、ESP32マイクロコントローラー、74HC595シフトレジスタ、および7セグメントディスプレイが含まれます。ESP32は、内蔵のWi-FiおよびBluetooth機能を備えた強力なマイクロコントローラーで、IoTプロジェクトに適しています。74HC595は、少数の入力ピンを使用して複数の出力を制御できるシフトレジスタです。これは、シリアルデータを受け取り、それを並列出力に変換することで、7セグメントディスプレイを駆動するのに最適です。

七セグメントディスプレイは、8の字型に配置された7つの個別のLEDから構成されています。各セグメントは、シフトレジスタに適切なバイナリ値を送信することでオンまたはオフにすることができます。例えば、数字の0を表示するには、中央のセグメント(G)を除くすべてのセグメントを点灯させる必要があります。

ESP32_アニメイト7セグメント-カウンター-アップダウン
ESP32_アニメート7セグメント-カウンター-1

データシートの詳細

製造業者 テキサス・インスツルメンツ
部品番号 74HC595
ロジック/入出力電圧 2 Vから6 V
供給電圧 2 Vから6 Vまで
出力電流(チャネルごと) 6 mA
ピーク電流(チャンネルごと) 35 mA
PWM周波数ガイダンス 1 kHzまで
入力論理しきい値 0.3 VCC0.7 VまでCC
電圧降下 / RDS(on)/ 飽和度 0.2 V 最大
熱的制限 125 °C
パッケージ DIP-16
ノート / バリアント さまざまなパッケージで利用可能です。

  • 適切な電圧供給を確保してください(2 Vから6 Vまで)。
  • 出力電流を制限して過熱を防止します。
  • 各セグメントに最適な輝度を得るために、別々の抵抗を使用してください。
  • ショートや不適切な接続を避けるために、配線には注意してください。
  • ピン配置を注意深く確認して、誤設定を避けてください。

配線指示

ESP32-10-seven-segment-wiring

ブレッドボードの設定から始めます。グラウンドレール(青い線)と電源レール(赤い線)を接続します。グラウンドはブレッドボードの一方の側の青い線に接続し、電源は反対側の赤い線に接続する必要があります。黒いワイヤーを使用してESP32のグラウンドをグラウンドレールに接続し、赤いワイヤーでESP32の3.3Vピンを電源レールに接続します。

次に、74HC595シフトレジスタをブレッドボードに挿入し、ノッチが正しい方向を向いていることを確認します。ピン11(DS)をESP32のピン25に、ピン12(SH_CP)をピン26に、ピン14(ST_CP)をピン27に接続します。シフトレジスタのグラウンド(ピン8)をグラウンドレールに接続し、ピン10(MR)をパワーレールに接続してアクティブにします。

七セグメントディスプレイの場合、セグメント(a-g)に対応するピンをシフトレジスタの出力ピンに接続します。各セグメントには抵抗(220オーム)を直列に接続して電流を制限します。共通ピンの接続が適切であることを確認してください。共通ピンは、ディスプレイの種類に応じて共通アノードまたは共通カソードにすることができます。

コード例と手順説明

セットアップ関数では、シフトレジスタに接続されているピンを出力として定義することから始めます。これにより、ESP32がディスプレイに送信されるデータを制御できるようになります。

void setup ()
{
  //set pins to output
  pinMode(STcp,OUTPUT);
  pinMode(SHcp,OUTPUT);
  pinMode(DS,OUTPUT);
}

ここでは、私たちは定義しますSTcp,SHcp, とDSシフトレジスタのそれぞれのST_CP、SH_CP、およびDSに接続されたピンとして、これらのピンを出力に設定することで、シフトレジスタを制御することができます。

プログラムのメインループは0から9までカウントし、対応する値をディスプレイに送信します。shiftOut機能。

for(int num = 0; num <10; num++)
{
    digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
    shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
    digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
    delay(1000);
}

このループは増加しますnum変数、対応する値を送信するdatArrayディスプレイに毎秒。ザshiftOut関数はデータをシフトレジスタに送信し、それが適切なセグメントを点灯させます。

デモンストレーション / 期待できること

配線が完了し、コードがアップロードされると、7セグメントディスプレイが0から9までカウントし、一時停止してから0に戻るのが見えるはずです。各数字は1秒間表示されます。カウントアップを速くしたい場合は、ループ内の遅延を調整することができます(ビデオの15:30で)。

セグメントを個別に操作する際は、正しいバイナリ値を送信して文字や特定のセグメントを表示することを忘れないでください。ディスプレイが暗く見える場合は、一貫した明るさを確保するために、各セグメントに個別の抵抗を追加することを検討してください。

ビデオのタイムスタンプ

  • 00:00 スタート
  • 1:53 セブンセグメントの紹介
  • 4:38 配線の説明
  • 13:15 Arduino コード-1
  • 17:01 COM ポートと ESP32 ボードを選択中
  • 18:43 デモンストレーション-1
  • 20:13 一桁のみ表示
  • 上下カウンター
  • 23:07 各セグメントのON/OFFの切り替え
  • 24:53 A、B、C、D、E、およびFを表示しています

画像

ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
ESP32-10-seven-segment-wiring
809-ESP32 Tutorial 10/55 - Arduino code for 2.5 7 segment
言語: C++
コピーしました!

リソースと参考文献

ファイル📁

ファイルは利用できません。