ACラインでの火花によるArduinoのリセット/ハング


15

これは、私が最近取り組んでいるプロジェクトのPCBデザインです(私の最初のPCBデザイン)。 PCBレイアウト

アイデアは、リレーなしでAC機器(ファン、電球など)を制御することです。このようなアプリケーションには、リレーよりも優れたトライアックを使用しています。ACラインから完全に分離するために、光アイソレータを使用しています。ラップトップに接続されたUSBケーブル(充電器を抜いた状態)とACアダプター(12V)を使用してarduinoを実行してみました。

最初は、回路は正常に動作するように見えました。UARTを使用して、コードをコントローラーにダンプし、電球を制御(オン/オフおよび暗転)することができました。コマンドをUART経由で送信しました。ただし、ACラインに火花が出たとき(ファンのプラグイン/ファンアウト時)には、マイクロコントローラーは満足そうに見えません。リセットされる場合もありますが(これは写真の大部分)、ハングする場合もあり、UARTを介してコマンドを送信できません。焼き付けられたコードも影響を受けるかどうかはわかりませんが、コードを再アップロードしなければならない場合がありました。他の部屋のファンのオン/オフを切り替えても効果はありません。

考えられる問題:

1)PCBにグランドプレーンがない。

2)火花による何らかのEMI。

また、ファンと同じ方法で温水器(800ワットの抵抗負荷)を接続しようとしましたが、何も起こりませんでした。したがって、問題を引き起こしているのは誘導負荷だと思います。

この問題に対する建設的な解決策は非常に評価されます。

ありがとう。


2
はい、それは誘導負荷です。誘導スパイクを抑制するには、スナバおよび/またはMOV(または双方向TVSダイオード)が必要です。通常、負荷と並列に配置されます。PCBレイアウトを改善すると、影響を最小限に抑えることができます。ボードはリレーを使用していますが、同様の質問については、electronics.stackexchange.com / q / 101815/25328を参照してください。
ツタンカーメン

トライアックを使用しているので、トライアックは電流がほぼゼロでオフになるため、ファンを手動でプラグ/アンプラグすると、誘導性スパイクの問題はさらに悪化する可能性があります。潜在的な問題は、誘導負荷に接続したときにトライアックがオフにならないことです。AC負荷用に設計されたトライアック回路のデータシートとアプリノートをご覧になることをお勧めします。
ツタンカーメン

これは役立つかもしれませんが、arduinoソフトウェアにウォッチドッグタイマーを追加してみてください。

@Tut-ご提案ありがとうございます。あなたが投稿したリンクを読みます。私は次のPCBでそれらを実装しようとしています。生産に進む前にボードレイアウトを投稿して、フィードバックを提供してエラー/修正を指摘できるようにします。
ウィスキージャック

回答:


11

回路図は表示しませんでしたが、明らかなバイパスキャップやローカルのオンボード電源リザーバーキャップは表示されません。それと適切な接地の欠如が問題を引き起こす可能性が非常に高いです。

他の人が言ったように、ACセクションとDCセクションの間に適切な絶縁距離を残し、少なくともある程度はグランドプレーンを作るようにしてください。

コンポーネントが少なく、ピンピッチが大きい大きなボードがあるため、最上層のほとんどのトレースのルーティングはかなり簡単です。一般に、回路を単一のプレーンでルーティングできないため、場合によっては最下層に移動する必要があります。ただし、最下層のトレースを短くすることはできます。プレーンでは接続できない最上層の2つのトラックを接続するのに十分な長さの「ジャンパー」と見なしてください。グランドプレーンの尺度は、その中に含まれる島の数ではなく、島の最長寸法です。ジャンパーを短くし、束にしないでください。

ただし、すべてのICへのすべての給電にはバイパスキャップを絶対に付ける必要があります。これらは、ループ全体を可能な限り小さくして、ICに物理的に近い小さなセラミックキャップにする必要があります。1 µF 0805はほぼ正しいです。それらは同等のスルーホールキャップよりも安価で優れた性能を発揮するだけでなく、はんだ付けも容易になります。

DC電源は他の場所から来ているため、そのインピーダンスが疑われるため、電源がボードに入る場所の両端に適切なサイズの電解キャップを取り付けてください。数100 µFでそれを行う必要があります。


オーリン、ありがとう。他の同様の質問に関するあなたの投稿を読んでいて、たくさん学ぶことができました。グランドプレーンを離れることが最大の間違いだったようです。両方の表面にグランドプレーンを使用してPCBを再設計し、他の人が指摘したようにコンポーネントをよりきれいに配置しようとします。繰り返しますが、私は本当にあなたの助けに感謝します。
ウィスキージャック

1
@ user3455594特にArduinoでは、これらのバイパスコンデンサを省かないでください。
ツタンカーメン

