自動レンジ切替対応 静電容量メーター (10pF〜10µF) - Arduino Nano で簡単自作
必要な部品
| 部品名 | 数量 |
|---|---|
| Arduino Nano R3 | 1 |
| 抵抗 10kΩ | 1 |
| 抵抗 1kΩ | 1 |
| 抵抗 1MΩ | 1 |
| 英数字 LCD 16x2 | 1 |
| 単回転ポテンショメータ 10kΩ (LCD コントラスト用) | 1 |
必要な工具
- はんだごて
使用ソフトウェア
- Arduino IDE
プロジェクト概要
一般的な安価なデジタルマルチメーター (DMM) では静電容量を測れません。高価な上位機種や専用モジュールを買う代わりに、Arduino でオートレンジ機能付き静電容量メーターを自作します。測定範囲は 10pF 〜 10,000µF (10mF)。
測定原理
既知の抵抗 (R) と未知のコンデンサ (C) で RC 回路を構成し、コンデンサ電圧が満充電電圧の一定割合 (時定数 τ = R×C) に達するまでの時間を測定。R が既知なので C を算出。充電用抵抗を容量に応じて切り替え (1kΩ/10kΩ/1MΩ 等)、オートレンジを実現。
動作フロー
- 起動時ゼロ校正: 電源投入時に測定端子をオープンにし、寄生容量をオフセットとして記憶
- 測定開始: 対象コンデンサを接続 (事前に放電必須)
- 内部でレンジ判定: まず nF レンジ (高抵抗) で充電時間測定。時間が長すぎれば µF レンジ (低抵抗) に切り替え再測定
- 結果表示: LCD に「XXX nF」または「XXX µF」で表示
精度と注意点
- 精度: 数% (使用抵抗の許容差と電源電圧安定度に依存)
- 測定前には必ずコンデンサを放電 (抵抗やショートで)
- 電源投入時は測定端子をオープンに (ゼロ校正のため)

ソースコード
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7
void setup() {
lcd.begin(16, 2);
pinMode(A0, INPUT);
}
unsigned long time0, time1, time2;
float c, null0;
byte kn, mk, i;
void loop() {
lcd.setCursor(15, 0);
lcd.print("*");
if (mk == 0) { // nF レンジ (高抵抗側充電)
pinMode(8, OUTPUT);
pinMode(7, INPUT);
digitalWrite(8, HIGH);
}
if (mk == 1) { // µF レンジ (低抵抗側充電)
pinMode(7, OUTPUT);
pinMode(8, INPUT);
digitalWrite(7, HIGH);
}
time0 = micros();
while (analogRead(A0) < 644) { // 約 3.14V (5V の 63.2% ≈ 1τ)
time2 = micros() - time0;
if (time2 >= 1000000 && mk == 0) { // 1秒超なら µF レンジへ
mk = 1;
time0 = 100000000;
break;
}
}
time1 = micros() - time0;
// 放電
while (analogRead(A0) > 0) {
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
if (mk == 1 && time1 < 1000) mk = 0; // 短ければ nF レンジに戻す
lcd.setCursor(1, 0);
c = time1;
c = c / 1000 - null0; // µs→ms 変換 & ゼロ校正
c = abs(c);
if (time1 >= 10000000) {
lcd.print(" TEST uF ");
} else {
lcd.print(c);
if (mk == 0) lcd.print(" nF ");
if (mk == 1) lcd.print(" uF ");
}
if (i == 0) { i++; null0 = c + 0.02; } // 初回のみゼロ校正値保存
delay(100);
}
回路図

シンプルな構成: Arduino ピン 7,8 で充電抵抗を切り替え、A0 で電圧監視。LCD は 4bit モード接続。
製造プロセス
- スマート渇きアラート植物アラーム – 最適な水やりタイミングを知らせるDIYセンサー
- Arduino Nanoで20kHzオシロスコープを自作:Nokia 5110 LCD搭載・簡易DIYガイド
- DIY ADXL335地震検知器 - 低消費電力3軸加速度センサープロジェクト
- イタリア語ワードクロック自作:Arduino Nano、NeoPixel、LCD、RTCで時刻を文字で表示
- Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
- Arduino MKR Fox 1200で作る信頼性の高いSigfox kWhメーター
- Arduino Nanoで作る高周波対応周波数カウンター – 6.5MHzまで測定可能
- Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視
- 非接触ジェスチャー錠: APDS-9960とArduinoでセキュアアクセス
- Arduino用絶縁アナログ入力回路の設計:LM331 V-F変換+フォトカプラでノイズ耐性を確保
- Arduino UNOで作る精密反応速度テスター