Arduino: lea diferentes valores de voltaje en un rango de -12 a + 12V

0

Me gustaría activar diferentes funciones en Arduino relacionadas con los siguientes valores de voltaje: -12V, 0V, 6V, 9V, 12V (el rango es de -12V a + 12V).

Según el valor del voltaje leído (-12V, 0V, 6V, 9V, 12V) tengo que mostrar instantáneamente diferentes animaciones de luz en una tira de LED.

Teniendo en cuenta que el Arduino no puede leer directamente tales voltajes, supongo que probablemente tenga que usar un divisor de voltaje, pero no sé cómo calcular las resistencias a usar. ¿Alguien puede ayudarme?

Gracias.

También se me sugirió usar 1 amplificador operacional dual para hacer lo siguiente:

  1. Cree un amplificador inversor con una ganancia de 1, pero inserte un desplazamiento de 12V al + (pin no inversor), esto hará que su cambio de rango de -12 a 12V sea máximo a un rango de -24-0V.

  2. A la salida de la etapa 1, conecte otro amplificador inversor con una ganancia de 0,2 para obtener un rango de voltaje positivo de 0-4.8 V, lo que está bien para trabajar con la tolerancia ADC de 0-5 V del arduino.

¿Qué piensas de esta idea?

    
pregunta Filippo

4 respuestas

1

Figura1.Losnivelesdevoltajequesedetectarán.

Comonuncatienequedetectar0V,puedetratarcualquiervoltajepordebajode6Vcomo-12V.

simular este circuito : esquema creado usando CircuitLab

Figura 2. Circuito convertidor de nivel. D1 protege el ADC contra entradas de voltaje negativo. El divisor R1 / R2 proporciona una salida de 5/12 veces el voltaje de entrada.

En su lógica, puede establecer umbrales de 10.5 V, 7.5 V y 3 V para cada una de las 'ventanas' analógicas. Para un ADC de 10 bits, estos corresponderían a \ $ 1024 \ frac {10.5 \ times 5} {12} \ $ para el umbral de 10.5 V, etc.

Si tiene el comparador, puede usar esto para detectar cada flanco positivo, establecer el umbral en 3 V (1024 * 3/12) y, después de un breve retraso, muestre el voltaje.

Tenga en cuenta que elegí 7k y 5k para que la relación del divisor de voltaje sea obvia. Elija algunos valores estándar lo suficientemente cerca para hacer el mismo trabajo.

    
respondido por el Transistor
1

Ya que no tenemos información sobre la sincronización del tren de pulsos, supongamos que siempre es un ciclo de trabajo del 50% cuadrado de 1 kHz. Como tampoco tenemos información sobre cómo deben o no deben afectar los pulsos el circuito de su sensor, supongamos que no deberían hacerlo, porque vagamente así se lee su pregunta.

La forma más confiable de detectar estos niveles serían dos activadores de Schmitt: uno para detectar la diferencia entre 9V y 12V, y uno para detectar la diferencia entre 6V y 9V. Cada uno irá precedido por un diodo, un paso bajo RC y un divisor para obtener los voltajes de umbral adecuados. Aquí no muestro los schmitts o los divisores, solo el paso bajo:

Los valores pasivos deberán cambiar según la sincronización real de su entrada. Use un Schottky para el diodo para minimizar la caída hacia adelante.

    
respondido por el Reinderien
0

depende de para qué esté usando estos voltajes, si los está usando con transmisión en serie, puede usar un convertidor max232, si los está usando en general para entradas y salidas, teniendo en cuenta que Arduino puede manejar un voltaje. de hasta 12v utilizando su regulador interno, podría utilizar separadores de voltaje para las entradas, la ecuación para usar un divisor de voltaje es Vout = Vs x R2 / (R1 + R2), esto significa que tiene el voltaje suministrado (por ejemplo, 12v ) y para que los pines arduinos interpreten esto, se necesita que el voltaje esté entre 0v - 5v. Para reajustar el divisor de voltaje, aquí hay un sitio web útil: enlace

    
respondido por el jackv12333
0

Por lo tanto, tiene un rango de -12 V a 12 V que desea asignar en 0 V a V (suministro). Necesitas tres resistencias:

R1 va desde el ADC a tierra, y tiene un valor R que puede elegir.

R2 va del ADC a V, y tiene un valor de R * (12-V) / 12.

R3 va desde el ADC a la señal de 24 V, y tiene un valor de R * (12-V) / V.

Puedes aumentar R3 ligeramente para limitar el rango a menos de 0 a V.

    
respondido por el Cristobol Polychronopolis

Lea otras preguntas en las etiquetas