@Olin-デバイスがオンまたはオフになるたびに、電圧スパイクからトライアックを保護するためにどのような対策を提案しますか?読んだ後、スナバが着信スパイクを抑制するために最も一般的に使用されることがわかりました。ただし、スナバの主な用途は、トライアック保護ではなく、トライアックの誤ったトリガーを防止することに関連していました。MOVは別のオプションです。これについてのあなたの意見は何ですか。私のユースケースへの参照については、このリンクを参照してください
ウィスキージャック

20

電圧絶縁を尊重する必要があります。抵抗器R16、R13、R10、R2、R31、およびR4を配置(および配線)する方法は、光アイソレータによって作成されるアイソレーションバリアを侵害します。以下に、既存のレイアウトに分離パスをマークしましたが、これはかなり貧弱です:

ここに画像の説明を入力してください

できるだけ広い単一のアイソレーションゾーン(光アイソレータの幅)を用意します。回線側に回線回線を、絶縁側に隔離回線を保持します。提案については、下の画像を参照してください。

ここに画像の説明を入力してください


これは有用であり、役立つかもしれませんが、実際にはこれが問題の完全な原因であり、この解決策が完全に解決すると信じていますか?
アダムデイビス

1
@AdamDavisいいえ、これが問題の唯一の原因であることを保証することはできません。実際には、オリンとアンディのアドバイスの両方がなければならない確かに留意すること。ただし、これは重要な安全上の考慮事項であり、問​​題を悪化させるアセンブリが不完全であることがわかります。
-W5VO

@ W5VO- 別のレイアウトを作成しました。一度それを見て、あなたの貴重な提案を提供してください。前もって感謝します。
ウィスキージャック

6

グランドプレーン、グランドプレーン、グランドプレーン、およびごくわずかな言い訳。この回路基板の多くをどのように行うことができたか見てみましょう:-

ここに画像の説明を入力してください

脳の働きがほとんどない状態で、赤色になる可能性のある青色の軌跡を(明るい赤色で)約5分間費やしました。

私はそれを廃棄して、やり直します。


4
@kolosy私たちは皆どこかから始めて、最初に始めたときに悪いレイアウトをしました。これは、OPが無料で提供する最高のアドバイスです。もしあなたが私が不当に厳しいと思ったら、モデレーターにこの答えを報告してください
アンディ別名別名

1
ありがとう、アンディ。私はすでに2番目の設計にグラウンドプレーンを配置しています。これが唯一の問題だと思いますか?PS-私はあなたの返事は決して厳しいとは思わなかった。私はあなたの助けに感謝します。
ウィスキージャック

4
@kolosy正直なところ、答えはin辱的ではないと思います(そして、これはAndyの評決に同意するためかもしれません)。
-W5VO

1
@kolosy:Andyはそのように言っており、OPは明確な言葉で聞く必要があります。そして、はい、私も彼の評決に同意します。
オリンラスロップ

3
@アンディヤカはそれがそうであるように言っているかもしれませんが、私は「言い訳なし」と「ほとんど脳の働き」を持ち込むことのポイントがわかりません。あなたにとって明白で頭の痛いのは、始めたばかりの人々ではありません。
kolosy

2

私の経験では、セットラインとリセットライン、フリップフロップ、およびその他の回路は、「電気ノイズ」の影響を非常に受けやすくなっています。予測できない回路動作を回避するための最も実用的な方法は、適切なコンデンサを使用してチップの電源ラインを切り離すことです。さらに、クロック信号で入力ラインをゲーティング/有効化すると、「トランジェント」が回路に影響を与える可能性が低くなります。


最後の行がわかりませんでした。詳しく説明してもらえますか?答えてくれてありがとう。
ウィスキージャック

1

DTMFベースの負荷制御プロジェクトで作業していたときに、AC負荷で同じ問題が見つかりました。AC負荷がなければ、8051マイクロコントローラー回路は正常に動作します。AC負荷に電源を入れると、リレー回路を介してAC負荷をオン/オフに切り替えたときに、回路全体がさまざまな方法で動作します。後で、8051ボードのグラウンドポアが良くないことがわかりました。最後に、古い8051マイクロコントローラーボードを、良好なグランド注入を備えた新しい8051マイクロコントローラーボードに交換します。今ではうまく動作します。そのため、PCBには良好なグラウンドポアが必要だと考えました。


それがまさに問題でした。まあ、私はその時点で作業を始めたばかりで、良いPCBレイアウト、グラウンドポア、アイソレーションなどについては何も知りませんでした。このバグは長い間修正されましたが、回答してくれてありがとう。同様の問題に苦しんでいる人々にとって良い参考になることを願っています。(+1)。
ウィスキージャック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.