Capacimetro con Arduino

Es diferencia entre el valor teórico y el valor que has medido viene determinado por:

  • el tiempo que tarda el AVR en invocar a la rutina para leer el tiempo.
  • el tiempo que tarda el código digitalWrite hasta que realmente se pone el pin a 1 o a 0.
  • error de cuantización del contador de micros. Es decir, tu mejor resolución es 1 micro segundo.
    Por otro lado, las rutinas digitalWrite y microseconds son deterministas, e.d. constantes. Por eso puedes añadir ese offset, que realmente debería ser un offset en vez de una constante por la que multiplicas.

Resumiendo:

  1. cuando la constante RC sea inferior a 1us o de unos poco microsegundos, el error será mayúsculo.
  2. tendrías que calibrar cuanto tiempo se tarda, desde que invocas a microseconds y se pone el pin a 1 y restar este valor al tiempo que estás midiendo a modo de offset.