Leer voltaje positivo y negativo en Arduino [cerrado]

Es una larga historia, pero desarmé un auto RC y quería que Arduino lo usara analogRead()para obtener los valores de mis motores y dirección. He medido con mi multímetro que el voltaje en mi carro a control remoto va de -6v a 6v.

Sin embargo, Arduino solo admite lecturas de 0v a 5v como máximo. ¿Hay alguna forma de convertir -6v y +6v a 0v y 5v? Escuché que podría hacerse usando un amplificador operacional. Algunas personas también me han dicho que use un divisor de voltaje. En otras palabras, si no estuviera controlando el auto RC, el Arduino debería ver 2.5 voltios.

De todos modos, no tengo exactamente claro cómo haría esto. ¿Puede alguien recomendarme un amplificador operacional apropiado con un circuito para este escenario específico?

O, si es posible, ¿alguien puede mostrarme cómo leer el voltaje negativo y positivo usando dos pines Arduino? Por ejemplo, si se da -6v, entonces el pin analógico 0 devolverá 1023. Si se da 0v, entonces ambos pines analógicos 0 y 1 dirán 0. Y si se dan +6v, entonces el pin analógico 1 devolverá 1023 ¿Cómo puedo hacer un circuito que funcione así?

Le agradecería si tiene un diagrama de circuito para esto. ¡Gracias!

Cuando dice que la señal de salida del automóvil RC varía de +6 a -6 voltios, ¿a qué se refiere esta lectura? ¿A qué punto estás aplicando la sonda de tierra del multímetro?
@AnindoGhosh Acabo de tomar ambos cables del multímetro y toqué una sonda en cada cable del motor.
Votar para cerrar como la premisa misma de esta pregunta es fundamentalmente un error. Lo que se va a leer no es analógico; en el mejor de los casos, podría ser digital de ancho de pulso, pero realmente no tiene mucho sentido usar un Arduino para leer un sistema RC heredado crudo cuando puede hacer tan fácilmente uno digital moderno usando módulos de tipo nRF24L01 de $ 1.
¡Bienvenido a EE.SE! Esto parece ser una cuestión de ingeniería inversa, modificación o reparación. Tenga en cuenta que tales preguntas deben incluir pasos específicos para la solución de problemas y demostrar una buena comprensión del diseño subyacente del dispositivo que se está discutiendo, de modo que pueda hacer preguntas específicas y enfocadas que puedan responderse de manera concisa. De lo contrario, la pregunta es demasiado amplia. Puede encontrar más información aquí: ¿Preguntar cómo reparar un circuito defectuoso es un tema? .

Respuestas (3)

Tres resistencias estándar hacen el trabajo, siempre que el motor vea -6 V con referencia a tierra y no con referencia a la otra terminal del motor.

esquemático

simular este circuito : esquema creado con CircuitLab

Al variar Vm de -6 a 6V, la salida variará de 0 a 4,9V.

@AnindoGhosh, oh, y no me sorprendería si el voltaje del motor se mide a través del motor en lugar de hacer referencia a tierra, por lo que también te deja espacio para una buena respuesta. Además, no tuve en cuenta PWM ...
¿Cómo puedo calcular los valores de la resistencia, dado un voltaje de entrada conocido? Por ejemplo, tengo una situación similar, pero mi señal de entrada es de -2 a +2 voltios. Esta es una topología interesante, pero me gustaría entender la teoría detrás de ella para poder modificarla, no solo copiarla.
@robm Primero establecí las proporciones para las resistencias, luego usé algunos cálculos en una tabla de hoja de cálculo grande para seleccionar las resistencias coincidentes más cercanas. Fue el uso de las fórmulas en la hoja de cálculo por lo que no elaboré el método exacto que probablemente debería tener. Supongo que vale la pena una pregunta por sí sola: método estándar para elegir valores de resistencia para este caso de uso específico.
¿Supongo que analizó el circuito y seleccionó valores como este? electronics.stackexchange.com/a/252473/36877 Todavía no entiendo muy bien cómo se analiza el circuito cuando la entrada es de 6 V para obtener 4.887 V como salida.

Cuando el motor se impulsa desde un puente H completo y desea que su Arduino tenga la misma referencia de tierra que el resto del automóvil, puede usar lo siguiente:

esquemático

simular este circuito : esquema creado con CircuitLab

Ambas salidas tienen un rango de 0 a 2V4, y debe configurar el voltaje de referencia interno de Arduino en 2V56. Al conectar ambas salidas a su propia entrada analógica, puede calcular el voltaje del motor restándolos. Los condensadores están ahí para promediar las señales PWM para que el ADC pueda medirlas.

Aquí hay una solución sin amplificador operacional. Necesitará un pin de entrada adicional en el Arduino para este.

Si el pin de entrada lee 0, entonces el voltaje del ADC es positivo. De lo contrario, el voltaje es negativo.

Debido a la caída de voltaje en el puente rectificador, resolvió el problema de reducir 6V a 5V. Ahora tendrá 6 - 2 * 0,7 = 4,6 V como máximo. D5 es opcional y está ahí solo por razones de seguridad.

La desventaja es que el voltaje debe ser mayor a +1.4V o menor a -1.4V para ser medido.

esquemático

simular este circuito : esquema creado con CircuitLab

También deberá aislar la tierra de Arduino del circuito RC. Esto significa que necesitarán fuentes de alimentación separadas.