Lectura y calibración de sensores analógicos

Tengo lo que creo que es una pregunta simple sobre el uso y la calibración de datos de sensores analógicos variables (como una resistencia de detección de fuerza). A medida que se aplica más presión a este sensor, su resistencia cambia. Este valor puede ser recopilado por un dispositivo Arduino utilizando la función analogRead(), que genera un valor de 0 a 1024, siendo 1024 sin presión y 0 siendo la máxima presión. Supongo que analogRead está midiendo el voltaje, pero podría estar equivocado.

Mi pregunta es la siguiente: si proporciono corriente a estos dispositivos desde una batería, ya que el voltaje de la batería cae con el uso, ¿afectará el valor leído por un Arduino u otro dispositivo? El valor no parece cambiar linealmente a medida que se aplica más presión, entonces, ¿se multiplicaría el valor leído por el voltaje de la batería para obtener un trabajo constante si el valor cambia con el voltaje de la batería?

¡Gracias por tu ayuda!

Si está usando una batería, entonces debe regular el voltaje. Esto resuelve todos los problemas que le preocupan y garantiza que su circuito funcionará bien.
@vini_i Algunos sensores son absolutos, algunos sensores son radiométricos. Si un sensor es radiométrico con respecto al voltaje de suministro, y el A/D está referenciado al mismo voltaje de suministro, entonces la lectura de cierto estímulo será la misma independientemente del voltaje de suministro. (La naturaleza no lineal del estímulo de wrt del sensor es un aspecto completamente diferente).

Respuestas (1)

Tiene razón: analogRead() devuelve un valor que indica el voltaje proporcional de la entrada al voltaje de referencia analógico, que es el voltaje de suministro, 5 V o 3,3 V, u otro valor según el Arduino que esté usando y su configuración.

SI está alimentando el Arduino con la misma batería que su sensor, ya que el voltaje de la batería cae por debajo del voltaje regulado del Arduino, si todavía es lo suficientemente alto como para alimentar el Arduino, la función analogRead() continuará devolviendo un voltaje proporcional entre 0V y el voltaje de tu batería. Entonces no hay necesidad de multiplicar el resultado por una constante ya que esto es "automático".

Sin embargo, si está alimentando el sensor desde una batería y su Arduino desde otra fuente, necesitaría conocer el voltaje de la batería y ajustar su valor analogRead() proporcionalmente.

Use un multímetro para asegurarse de que el voltaje que se alimenta al Arduino esté cambiando como se esperaba.

Además, muestre un diagrama de su circuito si es posible.

Gracias, gran respuesta. ¡No sabía que se hace referencia a analogRead desde el voltaje de entrada! Estoy usando una batería lipo de 3.7v con un sistema de 3v (se recargará antes de que llegue a 3.7v), por lo que el voltaje de la batería siempre debe ser lo suficientemente alto como para alimentar la placa Arduino que estoy usando.
Tenga en cuenta que, a menos que esté alimentando directamente al pin de 3,3 V (o 5 V) del Arduino, el voltaje de entrada pasará por el regulador integrado del Arduino.
Digamos que suministro a la placa el voltaje de la batería y enciendo los sensores con el voltaje regulado: ¿se hace referencia a analogRead desde el voltaje regulado o el voltaje de entrada?
La referencia analógica sería el voltaje que suministra su placa Arduino O puede optar por ingresar una referencia diferente en el pin AREF. Consulte el artículo mencionado anteriormente ( arduino.cc/en/Reference/AnalogReference ). Pero tenga en cuenta que las referencias externas y las entradas analógicas deben estar entre 0 y 5 V.