デジタルArduinoピンで12 V入力を使用するにはどうすればよいですか?


38

Arduino Uno microcrontrollerを使用して12 Vシステム用のコントローラーを作成しています。出力では、リレーシールドを使用して12 Vコンポーネントを切り替えています。システムの一部の12 Vコンポーネントをオンにする12 Vトグルスイッチがあり、この同じスイッチのトリガー信号を使用してArduinoデジタル入力に送信したい。Arduinoは最大5 Vしか処理できないことを知っています。スイッチの12 Vを入力用に5 Vに下げる最良の方法は何でしょうか?

編集:システムは車で使用するためのものです。コンポーネントを爆破しないように、車のバッテリーのアンペア数を何らかの形で下げる必要がありますか?


3
車のアンペア数は関係ありません-コンポーネントは必要なだけの電流を使用します。カーバッテリーは、スターターモーターに必要な数百アンペアを供給することができます。これは、常に数百のアンプが流れることを意味するものではなく、物を損傷する可能性があります。:)
KyranF

回答:


44

良いニュースです!これは安くなります!:-)

単純な抵抗分割器により、Arduinoが消化できる12 Vを5 Vに下げます。出力電圧は次のように計算できます。

VOUT=R2R1+R2VIN

10kΩの範囲の抵抗値が適切な選択です。R2が10kΩの場合、R1は14kΩでなければなりません。現在、14kΩは標準値ではありませんが、15kΩは標準値です。入力電圧は5 Vではなく4.8 Vになりますが、Arduinoはそれを依然として高レベルと見なします。また、12 Vが少し高すぎる場合に備えて、少し余裕があります。18kΩでも十分に高い4.3 Vが得られますが、12 Vが少し低すぎると考え始める必要があります。電圧はまだ高いと見なされますか?私は15kΩに固執します。

編集する
あなたは自動車環境について言及し、それからあなたはいくらかの追加の保護を必要とします。自動車の12 Vは決して12 Vになることはありませんが、ほとんどの場合、ピークは公称12 Vを数ボルト上回っています(実際には公称はセルあたり2.15 Vで12.9 Vに似ています)。5Vツェナーを配置できます。ダイオードをR2と並列に接続し、これによりツェナーの5 Vよりも高い電圧を遮断する必要があります。しかし、ツェナー電圧は電流によって変化し、低入力電流では抵抗が与えるため、低電圧では遮断されます。より良い解決策は、Arduinoの入力と5 V電源の間にショットキーダイオードを配置することです。その後、約5.2 Vを超える入力電圧はショットキーダイオードを導通させ、入力電圧は5.2 Vに制限されます。これにはショットキーダイオードが本当に必要です。一般的なPNダイオードには0があります。

より良い
マイケルのオプトカプラーは、もう少し高価ですが、良い選択肢です。フォトカプラを使用して入力を出力から分離することがよくありますが、ここで必要なように入力を保護することもできます。

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

仕組み:入力電流は内部赤外線LEDを点灯させ、フォトトランジスタに出力電流を発生させます。入力電流と出力電流の比率は、電流伝達率の場合、CTRと呼ばれます。CNY17はあなた4 mA出力10 mA入力を必要意味し、40%の最小CTRを有します。10 mA入力に進みましょう。その場合、R1は(12 V-1.5 V)/ 10 mA = 1kΩになります。出力抵抗は4 mAで5 Vの降下を引き起こす必要があるため、5 V / 4 mA = 1250Ωになります。値を少し高くすると、電圧が5 V以上低下することはありません。4.7kΩは、電流を約1 mAに制限します。

VccはArduinoの5 V電源で、VoutはArduinoの入力に送られます。入力は反転されることに注意してください。12Vが存在する場合は低く、存在しない場合は高くなります。必要ない場合は、フォトカプラの出力とプルアップ抵抗の位置を交換できます。

編集2
フォトカプラソリューションは、過電圧の問題をどのように解決しますか?抵抗分割器はレシオメトリックです。出力電圧は入力の固定比率です。12 V入力で5 V出力を計算した場合、24 V入力では10 V出力になります。OKではないので、保護ダイオードです。

オプトカプラー回路では、Arduinoの入力ピンに接続する右側に、5 Vを超える電圧がまったくないことがわかります。フォトカプラがオンの場合、トランジスタに電流が流れます。上記の例では4 mAを使用しました。オームの法則により、1.2kΩで4.8 Vの電圧降下が発生します(電流と抵抗の積=電圧)。すると、出力電圧は5 V(Vcc)-抵抗器での4.8 V = 0.2 Vになり、これは低レベルです。電流が低くなると、電圧降下も小さくなり、出力電圧が上昇します。たとえば、1 mAの電流は1.2 Vの降下を引き起こし、出力は5 V-1.2 V = 3.8 Vになります。最小電流はゼロです。そうすると、抵抗の両端に電圧がなく、出力は5 Vになります。それが最大値です。

