高さ調節可能なデスクを自動的に上下させる回路を作るにはどうすればいいですか?
バックグラウンド
みなさん、こんにちは。マイクロコントローラー、MOSFETトランジスター、超音波センサーを使って、高さ調節可能なデスクの高さを制御できる小さなプロジェクトに取り組んでいます。基本的に、ユーザーが高さを入力し、デスクがその高さに自動的に調整されるようにします。
技術的な詳細
これが私が使っている机です。上/下ボタンのみがあり、「メモリ」機能はありません。
このチュートリアルを使おうとしていましたが、モーター自体に簡単にアクセスできなかったため、上下のボタンをMOSFETトランジスタに「置き換える」ことにしました。
これは私が使用しているMOSFETです。それは2-4ボルトの間のVgsしきい値電圧を持っています、そしてそれは私の5vマイクロコントローラーのために働きます。
ボタンボックスを開けるとこんな感じです。
JSTコネクタには4本のワイヤがあります。
- 赤:30V
- 黒:GND
- 緑:ダウン
- 白:上
これはアクティブハイスイッチで、緑または白を赤に接続すると、それぞれデスクが上下に移動します。回路図でスイッチ(オムロンSS-5)がどのように機能するかについては、以下の図を参照してください。
私がこれまでにしたこと
JSTコネクタを抜いてジャンパー線をメスピンに直接接続し、机を持ち上げるための次の回路を作成しました。
左側の電圧源は、マイクロコントローラのデジタル出力ピンです。ピンが高いときは机を上げることができ、ピンが低いときは机を上げるのをやめることができました。
編集(2020年8月16日):トランジスタのソースから白い線までの電流を測定したところ、少しの間約3Aに急上昇し、机が上がっている間(つまり、モーターが動作しているとき)に出力されました。 〜300mA。
MOSFETのソースが代わりに緑のワイヤーに接続されていることを除いて、私は机を下げるためにも同じことをすることができました。
私の問題は:
上げ下げの両方を行うために、別のトランジスタをそのまま配置しました。
編集(2020年8月15日):紛らわしい図について申し訳ありません。この図は、2つのデジタル出力ピンを使用しています。左側の電圧源はMCUのD2で、右側の電圧源はMCUのD3です。ピンは共通のアースを共有しているため、次の問題が発生します。
両方のトランジスタのソースが白と緑の両方のワイヤに接続されているため、これは明らかに問題を引き起こしました。つまり、1つのトランジスタがオンになるたびに、白/緑の両方のワイヤがHIGHになります。これは、両方のボタンを同時に押すのと同じで、デスクはまったく動きません。トランジスタの2つのソースの間に10kの抵抗を入れてみましたが、問題は解決しませんでした。
私の質問
- 自分がやろうとしていることを実現するために、回路をどのように編集すればよいですか?
- これはトランジスタを使うだけでも作れるものですか?または
- スイッチとしてのトランジスタの一般的な使用例に従うために、モーターを開く必要がありますか?
誰かが私の状況についてアドバイスを与えることができれば私は大いに感謝します:)
混乱があれば明確にさせていただきます。
ありがとうございました!
回答
モーターの始動中の短い3Aは、白と緑のワイヤーがモーター電流を流すことを意味します。FETはこの電流に対して適切であり、モーターがオフになったときの電圧スパイクから保護されている必要があります。
元のスイッチ図は、Hブリッジ構成を示しています。両方のスイッチがダウンしていると、モーターに電流が流れません。どちらかのスイッチが上がると、両方がモーターに電流を流し、一方は30 Vから供給し、もう一方は0 Vにシンクします。FETの提案ではプルアップのみが表示され、プルダウンは表示されないため、モーターは動作しません。
この機能を複製するには、無効化されたHブリッジドライバーまたは2つのハーフブリッジドライバーのいずれかが必要です。必要なレベルシフトなどと電子機器の知識を考えると、少なくとも30Vおよび3Aの定格出力を備えたロジックレベル入力モジュールを購入するのが最も賢明です。
また、FETの代わりに、c / oリレーのペアを使用して、スイッチが実行していることを正確に実行することも合理的です。お気に入りのオンラインeコマースサイトにアクセスして「Arduinoリレーモジュール」を検索し、2チャンネルのものを選択します。それらは5Vから駆動でき、チップと同じくらい安価で、FETのように爆発せず(ただし、接点は最終的に摩耗します)、30Vモーターに十分なDC処理能力を備えています。
設計の仮定に関する問題
- SPDTの目的を認識できませんでした。
- Vgs(th)を理解していませんでした
- モーターはおそらく最大負荷重量を使用していないため、定格電流の10倍または実際の負荷電流よりはるかに多い電流でサージします。
たとえば、モーターの定格は1Aですが、起動時に10x1 = 10Aを除いて0.3Aしか使用しません。
- スイッチを切ると、発電機として機能するモーターのアークとバックEMFがあり、ブレーキとしてスイッチがあり、追加の負荷のためにコイルが短絡された摩擦ブレーキとしてギアがあります。
- したがって、移動中にすばやく反転した場合に10Aスパイクまたは20Aスパイクを処理するために、パワーダイオードを備えた30V出力を使用してロジックレベルで動作するPOWERハーフブリッジが必要です。
FET設計の問題
2〜4Vが動作Vgsであると想定しましたが、これはしきい値にすぎず、Vgs = 5、10、または12Vで指定されることが多い> 10Aを処理するためにRdsOnに近づくには、少なくとも2.5〜3x100uAのしきい値が必要です。
「ロジックレベルFET」は、最高のパフォーマンスを得るために1V近くのVgs(th)を使用して3Vで動作します。そうしないと、高温になります。
ハイサイドドライバーの代わりに、SPDTまたはハーフブリッジパワーFETが必要です
起動時に冷却を維持するのに十分小さいRdsonを持つために、おそらく定格30Aのロジックレベルの入力と出力を使用するパワーハーフブリッジが必要です。フライバッククランプ用に各レールに逆向きにしたパワーダイオードは、両方とも10Aの定格が必要です。
- ハーフブリッジは、短絡またはシュートスルー効果を防ぐために、FwdとRevの間に小さなデッドタイムが必要です。これは正常です。しかし、あなたはそれを確実にしなければなりません。
推奨事項
モーターコイル抵抗を定義し、ロジックレベルハーフブリッジICを選択して30V / DCR +マージンを駆動します
RCダイオード遅延またはMCU遅延を備えた入力制御でデッドタイム保護があることを確認し、電源投入リセット状態がオフであることを確認します。
エンドストップ保護はどうですか?ドライバまたはMCUの不具合に障害が発生した場合は?Polyfuseを検討してください。
ヒートシンクとグリースを使用した電気絶縁絶縁体の熱抵抗計算を行います。
これは、より多くの質量、より少ない速度を除いて、車のパワーウィンドウスイッチの設計に共通ですが、おそらく車の墓地からの同じ電流(?)の回収です!またはDIYまたは購入しますか?これらは、あらゆるデザイナーの毎日の意思決定/購入決定です。
最後に、位置センサーはどうですか?直線運動からプーリー減速、ポットまで、8mm CNC以下の歯車ベルトを備えたポットを使用し、ポット電圧をリニア位置として読み取り、校正してサーボフィードバックに使用する機械的な天才でない限り、長距離移動用の位置センサーは高価になる可能性があります。次に、MCU入力スイッチが位置に入力した状態を記憶し、次に上下または1,2,3 +、-に切り替えられるようにします。しかし、スイッチをデバウンスします。他に何か足りないものはありますか?エンドストップスイッチ?CNCマシンのSTDプラクティス。
もう1つのオプションは、既存のSS-5マイクロスイッチと同じ接点定格を持つ2つのSPDTリレーを使用することです。
デスクがスイッチ、モーター、リレーだけで、極性に敏感なコンポーネントが含まれていない場合は、電源の極性を逆にするだけです。その場合、一般的な30vレールではなく、一般的な0vになります。
次に、2つのNPNトランジスタまたは2つのNタイプのMOSFETを使用して、0vを白と緑のワイヤに切り替えることができます。上下も明らかに逆になります。
既存のリレーコイルとモーターからの逆起電力からトランジスタを保護するために、いくつかのフリーホイールダイオードを追加する必要があります。