Esta duda se puede resolver de diversas formas, pero en este caso te dejamos la que en nuestra opinión es la solución más completa.
Solución:
¡Buenas noticias! ¡Esto va a ser barato! 🙂
Un simple divisor de resistencia reducirá los 12 V a los 5 V que un Arduino puede digerir. El voltaje de salida se puede calcular como
$ V_ FUERA = dfrac R2 R1 + R2 V_ IN $
Los valores de resistencia en el rango de 10 kΩ son una buena opción. Si su R2 es de 10 kΩ, entonces R1 debería ser de 14 kΩ. Ahora, 14 kΩ no es un valor estándar, pero 15 kΩ sí lo es. Su voltaje de entrada será 4.8 V en lugar de 5 V, pero Arduino lo verá como un nivel alto. También tiene un poco de margen en caso de que los 12 V sean demasiado altos. Incluso 18 kΩ todavía le darán 4.3 V suficientemente altos, pero luego debe comenzar a pensar en los 12 V un poco demasiado bajos. ¿Seguirá considerándose alto el voltaje? Yo me quedaría con los 15 kΩ.
editar
Mencionas un entorno automotriz y luego necesitas protección adicional. Los 12 V del automóvil nunca son exactamente 12 V, pero la mayoría de las veces son más altos, con picos varios voltios por encima de los 12 V nominales (en realidad, el nominal es más como 12,9 V, a 2,15 V por celda). Puede colocar un zener de 5 V diodo en paralelo con R2, y esto debería cortar cualquier voltaje más alto que los 5 V del zener. Pero un voltaje zener varía con la corriente, y a la baja corriente de entrada que le dan las resistencias, se cortará a voltajes más bajos. Una mejor solución sería tener un diodo Schottky entre la entrada de Arduino y el suministro de 5 V. Entonces, cualquier voltaje de entrada superior a aproximadamente 5.2 V hará que el diodo Schottky conduzca, y el voltaje de entrada se limitará a los 5.2 V. Realmente necesita un diodo Schottky para esto, un diodo PN común tiene una caída de 0.7 V en lugar de la de Schottky. 0,2 V y, a continuación, el voltaje de entrada máximo de 5,7 V puede ser demasiado alto.
Mejor
El optoacoplador de Michael es una buena alternativa, aunque un poco más cara. A menudo utilizará un optoacoplador para aislar la entrada de la salida, pero también puede utilizarlo para proteger una entrada como desee aquí.
Cómo funciona: la corriente de entrada enciende el LED infrarrojo interno, lo que provoca una corriente de salida a través del fototransistor. La relación entre la corriente de entrada y salida se llama CTR, para la tasa de transferencia actual. El CNY17 tiene un CTR mínimo del 40%, lo que significa que necesita una entrada de 10 mA para una salida de 4 mA. Vayamos por la entrada de 10 mA. Entonces R1 debería ser (12 V – 1,5 V) / 10 mA = 1 kΩ. La resistencia de salida tendrá que provocar una caída de 5 V a 4 mA, entonces eso debería ser 5 V / 4 mA = 1250 Ω. Es mejor tener un valor un poco más alto, el voltaje no caerá más de 5 V de todos modos. Un 4,7 kΩ limitará la corriente a aproximadamente 1 mA.
Vcc es el suministro de 5 V de Arduino, Vout va a la entrada de Arduino. Tenga en cuenta que la entrada se invertirá: será baja si los 12 V están presentes, alta cuando no lo esté. Si no quiere eso, puede cambiar la posición de la salida del optoacoplador y la resistencia de pull-up.
editar 2
¿Cómo no resuelve la solución de optoacoplador el problema de la sobretensión? El divisor de resistencia es radiométrico: el voltaje de salida es una proporción fija de la entrada. Si ha calculado una salida de 5 V a una entrada de 12 V, la entrada de 24 V dará una salida de 10 V. No está bien, de ahí el diodo de protección.
En el circuito del optoacoplador, puede ver que el lado derecho, que se conecta al pin de entrada del Arduino, no tiene ningún voltaje superior a 5 V en absoluto. Si el optoacoplador está encendido, el transistor consumirá corriente, utilicé 4 mA en el ejemplo anterior. Un 1.2 kΩ causará una caída de voltaje de 4.8 V, debido a la Ley de Ohm (corriente por resistencia = voltaje). Entonces el voltaje de salida será 5 V (Vcc) – 4.8 V a través de la resistencia = 0.2 V, eso es un nivel bajo. Si la corriente fuera menor, la caída de voltaje también será menor y el voltaje de salida aumentará. Una corriente de 1 mA, por ejemplo, provocará una caída de 1,2 V y la salida será de 5 V – 1,2 V = 3,8 V. La corriente mínima es cero. Entonces no tiene un voltaje en la resistencia, y la salida será de 5 V. Ese es el máximo, no hay nada allí que le dé un voltaje más alto.
¿Y si el voltaje de entrada fuera demasiado alto? Conecta accidentalmente una batería de 24 V en lugar de 12 V. Entonces la corriente del LED se duplicará, de 10 mA a 20 mA. El 40% de CTR provocará una corriente de salida de 8 mA en lugar de los 4 mA calculados. 8 mA a través de la resistencia de 1,2 kΩ sería una caída de 9,6 V. Pero de un suministro de 5 V eso sería negativo, y eso es imposible; no se puede bajar por debajo de 0 V aquí. Entonces, mientras que al optoacoplador le gustaría mucho dibujar 8 mA, la resistencia lo limitará. La corriente máxima a través de él es cuando los 5 V completos lo atraviesan. Entonces, la salida será realmente 0 V y la corriente 5 V / 1,2 kΩ = 4,2 mA. Entonces, sea cual sea la fuente de alimentación que conecte, la corriente de salida no será más alta que eso, y el voltaje se mantendrá entre 0 V y 5 V. No se necesita más protección.
Si espera una sobretensión, tendrá que verificar si el LED del optoacoplador puede manejar el aumento de corriente, pero los 20 mA no serán un problema para la mayoría de los optoacopladores (a menudo tienen una clasificación de 50 mA como máximo), y además, eso es para doble voltaje de entrada, que probablemente no sucederá IRL.
Para la independencia de voltaje, use una resistencia para regular la corriente y un Zener para regular el voltaje, así:
simular este circuito: esquema creado con CircuitLab
Con una resistencia de 30k, esto generará una salida de 4.99V y usará solo alrededor de 234uA @ 12Vin.
En este caso:
R1 consume 234uA x (12V – 4.99V) = 1.64mW
D1 consume 234uA x 4,99 V = 1,17 mW
Consumo total de energía: 2,81 mW (cuando la entrada es alta)
Una buena forma de aislar la señal del interruptor de 12V sería pasarla a través de un optoacoplador. El circuito se configuraría de forma similar a la siguiente.
Vi en el diagrama representa los 12V en su circuito que son conmutados por su interruptor (S1). Seleccione R1 para limitar la corriente a través de la parte D1 del optoacoplador a un nivel que esté dentro de los valores nominales del componente que seleccione.
Los optoacopladores no son los componentes más rápidos del mundo, especialmente los más baratos, pero para el caso de una acción lenta como un interruptor controlado por humanos, la velocidad del acoplador es de poca importancia.
Recuerda que puedes recomendar este post si te ayudó.