Arduino Unoで作る低コスト落雷検知器
必要な部品と材料
| 部品 | 数量 |
|---|---|
| ブレッドボード(汎用) | 1 |
| 抵抗 10kΩ | 2 |
| 抵抗 3.3MΩ | 1 |
| ジャンパーワイヤ(汎用) | 1 |
| Arduino UNO | 1 |
このプロジェクトについて
このチュートリアルでは、Arduino Uno、数本の抵抗、ジャンパーワイヤだけで落雷検知器を作ります。市販の落雷検知器は高価でホビーユーザーには手が出ませんが、だからといって落雷検知とその物理を楽しめないわけではありません。驚くほどシンプルな回路で、半径10〜20kmの落雷を検知できます。目的は、Arduinoで落雷を検知し、意味のある結果を得るためのシンプルな回路を構築することです。
背景
落雷が発生すると、膨大なエネルギーが様々な形で放出されます。最も顕著なのは光と音ですが、音は落雷周辺の粒子が急激に加熱されることによる副産物です。それだけでなく、落雷はVLF(超長波:3〜30kHz)およびLF(長波:30〜300kHz)帯域に大量の電磁波を放出します。これらは光やWi-Fi、電子レンジの電波と同じ電磁波ですが、周波数が低いのが特徴です(Wi-Fiは約2.4GHz、つまり秒間24億回の振動)。VLF/LFはより低い周波数で、Arduinoでは約7kHz付近を捉えることができます。この周波数帯を落雷検知に使う利点は、落雷のような大きなバースト状の放出が他にほとんどなく、電磁波であるため光速で伝わり、落雷のほぼリアルタイム(数マイクロ秒後)に検知できる点です。
Arduinoにはアンテナ(のようなもの)として、6〜8インチ程度のワイヤを1本接続し、7〜9kHz付近の電磁スペクトルの変動を拾います。この変動によりワイヤに微小な正負の電圧が誘導され、Arduinoのアナログピンで読み取れます。
前提条件
- 10kΩ抵抗 ×2
- 3.3MΩ抵抗 ×1
- ジャンパーワイヤ ×4
- Arduino(Unoを使用だが、16MHzで動作するものなら何でも可)
- ブレッドボード(配線を簡単にするため)
ご存知の通り、Arduinoのピンは0V〜5Vの電圧しか読み取れません。これを超える電圧は読み取れず、0V未満の電圧はピンを破損させる恐れがあります。落雷によるワイヤの誘導電圧は正負両方に振れるため、そのままでは問題があります。これを解決するため、分圧回路でピン電圧を5V範囲の中央である2.5Vに固定し、そこを基準として変動を読み取れるようにします。

回路はシンプルです。5V(赤線)からGND(黒線)へ2本の10kΩ抵抗を直列につなぎ(分圧回路)、その接点と3.3MΩ抵抗を直列に接続します。さらに3.3MΩ抵抗と直列にワイヤをピンA4(青線)に接続すると、A4にはちょうど2.5Vがかかります。最後にアンテナ用ワイヤ(緑線、6〜8インチ)を片側のみ接続します(上図参照)。
スケッチ
ここが最も説明が難しい部分です。前述の通り、落雷の周波数は約7kHzで、まともな波形を得るにはその4倍、つまり28,000サンプル/秒のサンプリングレートが必要です。しかし、Arduinoのアナログピンは標準で9,600サンプル/秒しか出せず、これでは2kHz程度までしか捉えられません。そこでATmegaチップのADCプリスケーラ(分周器)を設定してADCを高速化します。プリスケーラを16分周に設定すると、理論上77kHzのサンプリングレートが得られます。実際には各種演算のオーバーヘッドで約46kHzまで落ちますが、このプロジェクトには十分です。
スケッチでは512バイトの配列を用意し、ピンA4の値を常時読み取って配列に格納し続けます。落雷を検知すると配列全体をシリアルポートに出力します。これはArduino IDEのシリアルプロッタでグラフ表示したり、別のArduinoやESP8266に送ってオンライン公開したりできます。まずはArduino IDEのシリアルモニタ/プロッタで様子を見るのがよいでしょう。
実測結果


ソースコードはGitHubで公開しています:https://github.com/klauscam/Arduino-Lightning-Detector
ご質問や不明点があればコメントでお知らせください。
タグ: Arduino, 電磁界, EMF, 落雷, センサ, UNO, VLF, 天気
スケッチ
GitHub
https://github.com/klauscam/Arduino-Lightning-Detector
製造プロセス
- 煙探知機:命を救う技術、歴史、現代の革新
- Arduino Nano 33 IoT製 フライトシミュレーター2020用コックピットパネル - LCD&CDI表示
- Microsoft Flight Simulator 2020用Arduinoスイッチ&LEDパネル
- Arduinoオーディオ周波数検出器 – 高感度サウンドモジュールで最大音量ピークの周波数を測定
- 学校向けスマート体温監視システム: 正確、リアルタイム、安全
- Arduino用8ビットI/Oポートライブラリ:デジタル制御を拡張
- Arduino 64キー プロトタイピング キーボードマトリックス: シフトレジスタで自作キーボード
- Arduino Nano用 高性能2.8インチTFTシールド - 320×240 SPIディスプレイ
- スマート水漏れ検知・自動遮断バルブ制御システム(Arduino+MQTT対応)
- Arduino用絶縁アナログ入力回路の設計:LM331 V-F変換+フォトカプラでノイズ耐性を確保
- Arduino向けスマート屋内ナビゲーションロボットキット