目次:
- 用品:
- ステップ1:必要なもの:部品リスト
- ステップ2:DVMの基本原則
- ステップ3:回路構成
- ステップ4:2チャンネルDVMコード
- ステップ5:校正
- ステップ6:サンプリング、平均化、表示
- ステップ7:プログラム可能なプログラム
- ステップ8:プログラマブルDVMのビデオ
このInstructableはArduino Analogポートの使い方を教えます。
デジタル電圧計(DVM)は、アナログ - デジタル変換器(A / DC)の特殊なケースです。これらは電圧を測定します。通常、ラボの電圧を測定するために一般的に使用されるデジタルマルチメータ(DMM)と呼ばれる汎用計測器の機能です。現場で。 DMMはLCDまたはLEDを使用して測定電圧を表示し、結果を浮動小数点形式で表示します。あらゆる状況での電圧測定に最適な機器です。これはArduinoをDC DVM(直流デジタル電圧計)として使用する方法を説明します。
Arduinoのアナログ入力を使用して0〜5VのDC電圧を測定し、その値をTFT LCDカラーディスプレイに表示します。
違いがあるかどうかを確認するために、Sainsmart Arduino NanoとOfficial Arduino UNO R3を使用しました。
Arduinoが測定できる電圧範囲は、2つの抵抗を使って分圧器を作ることによって簡単に拡張できます。
分圧器は文字通り、測定されている電圧を縮小して、Arduinoのアナログ入力の範囲内(すなわち、0〜5ボルト)になるようにする。
それからArduinoスケッチをプログラムして、入力にスケールされた係数を掛けることによって測定されている実際の電圧を計算することができます。
これは私達が5V DC以上の電圧を測定することを可能にするでしょう、私達が安全に測定することができる最大DC電圧はこの命令で使用される部品で〜50VDCです、しかしあなたの必要性に合うように変更できます..
用品:
ステップ1:必要なもの:部品リスト
これらは4チャンネルDVMを構築するために必要な部品です総費用は約35ドルです!
- Arduino(私はSainsmart Nano Clone($ 13.99)とUNO R3を使いましたが、誰でもできると思います)
- arduino IDEと空いているUSBポートを備えたPC。
- Arduino用のUSBケーブル
- Sainsmart 1.8インチTFTカラーLCD(12.99ドル)ディスプレイ
- 各チャンネルに4 x 1メガオーム抵抗器(茶、黒、緑)1
- 各チャンネルに4 x 100KΩ抵抗(ブラウン、ブラック、イエロー)1
- Arduinoアナログ入力への追加保護のための4つの5.1ボルトツェナーダイオード(オプション)
- ジャンパーケーブル、それらの多く、異なるサイズと色
- 無はんだブレッドボード(私が使っている。私のRadioShack電子実験者の実験室用ブレッドボード)
- DVM出力を校正するためのマルチメータおよび/または電圧リファレンス
ステップ2:DVMの基本原則
プロジェクトをまとめる前に、DVMを使用した電圧測定に関するいくつかの基本原則と注意事項を確認しましょう。
正確さと精度
私達のDVMは商業的に利用可能なユニットほど正確でも精密でもないでしょう、しかしそれは確かにより柔軟です。
読み値をできるだけ正確にするために、入力分解能とキャリブレーションという2つのことを考慮する必要があります。入力解像度はArduinoのアナログ入力A / Dコンバーターに依存します。これはArduinoのunoとnanoでは10ビットです。校正は、使用されるコンポーネントの品質と測定値の校正に使用される基準に依存します。
入力インピーダンス
DC電圧を測定する市販のデジタルマルチメータは通常、10MΩ以上の非常に高い入力インピーダンスを有する(すなわち、2つのマルチメータ試験プローブ間の抵抗は10MΩ以上である)。
電圧計が測定される回路の値に影響を与えないように、電圧計には高い入力インピーダンスが必要です。
電圧計の入力インピーダンスが低いと、測定されている電圧が変化し、誤った測定値が表示される可能性があります。
しかしながら、高い入力インピーダンスを有することにも欠点がある。テストプローブは電磁干渉(EMI)を拾いやすく、測定値をオフセットして「ファントム」測定値を表示することもあります。
高い入力インピーダンスが望ましいですが、私達が使用する分圧回路は私達の電圧計に約1MΩの入力インピーダンスを与えます。これはほとんどの低電圧測定と通常電子愛好家によって作られた低インピーダンス回路に受け入れられます。
分圧回路
入力電圧をArduinoのアナログ入力仕様の安全な境界内の範囲に縮小する2つの抵抗を直列に使用します。基本的な分圧器の式は次のとおりです。
V out = V in * R b /(R a + R b)
以下の場合:
R a =1MΩ
R b =100KΩ
V out = 5V(arduinoアナログ入力ピンの最大電圧)
それから。
V in = 55 V(安全に測定できる最大電圧)
使用する回路は、入力電圧を11で分割します。 (100K /(100K + 1M))=(100/1100)=(1/11)
コモングランド拘束
ほとんどの市販のDVMSでは、グラウンド基準だけでなく、あらゆる部品の電圧を測定できます。 ArduinoのGNDピンは標準マルチメータのマイナスまたはコモン(COM)テストプローブのリード線として使用され、回路のグランドに接続する必要があるため、当社のArduinoベースの電圧計ではこれを行うことはできません。テスト。
入力保護
私達が使用している抵抗値は、低電圧で最大約55ボルトまでを測定するときにいくらかの過電圧保護を提供します。偶発的な過電圧(> 55VDC)からArduinoを保護するために、オプションで、100KΩの抵抗と並列に5.1ボルトのツェナーダイオードを使用することができます。これはArduinoのアナログ入力ピンに追加の保護を提供します。
最大電圧定格
前述のように、Arduinoのアナログ入力ピンに接続されている抵抗分割ネットワーク上の点は、入力電圧を11で割った値に等しくなります(55V÷11 = 5V)。安全に測定できる最大電圧は55ボルトです。Arduinoのアナログピンは最大5Vになります。あぶない!!! 55ボルトを超える電圧を測定しようとしないでください。そうしないと、Arduinoを損傷する可能性があります。
ステップ3:回路構成
まず1つの分圧器を作成してそれをArduinoに接続し、簡単なスケッチで回路をテストして、残りの回路の作成に進みます。
入力が機能したら、1.8インチTFT LCDカラーディスプレイを取り付け、入力測定値を表示するためのスケッチを書きます。
次に、DVMを改善またはカスタマイズするために、いくつかのソフトウェアとハードウェアのオプションを検討します。
それではブレッドボード上に分圧器を作りそれをArduinoのA0ピンに接続することから始めましょう。
回路図と他の写真を見て、手順を説明してください。
回路を組み立てたら、ArduinoをPCのUSBポートに接続し、次のテストスケッチをアップロードすると、シリアルモニタを介して空いている1Meg抵抗脚に接続されている電圧が表示されます。
次のスケッチをコピーしてArduino IDEに貼り付けるだけです。
// -----------------スケッチ開始-----------------------------
/* -----------------------------------------------------------
プログラム:SERIAL DVM
説明:シリアルモニタに表示される電圧付きDC電圧計
カラーTFT LCDはまだありません!
ハードウェア:A0に分圧器を備えたArduino NANOまたはUno。
ソフトウェア:Arduino 1.0.3ソフトウェアを使用して作成および開発
日付:
著者:
--------------------------------------------------------------*/
//分圧器のキャリブレーション値
#define Dv1 11
// ADC基準電圧/校正値
#define VREF 5
float V1 = {0.00};
void setup()
{
Serial.begin(9600);
}
void loop()
{
V1 = analogRead(0);
Serial.print( "Voltage @ pin A0");
Serial.println(((((V1 * VREF)/ 1023))* Dv1、2);
}
// -----------------スケッチ終了-----------------------------
何が起こっているのかを見てみましょう。
Arduinoに使用されるAtmegaコントローラは、オンボードの6チャンネルアナログ - デジタル(A / D)コンバーターを含みます。コンバータは10ビットの分解能を持ち、0から1023の整数を返します。10= 1024、0がカウントされるので、0〜5ボルトの値に対して1023ステップです。
A / Dの戻り値を、測定している実際の電圧に変換します。
10ビットA / Dコンバーターから返される値を調整するには、結果に5を掛けて1023で除算する必要があります。
また、分圧器で電圧を11で除算しているので、測定している電圧(およびディスプレイに表示したい電圧)に11を掛けて、分圧を補正する必要があります。
followimgの公式でそれを行います。
Vout =((Vin×(5/1023))×11)。
このためのコードは次のとおりです。
Serial.println(((((V1 * VREF)/ 1023))* Dv1、2);
A / D出力を0と5の間のスケールに変換するために5(VREF)を掛けて1023で割り、次に11(Dv1)を掛けて分圧器を補正します。分圧器と電圧の値に変数を使用しているのは、DVMを校正するとこれらの値が変わるためです。式の最後にある「2」は、小数点以下の桁数を定義します。
プログラムを正しくロードできたら、arduino IDEの右上隅にある拡大アイコンをクリックしてシリアルモニターを開くと、データが流れているはずです。ジャンパワイヤを使用して、1Meg抵抗の自由脚を先にGNDピンに接続してから5Vピンに接続してみます。読み値が0から5vに変わるはずです。
4チャンネルのDVMを作成するには、最初のチャンネルで行ったことをもう3回繰り返す必要があります。その前に、TFTカラーLCDディスプレイをArduinoに接続しましょう。これを行うには7本のジャンパー線が必要になります。
以下をジャンパーで接続してください
TFT液晶アルドゥイーノ
VCC 5V
GND GND
SCL 13
SDA 11
CS 10
RS / DC 9
RES 8
注意:
私の他のインストラクターとは異なり、私達はディスプレイを駆動するために高速SPIインターフェースを使用するのでジャンパー配線は異なります。また、配線方法がわからない場合は、写真を参考にしてください。
ディスプレイを使用するには2つのライブラリをインストールする必要があります。
Adafruit_GFX.hコアグラフィックライブラリ
Adafruit_ST7735.hハードウェア固有のライブラリ
ライブラリをダウンロードして、それらをArduinoのライブラリフォルダにコピーします。
下のスケッチをコピーしてArduino IDEに貼り付けます。スケッチDVMコードは同じですが、LCDディスプレイにA0の電圧を表示するコードが追加されています。
スケッチをコンパイルしてArduinoにアップロードします。
// -----------------スケッチ開始-----------------------------
/*-----------------------------------------------------------
プログラム:TFTLCDDVM
説明:電圧が表示されたDC電圧計
カラーTFT LCDでは小数点第2位まで
ハードウェア:A0に分圧器を備えたArduino NANO。
TFT液晶接続
ソフトウェア:Arduino 1.0.3ソフトウェアを使用して開発
日付:2014年3月10日
作者:ジョナグ
--------------------------------------------------------------*/
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8 // reset
#include //コアグラフィックライブラリ
#include //ハードウェア固有のライブラリ
#含める
Adafruit_ST7735 tft = Adafruit_ST7735(cs、dc、rst);
//分圧器の校正値
#define Dv1 11
// ADC基準電圧
#define VREF 5
float V1 = {0.00};
void setup()
{
Serial.begin(9600);
tft.initR(INITR_BLACKTAB); // ST7735Sチップを初期化する、黒いタブ
tft.fillScreen(ST7735_BLACK); //画面をクリア
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
tft.setCursor(10,0);
tft.println( "DC電圧計DVM");
tft.setTextColor(ST7735_RED);
tft.setCursor(0,140);
tft.println( "注意最大電圧55vdc");
}
void loop()
{
V1 = analogRead(0);
tft.drawLine(0、20、tft.width() - 1、20、ST7735_WHITE);
tft.drawLine(0、130、tft.width() - 1、130、ST7735_WHITE);
tft.setTextColor(ST7735_YELLOW、ST7735_BLACK);
tft.setTextSize(2);
//電圧1(ピンA0)
//電圧は抵抗ネットワークで乗算されます
//実際の電圧を計算するための除算係数
tft.setCursor(45、40);
tft.println( "V1");
tft.setTextSize(1);
tft.println( "電圧@ピンA0");
tft.setCursor(20、80);
tft.setTextSize(2);
Serial.print( "Voltage @ pin A0");
Serial.println(((((V1 * VREF)/ 1023))* Dv1、2);
tft.print(((((V1 * VREF)/ 1023))* Dv1、2);
tft.print( "Vdc");
}
// ---------------スケッチ終了------------------------------- ---------
ステップ4:2チャンネルDVMコード
以下は2チャンネルDVMコピーのスケッチで、それをArduino IDEに貼り付けます。キャリブレーションが完了した後は、4チャンネルDVMのコードを残します。
// --------------------------- 2チャンネルDVM開始------------------ ---
/*--------------------------------------------------------------------
プログラム:voltmeter_LCD
説明:2チャンネルDC電圧計、電圧表示
カラーTFT LCDでは小数点第1位まで
ハードウェア:A0とA1に分圧器を備えたArduino NANO
TFT液晶接続
ソフトウェア:Arduino 1.0.3ソフトウェアを使用して開発
日付:2014年3月10日
著者:
--------------------------------------------------------------*/
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8 // reset
#include //コアグラフィックライブラリ
#include //ハードウェア固有のライブラリ
#含める
Adafruit_ST7735 tft = Adafruit_ST7735(cs、dc、rst);
//分圧器のキャリブレーション値
#define Dv1 11.00 //抵抗接点の電圧測定で計算
#define Dv2 11.25
// ADC基準電圧/校正値
#define VREF 4.9
float V1 = {0.0};
float V2 = {0.0};
void setup()
{
tft.initR(INITR_BLACKTAB); // ST7735Sチップを初期化する、黒いタブ
tft.fillScreen(ST7735_BLACK); //画面をクリア
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
tft.setCursor(5,0);
tft.println( "2チャンネル電圧計");
tft.setTextColor(ST7735_RED);
tft.setCursor(0,140);
tft.println( "注意最大電圧55vdc");
}
void loop()
{
V1 = analogRead(A0);
V2 =アナログ読み取り(A1)。
tft.drawLine(0、20、tft.width() - 1、20、ST7735_WHITE);
tft.drawLine(0、130、tft.width() - 1、130、ST7735_WHITE);
tft.setTextColor(ST7735_YELLOW、ST7735_BLACK);
//電圧1(ピンA0)
tft.setCursor(5、40);
tft.setTextSize(1);
tft.println( "電圧@ピンA0");
tft.setTextSize(2);
tft.setCursor(10、50);
tft.print( "V1");
tft.print(((((V1×VREF)/ 1023))* Dv1,1);
tft.print( "V");
//電圧2(ピンA1)
tft.setCursor(5、70);
tft.setTextSize(1);
tft.println( "電圧@ピンA1");
tft.setTextSize(2);
tft.setTextColor(ST7735_GREEN、ST7735_BLACK);
tft.setCursor(10、80);
tft.print( "V2");
tft.print(((((V2 * VREF)/ 1023))* Dv2,1);
tft.print( "V");
}
// --------------------------- 2チャンネルDVM END ------------------
ステップ5:校正
DVMを校正するには、安定した安定化出力を備えたマルチメータと電源が必要です。 Arduinos 5 Vおよび3.3 Vを基準電圧として使用できますが、許容誤差があるためマルチメータが必要です。そのため、電圧出力はArduinoごとに異なります。キャリブレーションの手順
- マルチメータを使ってArduinoの5Vピンの電圧を測定し、コード内のその数をVREF値として使います。たとえば、5.0Vを測定した場合、スケッチの中でVREFを定義する線は#define VREF 5.0になります。
- あなたの分圧器回路で、あなたのArduinoの5Vピンに1megの抵抗器の自由な足を差し込み、そして分圧器全体の両端の電圧、そして100kの抵抗器の両端の電圧を測定してください。 (最初はGNDから5Vに、次にGNDから100k抵抗の両端の抵抗接合点に)。 2つの電圧を分割すると、例えば、GNDから5Vまでの電圧は5.0、100k抵抗の両端の電圧は0.46Vになるので、5を0.46で除算します。5 / 0.46 = 10.869
- その値をDv1定義行に入れます。#define Dv1 10.869。
- スケッチをアップロードして、ディスプレイの測定値がマルチメータの測定値と一致するかどうかを確認します。
- すべての分圧器についてこの手順を繰り返し、それに応じて値を変更します。
ステップ6:サンプリング、平均化、表示
わかりました、それで私達はDVMを調整しました、しかし読みはまだ少し不安定でわずかにオフセットされているように見えます。それについてはまだできることがあります。測定された入力を表示するだけではなく、いくつかのサンプルを取得し、それらを加算して、合計を取得したサンプル数で除算します。これにより、入力値の平均が得られ、より安定した読み値が得られます。を使ってそれをやろう しながらループ.
以下のスケッチは、表示値を改善するためにサンプリングと平均化を使用しています。コピーしてArduino IDEに貼り付け、コンパイルしてロードします。
// -----------------スケッチ開始-----------------------------
/*--------------------------------------------------------------
プログラム:サンプリング付き1チャンネルDVM
説明:アナログ入力A0の値を読み取り、計算します
分圧器による電圧
A0ピンを10.195で除算したネットワークと5.0Vの基準電圧。
ハードウェア:A0に分圧器を備えたArduinonanoまたはUno。
ソフトウェア:Arduino 1.0.3ソフトウェアを使用して開発
Arduino 1.0以降と互換性があるはずです
日付:2014年3月25日
著者:
--------------------------------------------------------------*/
#define NUMSAMP 100 //平均化して表示する前に取得するサンプル数
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8 // reset
#define Dv1 10.915 //分圧値
#define VREF 5.0 //電圧測定@Arduino 5Vピン
#include //コアグラフィックライブラリ
#include //ハードウェア固有のライブラリ
#含める
Adafruit_ST7735 tft = Adafruit_ST7735(cs、dc、rst);
int sum = 0。 //採取したサンプルの合計
unsigned char Scount = 0; //現在のサンプル番号
AVvolts = 0.0にフロートします。 //計算平均電圧
void setup()
{//静的アイテムの表示と印刷の設定
tft.initR(INITR_BLACKTAB); // ST7735Sチップを初期化する、黒いタブ
tft.fillScreen(ST7735_BLACK); //画面をクリア
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
tft.setCursor(10,0);
tft.println( "DC電圧計DVM");
tft.println( "");
tft.println( "");
tft.print( "Voltage @ pin A0");
tft.setTextColor(ST7735_RED);
tft.setCursor(0,140);
tft.println( "注意最大電圧55vdc");
}
void loop()
{
//いくつかのアナログサンプルを取り、それらを合計する
while(Scount <NUMSAMP){
sum + = analogRead(A0); //サンプルを読んで追加する
Scount ++; //サンプル数を増やす
遅延(10)。 //次のサンプルを読む前に10ミリ秒待つ
}
AVvolts =((フロート)合計/(フロート)NUMSAMP * VREF)/ 1023。 //平均電圧を計算
//計算された平均電圧を表示
tft.setTextColor(ST7735_YELLOW、ST7735_BLACK);
tft.setTextSize(2);
tft.setCursor(45、50);
tft.println( "V1");
tft.setCursor(10、80);
tft.setTextSize(2);
tft.print(AVvolts * Dv1);
tft.println( "Vdc");
スコア= 0。
sum = 0。
}
// -----------------スケッチ終了-----------------------------
ステップ7:プログラム可能なプログラム
バイナリーを知っている人と知らない人の10種類があります。
これまで、Arduinoの仕様のパラメータの範囲内のレベルに信号を減らすことによって、アナログ入力信号(電圧)を調整するためにArduinoを組み立て、分圧器を追加する方法を学びました。それから私達は信号を読み、シリアルモニターとTFT LCDディスプレイにそれらを表示するいくつかのスケッチをまとめてアップロードしました。今すぐコードを研究してそして仕事を続けるのはあなた次第です。私たちがまとめたハードウェアで動く他のスケッチのためのコードを含めています。
/*--------------------------------------------------------------
プログラム:サンプリング付き1チャンネルDVM
説明:アナログ入力A0の値を読み取り、次の条件で電圧を計算します。
A0ピンに10.195で分圧する分圧器があります
ハードウェア:A0に分圧器を備えたArduino NANOまたはUNO。
ソフトウェア:Arduino 1.0.3 IDEを使って書かれた
日付:2014年3月25日
著者:
--------------------------------------------------------------*/
//読み取りごとに取得するアナログサンプルの数
#define NSAMP 100
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8 // reset
#include //コアグラフィックライブラリ
#include //ハードウェア固有のライブラリ
#含める
Adafruit_ST7735 tft = Adafruit_ST7735(cs、dc、rst);
int sum = 0。 //採取したサンプルの合計
unsigned char Scount = 0; //現在のサンプル番号
フロートV1 = 0.00。 //計算平均電圧
フロートVMAX = 0.00。
float VMIN = 100.00。
float val = 0.00。
フロートVREF = 5.0。
フロートDv1 = 10.935。
void setup()
{
tft.initR(INITR_BLACKTAB); // ST7735Sチップを初期化する、黒いタブ
tft.fillScreen(ST7735_BLACK); //画面をクリア
tft.setTextColor(ST7735_GREEN);
tft.setTextSize(1);
tft.setCursor(10,0);
tft.println( "DC電圧計DVM");
tft.setTextColor(ST7735_WHITE);
tft.println( "電圧@ピンA0");
tft.print( "最大値、最小値あり");
tft.setTextColor(ST7735_RED);
tft.setCursor(0,140);
tft.println( "注意最大電圧55vdc");
}
void loop()
{
//いくつかのアナログサンプルを取り、それらを合計する
while(Scount <NSAMP){
sum + = analogRead(A0); //サンプルを読み込んで追加する
val =(analogRead(A0)); // MAX / MIN用の一時ストレージ
tft.setCursor(45、110);
tft.println(val);
if(val> VMAX){//サンプルの最大値を取得
(VMAX = val)。
}
if(val <VMIN){//サンプルのMIN値を取得
(VMIN = val);
}
Scount ++; //サンプル数を増やす
delay(10); //次のサンプルを読む前に10ミリ秒待つ
}
//サンプリングが完了したら、計算した平均電圧を計算して表示します
V1 =((フロート)合計/(フロート)NSAMP * VREF * Dv1)/ 1024.0。
tft.setTextColor(ST7735_YELLOW、ST7735_BLACK);
tft.setCursor(45、40);
tft.setTextSize(2);
tft.println( "V1");
tft.setCursor(10、60);
tft.print(V1)。
tft.println( "Vdc");
tft.setCursor(20、90);
tft.setTextSize(1);
tft.setTextColor(0xff00、ST7735_BLACK);
tft.print( "VMAX");
tft.print((float)VMAX * VREF / 1023 * Dv1); //計算された最大電圧を計算して表示する
tft.println( "Vdc");
tft.setCursor(20、100);
tft.setTextColor(ST7735_GREEN、ST7735_BLACK);
tft.print( "VMIN");
tft.print((float)VMIN * VREF / 1023 * Dv1); //計算された最小電圧を計算して表示する
tft.print( "Vdc");
スコア= 0。 //サンプル数をリセット
sum = 0。 //合計をリセット
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/*--------------------------------------------------------------
プログラム:4チャンネル電圧計
説明:4チャンネルDC電圧計、電圧表示
カラーTFT LCDでは、サンプリングと平均化を使用して、小数点以下第1位まで
ハードウェア:A0〜A3に分圧器を備えたArduino NANOまたはUNO。
TFT液晶接続
ソフトウェア:Arduino 1.0.3ソフトウェアを使用して開発
日付:2014年3月10日
著者:
--------------------------------------------------------------*/
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8 // reset
#include //コアグラフィックライブラリ
#include //ハードウェア固有のライブラリ
#含める
Adafruit_ST7735 tft = Adafruit_ST7735(cs、dc、rst);
// 1チャンネルあたり、1読み取りあたりに取得するアナログサンプルの数
#define NSAMP 100 //表示するために取得するサンプル数
//分圧器のキャリブレーション値
#define Dv1 11.00
#define Dv2 11.001
#define Dv3 11.00
#define Dv4 10.985
// ADC基準電圧/校正値
#define VREF 5.00
int sum 4 = {0}; //採取したサンプルの合計
unsigned char Scount = 0; //現在のサンプル番号
float AVvolts 4 = {0.0}; //計算電圧
char cnt1 = 0。 // 'for'ループで使用
void setup()
{
tft.initR(INITR_BLACKTAB); // ST7735Sチップを初期化する、黒いタブ
tft.fillScreen(ST7735_BLACK); //画面をクリア
tft.setTextColor(ST7735_WHITE);
tft.drawRoundRect(2、20、120、110、5、ST7735_WHITE);
tft.setTextSize(1);
tft.setCursor(5,0);
tft.println( "4チャンネル電圧計");
tft.setTextColor(0XFF00);
tft.setCursor(0,140);
tft.println( "注意最大電圧55vdc");
}
void loop()
{
//いくつかのアナログサンプルを取り、それらを合計する
while(Scount <NSAMP){
//各チャンネルA0〜A3をサンプリング
(cnt1 = 0; cnt1 <4; cnt1 ++){の場合
sum cnt1 + = analogRead(A0 + cnt1);
}
Scount ++;
遅延(10)。
}
//各チャンネルの電圧を計算
(cnt1 = 0; cnt1 <4; cnt1 ++){の場合
AVvolts [cnt1] =((フロート)合計[cnt1] /(フロート)NSAMP * VREF)/ 1024.0。
}
// TFT LCCディスプレイに電圧を表示
//電圧1 - V1(ピンA0
tft.setTextColor(ST7735_YELLOW、ST7735_BLACK); // V1の色を設定
tft.setTextSize(2);
tft.setCursor(15、40);
tft.print( "V1");
tft.print(AVvolts 0 * Dv1,1);
tft.print( "V");
//電圧2 - V2(ピンA1)
tft.setTextColor(ST7735_GREEN、ST7735_BLACK); // V2の色を設定
tft.setCursor(15、60);
tft.print( "V2");
tft.print(AVvolts 1 * Dv2、1);
tft.print( "V");
//電圧3 - V3(ピンA2)
tft.setTextColor(ST7735_CYAN、ST7735_BLACK); // V3の色を設定
tft.setCursor(15、80);
tft.print( "V3");
tft.print(AVvolts 2 * Dv3、1);
tft.print( "V");
//電圧4 - V4(ピンA3)
tft.setTextColor(ST7735_WHITE、ST7735_BLACK); // V4の色を設定
tft.setCursor(15、100);
tft.print( "V4");
tft.print(AVvolts 3 * Dv4、2)。
tft.print( "V");
tft.drawRoundRect(2、20、120、110、5、ST7735_WHITE);
//カウントと合計をリセットする
スコア= 0。
(cnt1 = 0; cnt1 <4; cnt1 ++){の場合
sum cnt1 = 0。
}
}