Arduinoとスマートフォンを使用したDIY電圧計
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 |
このプロジェクトについて
デモンストレーション
Arduinoを初めて使用する場合は、初心者向けのArduinoチュートリアルを開始できます。
仕組み
Arduinoアナログ入力ピンを使用して電圧を測定できます。ただし、測定可能な最大電圧は5Vです。
測定可能な電圧を上げるには、分圧器を使用する必要があります
理論
<図>
V_measure =(R1 + R2)/ R2 * V_in
比率 = (R1 + R2)/ R2
=> V_measure =比率* V_in
R1 =10 * R2を選択すると、次のようになります。
V_measure =11 * V_in
許容V_inの最大値は5Vであるため=>測定可能な電圧の最大値は 55V
Arduinoに損傷を与える可能性のある、Arduinoのピンを流れる電流を制限するには、できるだけ大きな抵抗値を選択する必要があります。
R1 =1 Mohm、R2 =100Kohm を選択します
実際
あり 実際にはいくつかの問題があります
- R1とR2の値にエラーがあります。エラーにより、 V_measure のエラーが発生します
- Arduinoの電源が不安定な場合があります。アナログ入力のV_REFが不安定になります。したがって、 V_in。の計算でエラーが発生します。 => V_measure の計算でエラーが発生します
これらの問題は、キャリブレーション部分で解決されます
キャリブレーション
1。 の実際の値を測定します (R1 + R2)/ R2
比率を取得するには、これを1回だけ実行する必要があります
以下の画像としての配線:
<図>
ratio =(R1 + R2)/ R2 =V_measure / V_in =A1_read_value / A0_read_value
ratio =A1_read_value / A0_read_value
このキャリブレーションのコード=>コード部分のResisterCalibration.inoを参照
2。電源の不安定性
電源が不安定になると、アナログピンの電圧リファレンスが不安定になります。電圧計算で間違った測定値が発生します。
これを解決するには、電圧リファレンスを頻繁に測定する必要があります。
電圧リファレンスを測定する方法は?
3.3VをピンA1に接続します
<図>
電圧リファレンスは、A1の値に基づいて間接的に測定されます。
V_reference =1023 * 3.3 / A1_value
V_measureの計算方法:
V_in =mapFloat(A0_value、0、1023、0、V_reference); V_measure =ratio * V_in;
主な配線:
<図>
方法
- 「抵抗校正配線」回路としての配線
- ResistorCalibration.inoをアップロード
- シリアルプロッタを開く
- 比率の値をコピーします
- Voltmeter.inoの5行目でこの値を置き換えます
- 「メイン配線」としての再配線
- Voltmeter.inoをアップロード
- Webユーザーインターフェースをアップロードする( voltmeter.php および voltmeter_body.jpg )PHPoCシールドへ
- Webページhttp://phpoc_shield_ip_address/voltmeter.phpにアクセスして、電圧を確認します。
スマートフォンの電圧は次のように表示できます:
<図>
配線のヒント:
<図>


初心者のための最高のArduinoスターターキット
初心者向けの最高のArduinoキットをご覧ください
コード
- ResistorCalibration.ino
- Voltmeter.ino
- voltmeter.php
ResistorCalibration.ino Arduino
-校正部分で説明されている配線-このコードを1回実行します
-シリアルプロッタを開く
-比率の値をコピーします
-Voltmeter.ino
double ratio; int analogReadAverage(int pin、int read_time){unsigned long read_value =0;の5行目でこの値を置き換えます。 //アナログを値read_time回で読み取ります:for(int i =0; iVoltmeter.ino Arduino
これがメインコードです。このコードをアップロードする前に、次のことを行う必要があります。
--ResistorCalibration.inoをアップロードします
-シリアルモニターを開く
-比率の値をコピーし、このコードの5行目の値を置き換えますdouble V_measure; double V_in; double V_reference; double ratio =11.59; double mapFloat(double x、double in_min、double in_max、double out_min、double out_max){return(x --in_min)*(out_max --out_min)/(in_max --in_min)+ out_min;} int analogReadAverage(int pin、int read_time){unsigned long read_value =0; for(int i =0; ivoltmeter.php PHP
このファイルはWebユーザーインターフェイスです。背景画像と一緒にPHPoCシールドにアップロードする必要がありますvoltmeter_body.jpg<!DOCTYPE html>PHPoC Shield --VOLTMETER
回路図
PHPoCシールドにアップロードする必要があります 
製造プロセス
- Arduino Nano RP2040を使用したDIYPhotoshop編集コンソール
- PythonでArduinoとRFIDを使用した出席システム
- Arduino、1Sheeld、Androidを使用したユニバーサルリモコン
- Arduinoを使用したDIY赤外線ハートビートセンサー
- Arduinoを使用した周波数とデューティサイクルの測定
- ArduinoとNokia5110ディスプレイを備えたDIY電圧計
- arduinoを使用したソナーと処理IDEでの表示
- MobBob:Androidスマートフォンで制御されるDIY Arduino Robot
- BoltとArduinoを使用したLEDの明るさの制御
- Arduinoを使用したシンプルでスマートなロボットアーム
- ArduinoとRDA8057Mを使用したFMラジオ