我正在使用Arduino Uno microcrontroller創建12 V系統的控制器。對於輸出,我使用繼電器屏蔽來切換12 V組件。我有一個12 V撥動開關,可以打開系統中的某些12 V組件,我想使用同一開關的觸發信號發送到Arduino數字輸入。我知道Arduino最多只能處理5 V電壓。將開關的12 V降壓至5 V輸入的最佳方法是什麼?
編輯:該系統用於汽車。是否需要以某種方式降低汽車電池的電流強度,以免炸毀組件?
我正在使用Arduino Uno microcrontroller創建12 V系統的控制器。對於輸出,我使用繼電器屏蔽來切換12 V組件。我有一個12 V撥動開關,可以打開系統中的某些12 V組件,我想使用同一開關的觸發信號發送到Arduino數字輸入。我知道Arduino最多只能處理5 V電壓。將開關的12 V降壓至5 V輸入的最佳方法是什麼?
編輯:該系統用於汽車。是否需要以某種方式降低汽車電池的電流強度,以免炸毀組件?
好消息!這將很便宜! :-)
一個簡單的電阻分壓器會將12 V降至Arduino可消化的5V。可以將輸出電壓計算為
\ $ V_ {OUT} = \ dfrac {R2} {R1 + R2} V_ {IN} \ $
電阻值範圍為10kΩ是一個不錯的選擇。如果您的R2為10kΩ,則R1應該為14kΩ。現在14kΩ不是標準值,而是15kΩ。您的輸入電壓將是4.8 V而不是5 V,但是Arduino仍將其視為高電平。如果12 V的電壓過高,您還有一點裕量。即使18kΩ仍會為您提供足夠高的4.3 V,但是您必須開始考慮12 V有點太低。電壓仍會被視為高嗎?我會堅持使用15kΩ。
編輯
您提到了汽車環境,那麼您確實需要一些額外的保護。汽車的12 V永遠不會是12 V,但大多數時候會更高,峰值比標稱12 V高幾伏。(實際上標稱值更像是12.9 V,每個電池為2.15V。)您可以放置5 V齊納二極管二極管與R2並聯,這將切斷任何高於齊納二極管5 V的電壓。但是,齊納二極管電壓會隨電流而變化,在低輸入電流時,電阻器為您提供的電阻將在較低電壓下截止。更好的解決方案是在Arduino的輸入和5 V電源之間安裝一個肖特基二極管。然後,任何高於5.2 V的輸入電壓都會使肖特基二極管導通,並且輸入電壓將限制為5.2V。為此,您確實需要一個肖特基二極管,一個普通的PN二極管的壓降為0.7 V,而不是肖特基二極管的壓降。 0.2 V,然後最大輸入電壓5.7 V可能太高。
更好
Michael的光耦合器是一個不錯的選擇,儘管價格稍貴。通常,您將使用光耦合器將輸入與輸出隔離,但也可以在此處使用它來保護輸入。
工作原理:輸入電流使內部紅外LED點亮,從而導致通過光電晶體管的輸出電流。輸入電流和輸出電流之間的比率稱為 CTR ,用於“電流傳輸比率”。 CNY17的最低CTR為40%,這意味著4 mA輸出需要10 mA輸入。讓我們選擇10 mA輸入。那麼R1應該是(12 V-1.5 V)/ 10 mA = 1kΩ。輸出電阻必須在4 mA處產生5 V的壓降,然後應為5 V / 4 mA = 1250Ω。最好有一個更高的值,否則電壓下降不會超過5V。 4.7kΩ會將電流限制為約1 mA。
Vcc是Arduino的5 V電源,Vout進入Arduino的輸入。請注意,輸入將被反相:如果存在12 V,它將為低電平,否則將為高電平。如果您不希望這樣做,則可以交換光耦合器的輸出和上拉電阻的位置。
編輯2
光耦合器解決方案怎麼辦解決過電壓問題?電阻分壓器是成比例的:輸出電壓是輸入的固定比率。如果您已經計算出在12 V輸入下有5 V輸出,那麼24 V輸入將給出10 V輸出。不好,因此是保護二極管。
在光耦合器電路中,您可以看到連接到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.8V。最小電流為零。這樣,電阻兩端將沒有電壓,輸出將為5V。這是最大值,沒有任何東西可以提供更高的電壓。
如果輸入電壓過高怎麼辦?您不小心連接了24 V電池,而不是12V。然後,LED電流將增加一倍,形成10 mA至20 mA。 40%的點擊率將導致8 mA輸出電流,而不是計算出的4 mA。通過1.2kΩ電阻的8 mA壓降為9.6V。但是使用5 V電源將是負電壓,這是不可能的。您不能在這裡低於0V。因此,儘管光耦合器非常希望汲取8 mA電流,但電阻會限制這一電流。通過它的最大電流是滿5 V時的最大電流。這樣,輸出實際上將為0 V,電流為5 V / 1.2kΩ= 4.2 mA。因此,無論您連接的是哪種電源,輸出電流都不會高於此水平,並且電壓將保持在0 V至5 V之間。不需要進一步的保護。
如果您期望過壓,則必須檢查光耦合器的LED是否可以處理增加的電流,但是對於大多數光耦合器(通常額定最大為50 mA)而言,20 mA不會成為問題,此外,這是 double 輸入電壓的問題,這可能不會發生IRL。
隔離12V開關信號的一種好方法是將其通過光電耦合器。電路的配置類似於以下內容。
圖中的Vi表示電路中由開關(S1)切換的12V。選擇R1可將通過光耦合器D1部分的電流限制在所選組件額定值範圍內的水平。
光電耦合器並不是世界上最快的組件,尤其是最便宜的組件,但是對於諸如人為控制的開關之類的動作較慢的情況,耦合器的速度無關緊要。
>您還可以使用二極管和電阻,如下所示:
模擬該電路 –使用 CircuitLab sup>
我要使電阻器有些堅硬,否則會從該電路消耗很多功率。該電路的優點(與分壓器相比)在於,它並不關心您的原始電壓是12V,14V還是15V:它將為5V(取決於二極管,實際上為5.2-5.3V),無論輸入電壓。
對於電壓獨立性,使用電阻器調節電流,使用齊納二極管調節電壓,如下所示:
模擬該電路 –使用 CircuitLab sup>
創建的原理圖使用30k電阻器,它將輸出4.99V,在12Vin時僅使用約234uA。
在這種情況下:
R1消耗234uA x(12V-4.99V)= 1.64mW
D1消耗234uA x 4.99V = 1.17mW
總功耗:2.81mW(輸入高時)
有點晚了,但是在我的車上我使用的是LM7805。Works很棒而且很便宜。