出力をグランドにプルするIC、おそらくゲートではないのでしょうか?


8

リレーが4つあるボードがあります。標準のVcc、Gnd、およびIn1-In4ピンがあります。Arduinoまたは私の場合はESP32で制御したいと思います。ただし、コントローラーの出力ピンをHIGHにプルしても、LOWにしてもリレーが作動しないことに気づきました。

これは、ボードがリセットされるときに問題になります。これは、すべてのリレースイッチがオンになるまでオンになるためです。掘り下げた後、私はこれを作りました:

シンプルなインバータ

これは希望どおりに機能し、リレーには常に5Vがあり、リレーは常に切断されています。Q1のベースに信号を出力すると、出力がグランドに引き込まれ、リレーが作動します。

現在、これらのリレーは4つありますが、すぐに追加します。それで、ICでこれを解決したいと思います。特に、NOTゲートの集まりであるIC7404を見ていましたが、これで問題が解決するかどうかはわかりません。

では、入力に信号が存在する場合に出力をグランドに引き寄せるICはありますか?7404は機能しますが、何も表示されません。:)

編集:これは私が使用しているリレーモジュールです。その上で有用なデータシートを見つけることができませんでした。


1
EE.SEへようこそ。先に進み、回路図の+1を求めます。それはおそらくインバーターで解決可能ですが、私たちがあなたの出力電力要件を知る必要があると答えるために。どれだけの負荷があるか知っていますか?
Winnyの

1
リレーを使用している場合は、逆バイアスダイオードを出力から5 Vに追加することをお勧めします。グーグルフライバックダイオードまたはフリーホイーリングダイオードにより詳細情報が得られる
Colin

1
リレーのデータシートへのリンクを提供してください。彼らが必要とする電流量を知る必要があります。7404はおそらく十分な電流をシンクすることができないでしょう。
Elliot Alderson、2018

信号が存在するとはどういう意味ですか?「入力」ノードの高電圧+ 5vであり、「信号が存在しない」とは何ですか、0Vまたは不明/切断されていますか?
R.Joshi 2018

モードストラッピングピンまたはブートローダーに関係するピンを不適切に選択しない限り、通常ピンは高インピーダンス状態であるため、リセット時にリレーがアクティブになる理由は明らかではありません。
Chris Stratton

回答:


2

ピンが高インピーダンスモードである必要があるときにリレーがリセット時に作動するということは気になることであり、システムを検証して修正するために完全に理解する必要があることです。

編集:これがコード内のソフトウェアのバグであることは明らかです。起動時に不注意なドライブLOWを解決するには、ピンを出力に設定する前にピンの出力データレジスタビットをHIGH 設定します。

つまり、元の質問に対する文字通りの答えは、いくつかのチップを含むチップになりますopen collector inverters

74xx05は一例です。

74xx06も同様ですが、電源電圧を超えた場合でも許容可能な電圧を出力に適用できます。たとえば、デバイスを3.3vで操作して、出力を5vからプルダウンできます。

しかし、これらはあなたの実際の問題の解決策ではありません。


あなたは正しかった、私は私のスタートアップ手順をチェックしなければならなかった。通常、すべてのI / Oパラメーターを設定し、すべてを初期化してから、ピンのデフォルト状態を処理します。このピンを出力ピンとして設定すると、自動的にLOW状態になります。pinMode()と最初のdigitalWrite()の間に十分な時間があり、ピンをHIGH状態に設定してリレーが作動しないように思われました。したがって、私の解決策はpinMode()を呼び出し、すぐにピンをHIGHに設定することです。
BigWhale 2018

出力にするではなく、出力するに高設定します。
Chris Stratton

リレーコイルのドライバーはありますか?入力にプルアップ抵抗を追加してください。
CrossRoads 2018

1
@CrossRoadsプルアップ抵抗は、問題を解決することも、わずかに改善することもしません。問題は、アスカーのソフトウェアが間違った順序で処理を実行し、ピンをハイに駆動する前にピンをローに駆動することです。誤ってLowにドライブすると、プルアップ抵抗が克服されます。さらに、これらはおそらくフォトカプラLEDのカソードです-プルアップは実際にはそこで何もしません。必要なのは、誤ってグラウンドへのパスを完了することではありません。
Chris Stratton

プルアップは、デバイスがリセット/ブートプロセスを実行し、ピンがフロートしている間、ピンをハイに保ちます。
CrossRoads 2018

0

最も簡単な解決策は、リレーのNOピンとNCピンの接続を入れ替えることです。

次のオプションは、そのピンのプログラミングロジックを反転することです。いくつかの定数を追加できます

#define RELAY_ON LOW
#define RELAY_OFF HIGH

リセット中にリレーを特定の状態にバイアスするには(出力ピンが高インピーダンスのとき)、必要に応じてプルアップまたはプルダウン抵抗を追加できます。IOピンは、抵抗を介してリークされた電流を簡単に過大にし、リレーを適切に切り替えます。

これらの2つの手法を使用すると、リレーのデフォルト状態を非給電状態にすることができます。ほとんどの場合それが使用されているためか、フェイルセーフオプションのためです。


ポイントを逃したと思います。OPは、リセット時にリレーがアクティブになることを望んでいません。
Elliot Alderson、2018

0

こちらがリレーの「ユーザーマニュアル」です。最初にすべてのデータシートを用意せずにシステムを設計してはいけません。

そこに提供されている回路図から、コントローラーを直接 InXピンに接続できることがはっきりとわかります。つまり、考案した回路図は必要ありません。

オプトカプラーの入力はオープンコレクターモードで動作できるため、リレーをNCに維持する場合は、uCの対応するピンを入力/ High-Zとして維持することをお勧めします。

私はあなたのコントローラーに慣れていないので、ここにあなたを助けるためのいくつかの疑似コードがあります:

リレーを制御する各ピンの初期化:

Set direction to input
Set level to "0" (do NOT change direction to output)

NOへのコマンドリレー:

Set direction to output

NCへのコマンドリレー:

Set direction to input

通常、uCはそのピンをすでに入力としてウェイクアップするため、初期化の最初の行は冗長ですが、システムが既知の状態であることを確認するためにそれを実行する方が常に安全です。一部のボイラープレートコードの一部として、すべてのピンから特定の値への一般的な初期化を行うコードがないことを確認してください。初心者はこの間違いをすることがわかっています。

PS 実際にいくつかの反転電流ドライバーが必要なるときは、ULN2003Aなどを使用してください


3
「ULN」は一部ではありません。実際の部品番号を表示し、リンクで非表示にしないでください
Chris Stratton '20

これは私が今まで使用したシリーズの中で唯一の部分なので、私にとっては常に「単なるULN」でした。
Equilibrius
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.