入力電圧が高くなりすぎるとどうなりますか?誤って12 Vではなく24 Vバッテリーを接続すると、LED電流が2倍になり、10 mA〜20 mAになります。40%CTRにより、計算された4 mAの代わりに8 mAの出力電流が発生します。1.2kΩの抵抗を介した8 mAの降下は9.6 Vです。しかし、5 Vの電源からはマイナスになり、それは不可能です。ここでは0 Vより低くすることはできません。そのため、オプトカプラーは8 mAを非常に多く消費しますが、抵抗はそれを制限します。それを通る最大電流は、5 V全体がそれを横切るときです。出力は実際には0 Vになり、電流は5 V / 1.2kΩ= 4.2 mAになります。したがって、出力電流を接続する電源がそれより高くなることはなく、電圧は0 V〜5 Vの範囲に留まります。それ以上の保護は必要ありません。

あなたが過電圧を期待する場合は、フォトカプラのLEDは、現在増加したが、20ミリアンペアは、ほとんどのフォトカプラのために問題になることはありません(彼らは多くの場合、50ミリアンペアの最大定格している)、しかも、それがためだ扱うことができるかどうかを確認する必要があります、二重に入力電圧。おそらくIRLは発生しません。


このシステムは車で使用するためのものです。コンポーネントを爆破しないように、車のバッテリーのアンペア数を何らかの形で下げる必要がありますか?私はこれに新しいです。おかげで
DW

@DWうーん、車!:-(。私は私の答えを更新します。
stevenvh

@DW-いいえ、カーバッテリーの容量は問題ではありません。電流は、電圧(12 V)と抵抗(合計25kΩ)によって決まります。オームの法則によれば、電流は12 V / 25 kohm = 0.5 mAになります。バッテリーが40 Ahタイプか400 Ahタイプかは関係ありません。抵抗器はそれ以上を許可しません。
stevenvh

それは素晴らしいことです。ご協力いただきありがとうございます。ただ興味がありますが、このようなものは動作しますか?robotshop.com/ca/productinfo.aspx?pc=RB-Spa-750&lang=en-US
DW

2
@stevenvhスティーブありがとう。エレクトロニクスに自信がついたら、エレクトロニクスに慣れていない人に好意的に戻ることを楽しみにしています。おかげで
DW

15

12Vスイッチ信号を分離する良い方法は、光カプラーを通過させることです。回路は次のように構成されます。

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

図のViは、スイッチ(S1)によって切り替えられる回路の12Vを表しています。R1を選択して、光カプラーのD1部分を流れる電流を、選択したコンポーネントの定格内のレベルに制限します。

光カプラーは、世界で最も高速なコンポーネント、特に最も安価なコンポーネントではありませんが、人間が制御するスイッチのような遅い動作の場合、カプラーの速度はほとんど問題になりません。


15

次のように、ダイオードと抵抗を使用することもできます。

回路図

この回路のシミュレーションCircuitLabを使用して作成された回路

私は抵抗器をかなり硬くします。そうしないと、この回路から多くの電力を消費します。(分圧器と比較して)この回路の利点は、元の電圧が12V、14V、または15Vかどうかを気にしないことです。入力電圧。


これは非常に賢い方法で、電圧非依存性の場合は+1です。
フロリアンカステラーヌ

5
ピンの過電圧の絶対最大定格に注意してください。たとえば、ATmega32u4データシート:グラウンド(8)に対するピンの電圧:-0.5V〜VCC + 0.5V。通常のダイオードを使用する場合、170kΩ抵抗よりも小さい抵抗を使用すると、電圧はVCC + 0.5Vを超えます。これにはショットキーダイオードが最も安全だと思います。
サイバーポンク

13

電圧を独立させるには、次のように抵抗を使用して電流を調整し、ツェナーを使用して電圧を調整します。

回路図

この回路のシミュレーションCircuitLabを使用して作成された回路

30kの抵抗では、これは4.99Vを出力し、約234uA @ 12Vinしか使用しません。
この場合:
R1は234uA x(12V-4.99V)= 1.64mW
を消費していますD1は234uA x 4.99V = 1.17mWを消費しています

総消費電力:2.81mW(入力が高い場合)


目に見えるものについては、直列にLED +抵抗分割器を使用して12Vで5Vの信号を与え、ツェナーダイオードを分割器の下半分とLEDに並列に接続して過電圧から保護します。これにより、入力信号があるときにLEDが点灯し、視覚的なフィードバックが得られます。
ゴスウィンフォンブレダロー

@GoswinvonBrederlow回路のLED /ダイオード/抵抗回路を描いてください。
ジュージューという音

上記の回路図では、R1を770オームに設定し、330オームと赤色LEDをツェナーダイオードに並列に追加します。次に、12V入力で〜9mAがLEDを流れ、5V出力信号を取得します。入力電圧が上がると、ツェナーダイオードが出力信号を5.1Vに制限し、arduinoとLEDの両方を保護します。
ゴスウィンフォンブレダロー

-2

少し遅れましたが、私の車ではLM7805を使用しています。素晴らしい作品と安いです。


1
2つの抵抗器または抵抗器とダイオードほど安価ではありません。
デイブツイード

7
@TonNies質問が間違っています。OPは自分のコントローラーの供給電圧を探していません。信号調整の詳細です。
アライザー

1
12v信号のレベルシフトにLM7805を使用しても問題はありません。
-chugadie

1
@chugadie:ただし、1つのIOピンで12Vを下げることだけが必要な場合は、非常に一般的ではなく比較的「高価な」過剰なアプローチです。
Rev1.0
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.