Paso 3: Prueba el bosquejo y notas de diseño
En este paso a hablar de las pruebas y tribulaciones que encontré en el camino, y cómo funcionaba a través de ellos, con la esperanza de ello será útil. No dudes saltar al siguiente paso si el contenido de la ciencia no es lo tuyo :-)El primer paso fue decidir si utilizar detección capacitiva o resistiva sensor. Sensor resistivo se conecta el sensor a través de una resistencia a uno de los pines analógicos y haciendo analogRead y comparando contra un umbral. Este es más simple de implementar, pero tiene un montón de calibración.
La teoría de la detección capacitiva que es al revés parcial (- para el + plomo y viceversa), un LED no permitirá actual para fluir, pero electrones recogerá en un lado y dejar el otro lado, efectivamente carga un condensador. Caída en el LED normalmente emite una frecuencia de luz en realidad hará que una corriente de flujo, que descarga de este condensador smal.
Así que si cobran el "condensador" de LED y cuenta el tiempo que tarda la descarga a través de un resistor, tenemos una idea aproximada de cuánto luz está cayendo en el LED. Esto realmente funcionó para ser más confiables a través de diferentes dispositivos y trabaja incluso por fototransistores! Puesto que no estamos haciendo una medición precisa de la luz, y el puntero láser debe aparecer mucho más brillante que el ambiente, solo buscamos un tiempo de descarga thresholded.
Depuración de la otra parte importante de esta aventura. Para los familiarizados con la programación de los sistemas no integrados, un método popular es agregar instrucciones de impresión en los puntos críticos en el código. Esto también se aplica a sistemas embebidos, pero cuando cada microsegundo, la cantidad de tiempo a Serial.write («x es»); Serial.writeln(x); es realmente muy importante, y puede perder un montón de eventos en el proceso. Así que recuerda siempre poner sus impresión declaraciones fuera de lazos críticos, o cualquier momento esperas que un evento. A veces parpadea un LED es suficiente para hacerle saber que llegaste a un punto determinado en el código.