Tuve mi primera vez muy emocionante y exitosa en un osciloscopio hoy. La pregunta que surgió al final de mi primera experiencia tiene que ver con la precisión que esperaba. Mi microcontrolador estaba programado para emitir señales como una señal ALTA para 80us, LOW para 50us, HIGH para 25ms, etc. Usé un cristal de 16MHz con mi ATMega8.
Cuando registré la salida con el alcance, noté que las mediciones no eran exactas. Por ejemplo, cuando esperaría una señal ALTA 80us en el alcance, se vería algo así como 77us. Las señales que duraron más tiempo (es decir, 25 ms) parecían más precisas.
Mi pregunta es simple: ¿es esto lo que debería esperar? Quiero decir, el dispositivo que conecté a mi microcontrolador requiere señales específicas por períodos de tiempo específicos, y programé mi microcontrolador para entregarle esas señales durante el tiempo que requiere. Todo funciona bien, parece que no entiendo por qué existe esta discrepancia. Para referencia, el sensor es el sensor de temperatura DHT-11 . Si el microcontrolador no está entregando las señales precisas, ¿por qué mi sensor responde correctamente?
Estas son algunas de mis conjeturas:
- El sensor puede tolerar cierta cantidad de error, por lo que funciona. Parece que no puedo identificar y poner ese error en perspectiva según la hoja de datos.
- El cristal no es perfectamente exacto. Estamos tratando con la resolución de microsegundos aquí, por lo que es posible.
- Otros componentes como resistencias y condensadores introducen errores.
- El reloj en el osciloscopio tampoco es perfecto, aunque es mucho mejor que el cristal utilizado para mi microcontrolador
Quizás haya algo más de lo que no estoy enterado.
Tenga en cuenta que los horarios que usé anteriormente son solo ejemplos, y pueden diferir de la hoja de datos y de lo que realmente usé en mi código.