Goda nyheter! Detta kommer att bli billigt! :-)
En enkel motståndsdelare tar ner 12 V till 5 V som en Arduino kan smälta. Utgångsspänningen kan beräknas som
\ $ V_ {OUT} = \ dfrac {R2} {R1 + R2} V_ {IN} \ $
Motståndsvärden inom området 10 kΩ är ett bra val. Om din R2 är 10 kΩ ska R1 vara 14 kΩ. Nu är 14 kΩ inte ett standardvärde, men 15 kΩ är det. Din ingångsspänning kommer att vara 4,8 V istället för 5 V, men Arduino ser det fortfarande som en hög nivå. Du har också lite utrymme om 12 V skulle vara lite för hög. Även 18 kΩ ger dig fortfarande tillräckligt höga 4,3 V, men då måste du börja tänka på 12 V lite för lågt. Kommer spänningen fortfarande att ses som hög? Jag skulle hålla mig till 15 kΩ.
redigera
Du nämner en bilmiljö och sedan behöver du lite extra skydd. Bilens 12 V är aldrig riktigt 12 V, men oftast högre, med toppar flera volt över nominella 12 V. (Egentligen är nominell mer som 12,9 V, med 2,15 V per cell.) Du kan placera en 5 V zener dioden parallellt med R2, och detta bör avbryta alla spänningar som är högre än zenerns 5 V. Men en zenerspänning varierar med strömmen, och vid den låga ingångsströmmen ger motstånden dig att den kommer att brytas av vid lägre spänningar. En bättre lösning skulle vara att ha en Schottky-diod mellan Arduinos ingång och 5 V-matningen. Då kommer alla ingångsspänningar som är högre än cirka 5,2 V att leda Schottky-dioden, och ingångsspänningen kommer att vara begränsad till 5,2 V. Du behöver verkligen en Schottky-diod för detta, en vanlig PN-diod har ett 0,7 V-fall i stället för Schottky's 0,2 V och sedan kan den maximala ingångsspänningen på 5,7 V vara för hög.
Bättre
Michaels optokopplare är ett bra alternativ, men lite dyrare. Du använder ofta en optokopplare för att isolera ingång från utdata, men du kan också använda den för att skydda en ingång som du vill ha här.
Hur det fungerar: ingångsströmmen tänder den interna infraröda lysdioden som orsakar en utström genom fototransistorn. Förhållandet mellan ingångs- och utgångsström kallas CTR för nuvarande överföringsförhållande. CNY17 har en lägsta CTR på 40%, vilket innebär att du behöver 10 mA-ingång för 4 mA-utgång. Låt oss gå till 10 mA-ingången. Då bör R1 vara (12 V - 1,5 V) / 10 mA = 1 kΩ. Utgångsmotståndet måste orsaka ett 5 V-fall vid 4 mA, då ska det vara 5 V / 4 mA = 1250 Ω. Det är bättre att ha lite högre värde, spänningen kommer ändå inte att sjunka mer än 5 V. En 4,7 kΩ begränsar strömmen till cirka 1 mA.
Vcc är Arduinos 5 V-försörjning, Vout går till Arduinos ingång. Observera att ingången kommer att vändas in: den är låg om 12 V är närvarande, hög när den inte är. Om du inte vill ha det kan du byta position för optokopplarens utgång och uppdragsmotstånd.
redigera 2
Hur fungerar inte optokopplaren lösa överspänningsfrågan? Motståndsdelaren är ratiometrisk: utspänningen är en fast ration av ingången. Om du har beräknat för 5 V ut vid 12 V in kommer 24 V in att ge 10 V ut. Inte OK, därav skyddsdioden.
I optokopplarkretsen kan du se att höger sida, som ansluter till Arduinos ingångsstift inte har någon spänning som är högre än 5 V alls. Om optokopplaren är på så drar transistorn ström, jag använde 4 mA i exemplet ovan. En 1,2 kΩ kommer att orsaka ett 4,8 V spänningsfall på grund av Ohms lag (strömtider motstånd = spänning). Då kommer utspänningen att vara 5 V (Vcc) - 4,8 V över motståndet = 0,2 V, det är en låg nivå. Om strömmen skulle vara lägre blir spänningsfallet också mindre och utspänningen stiger. En 1 mA ström, till exempel, kommer att orsaka en nedgång på 1,2 V och utgången blir 5 V - 1,2 V = 3,8 V. Minsta strömmen är noll. Då har du ingen spänning över motståndet, och utgången blir 5 V. Det är maximalt, det finns inget där som ger dig en högre spänning.
Vad händer om ingångsspänningen skulle bli för hög? Du ansluter av misstag ett 24 V-batteri istället för 12 V. Därefter fördubblas LED-strömmen och bildar 10 mA till 20 mA. 40% CTR kommer att orsaka 8 mA utström istället för den beräknade 4 mA. 8 mA genom 1,2 kΩ motståndet skulle vara ett fall på 9,6 V. Men från en 5 V-matning skulle det vara negativt, och det är omöjligt; du kan inte gå lägre än 0 V här. Så medan optokopplaren mycket gärna vill dra 8 mA, kommer motståndet att begränsa det. Den maximala strömmen genom den är när hela 5 V är över den. Utgången blir då verkligen 0 V och strömmen 5 V / 1,2 kΩ = 4,2 mA. Oavsett vilken strömförsörjning du ansluter kommer utströmmen inte att gå högre än så, och spänningen kommer att stanna mellan 0 V och 5 V. Inget ytterligare skydd behövs.
Om du förväntar dig överspänning måste du kontrollera om optokopplarens lysdiod klarar av den ökade strömmen, men 20 mA kommer inte att vara ett problem för de flesta optokopplare (de är ofta uppskattade till maximalt 50 mA), och dessutom är det för dubbel ingångsspänning , vilket förmodligen inte kommer att hända IRL.