Detección de errores

hola, estoy realizando un proyecto para medir la gravedad con un objeto en caída libre, en la cual debo tener en cuenta el tiempo y su respectivo error con el que Arduino lo lea. contexto: en el ámbito metrológico todas las mediciones tienen un error, en este caso cuando Arduino me diga que el objeto tardo en caer por ejemplo 40 milisegundos esta medición debería tener un error puede ser por ej: 0,02 ms y o microsegundos.

como podría detectar estos errores o alguna información de utilidad sobre esto?

Su publicacion se MUEVE a su ubicacion actual ya que es mas adecuada.

El error está en toda medición. No solo cuando usas un Arduino para medir.
Creo que estas circunscribiendo el problema solo a la base de tiempos.
TIenes dos herramientas cómodas para medir una es micros() y la otra es millis()
micros() tiene una resolución de 4uS y millis() de 1 mSeg
Entonces si usas micros() tu error será de ± 4 uSeg para comenzar a hablar.
Esto sería un error de resolución para un ATmega328P sin embargo hay micros mas rápidos y su error es menor.

Tienes otro error asociado al tiempo de reacción de tu sistema para detectar el inicio y fin de las lecturas

Debes medir la parte del código que generen cierto error o latencia
Si usas interrupciones ahi tendrías un estimado que hacer según la prioridad de ésta.
Y si usas pulsadores estos tendrán rebotes y como poco 10mseg es otra incertidumbre posible.

Me esta faltando algo!!

Ahhh si, el error por temperatura del cristal o sea la estabilidad del cristal con la temperatura
El cristal de cuarzo del Arduino ±20 a ±100 ppm tienen una estabilidad de este margen.

Entonces sumando errores tenés

  1. Resolución micros(): ±4 µs.
  2. Error del reloj: 4 µs.
  3. Tiempo de reacción (estimado si no se usan interrupciones): ±10-20 µs.
    Todo sumado da ± 10 a 30 uS aprox.

Pruebas experimentales:

  • Tenes que armarte un banco de trabajo con una distancia conocida.
    Y hacer varias pruebas tomando el tiempo midiendo la caída del objeto desde la misma altura.
  • Medí el tiempo repetidamente.
  • Calculá la desviación estándar y el promedio (μ) de los tiempos.
    Esto te dará una incertidumbre estadística complementaria al análisis teórico.

Mis recomendaciones:

  1. Usa un ESP32 para bajar esos 4uS a 1uS.
  2. Sensores ópticos detectarán con mas precisión el inicio y fin de las mediciones.
  3. Usa interrupciones externas, o sea el sensor óptico ataca un pin y este acciona una interrupción externa. Uno para iniciar y otro para terminar la lectura. Eso minimiza todos los problemas, (no habrá rebotes).

NOTA: Lindo tema, me encantó cuando estaba en la Universidad en Instrumentos (3er año)

1 Like

Se puede calibrar el tiempo que arroja el Arduino o como puedo controlar el tiempo para contar el tiempo de caída de un objeto

Moderador
Por favor lee las normas del foro y no doble postees.
Tienes este hilo abierto preguntando lo mismo.

Moveré esto a dicho hilo.
La próxima similar tendré que sancionarte.