Top 10 Articles
On 10月 12, 2021 by admin先日、7セグメントLEDディスプレイ1つを使ったArduinoプロジェクト入門編を公開しました。 これは素晴らしいDIYプロジェクトですが、読者の多くは、複数の7セグメント発光ダイオード・ディスプレイを使用した、より高度な回路を探していることに注目しました。 ここでは、Arduinoの4桁の7セグメントLED表示器の簡単で便利な回路を紹介します。 ここで使用されているモジュールは、4 つの 7 セグメント LED 数値表示を含む自己完結型の小型コモンカソード・モジュールです。
表示モジュール内の各セグメントは多重化されており、同じアノード接続ポイントを共有しています。 また、モジュール内の4つの桁は、それぞれ共通のカソード接続ポイントを有しています。 これにより、各桁を独立して点灯/消灯させることができます。 また、この多重化技術により、ディスプレイを制御するために必要な膨大な量のマイクロコントローラー ピンが、(32 本の代わりに)わずか 11 または 12 本になります!
ディスプレイの LED セグメントは、5 V ロジック ピンから電源を供給されると電流制限抵抗が必要です。 抵抗の値は、通常 330 ~ 470Ω です。 また、マイクロコントローラの各ピンが 40mA 近くの電流しか供給またはシンクできないため、LED セグメントに追加の駆動電流を供給するために、ドライバ・トランジスタを推奨します。 ディスプレイのすべての(7つの)セグメントが一度に点灯した場合(数字の8)、電流需要はこの40 mAの制限を超えることになります。 下の図は、電流制限抵抗とドライバー・トランジスタの基本配線図です。
次は、Arduino 4桁7セグメントLEDディスプレイの接続図と、Arduinoスケッチの続きです。 スケッチをArduinoにアップロードするには、通常通りArduino IDEを使用します。
この4桁の7セグメント表示部は、コモンカソードの7セグメントLEDディスプレイ4つと、BC547 npnトランジスタ4つで配線されています。 1K の抵抗はベース電流の制限に使用され、390R の抵抗は LED ディスプレイ セグメントの動作電流を制限します。
Arduino ボードでは、D2 ~ D8 のデジタル出力はセグメント (a ~ g) の駆動に、D9 ~ D12 は 4×7 LED ディスプレイの桁 (D0 ~ 03) に使用されています。 なお、ここでは小数点(dp)オプションは使用していませんが、スケッチには含まれています。 ArduinoのD13は、小数点セグメント用に予約されています。 10Kポテンショメータは、接続図にあるように、アナログ入力AOに接続されています。
Prototype @ Work
/** Arduino 4x7 LED Display* Displays numbers ranging from 0 through 1023* Test Code displays the value of a sensor connected to the analog input A0* Inspired by a code found in the Arduino Cookbook* Tested at TechNode Protolabz/July 2014*/// bits representing segments A through G (and decimal point) for numerals 0-9const int numeral = { //ABCDEFG /dp B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B00111110, // 6 B11100000, // 7 B11111110, // 8 B11100110, // 9};// pins for decimal point and each segment// DP,G,F,E,D,C,B,Aconst int segmentPins = { 13,8,7,6,5,4,3,2 };const int nbrDigits= 4; // the number of digits in the LED display//dig 0 1 2 3const int digitPins = { 9,10,11,12 };void setup(){ for(int i=0; i = 0; digit--) { if(number > 0) { showDigit( number % 10, digit) ; number = number / 10; } } }} // Displays given number on a 7-segment display at the given digit positionvoid showDigit( int number, int digit){ digitalWrite( digitPins, HIGH ); for(int segment = 1; segmentShare this:
コメントを残す