ESP32回路のノイズ対策
JUGEMテーマ:電子工作
いつも使っているのと同じ回路でマイコンが停止するという事象が
発生しておりましたので、事象の再現試験とその対策を実施しました。
■再現試験の方法。
旧式(なのか?まだまだ現役の部分もありますけど、)
の『蛍光灯』を使います。
直管40W蛍光灯+グローランプでスイッチON/OFFします。
普通にラジオでノイズ音が「ぶちぶちっぶちー」って聞こえるぐらいノイズが発生しています。
電源を入れるとチカチカーってグローが光って、その後に蛍光灯本体が光ります。
これを使えば、保護なしのESP32ぐらいは5分ぐらいで止めれます。
秋月のESP32のDevkitCだと、これぐらいでは止まらないですね。
■ノイズ発生の自動化
事象が発生するまで、スイッチを10秒ごとにON/OFFしていたのですが、
30分もやってると、さすがに飽きてきましたので、
マイコンのLチカと、リレーを組み合わせて自動化しました。
接続概要は
ESP32--リレー--蛍光灯
です。
Lチカは以下プログラムです。
ledはパイロットランプ用です。
led2をリレーに接続しています。
7秒ON、3秒OFFです。全体で10秒で繰り返しますので、
1時間で360on/offです。
エンジンでいうと6rpmですね。
■ノイズ自動化のプログラム
from machine import Pin
import utime
led = Pin(13, Pin.OUT)
led2 = Pin(12, Pin.OUT)
while True:
led.value(1)
led2.value(1)
utime.sleep(7)
led.value(0)
led2.value(0)
utime.sleep(3)
■ノイズ自動化の動作
https://youtu.be/l3bgIuqiNKA
■ノイズ自動化の回路図
■試行錯誤
電源ラインとかにノイズが乗って停止しているのかなーと思いましたので、
まずはコンデンサーをどんどん追加。
470μF、1000μF、2200μFと追加していき、
まずまずの安定感を見ていたのですが、
完全とは言えなく、ごくまれに死にます。
ノイズの対策としては、金属で周りを囲むとかも考えられるんですが、
ESPの場合はWIFIの電波送受信しなきゃなので、金属で囲むのはダメっすよねー。
ちなみに使っていた電源はスイッチサイエンスさんのUSB-UART変換のやつです。
これのVCCとGNDをブレッドボード用のケーブルで接続していました。
いかにもラインからノイズ入りそうですよね。
それでー
上にも書いた通り、ESP32のDEV-KITでは死なないですので、
それを真似することにしてみました。
なんと、死ぬ事象はぴたりと止まりました。
3時間経過=延べ1080蛍光灯電源ON/OFFでも停止せず。
という結果を記録しましたので、これで大丈夫だろうという事で、
記録に残します。
■回路図
追加したのは緑枠線の中。
3端子レギュレーターで5Vから降圧して、
その後ろの3.3Vラインに0.1μFと22μFを接続しました。
それと、効果あるかは不明ですが、ENとGND間に0.1μFを入れました。
ポイントは最短距離で結ぶ事です。
元々の回路でも3端子レギュレーターで3.3Vを生成してESP32に入れていたのですが、
(スイッチサイエンスさんのシリアルUSB変換基盤にのっているやつです)
大きく違うのは、3.3Vを生成後、最短距離で、
ESP32の電源ラインに入れている部分ですね。
ここが長い事によって、ノイズを拾ってしまっていたんですね。
前の回路ですと、20センチぐらいの細いケーブルを使っていましたので、そのせいですね。
■全体考察
やっぱ、電子回路、難しいですね。
ブレッドボード上でうまくいっても現場がノイズだらけだと、
謎の停止の事象が・・・のような事、経験してきました。
追加で実験したんですが、
3端子レギュレーターではなく、DC-DCコンバーターでも
問題なく動作しております。秋月のHT7733A仕様のやつですね。
こちらもノイズ発生装置で1080ノイズに耐えております。