Estoy escribiendo este Instructable porque Bot1398 utiliza un Arduino y nunca he usado. No tengo nada contra ellos, sin embargo, cuando comencé a usar microcontroladores hace unos 3 años que estuve buscando velocidad y potencia para una aplicación específica. Colocó en la serie de microcontroladores PIC de Microchip. Es increíble lo que puede hacer con microcontroladores, usted puede dejar su imaginación funcionar salvaje y con una pequeña programación creativa lograr exactamente lo que quieres. Hay también un número de lenguajes de programación que hay pero cuando empecé quería velocidad y saber exactamente lo que estaba sucediendo a cada paso, por lo tanto, que elegí el lenguaje ensamblador ya que me pareció bastante básico que aprendí en el
en la década de 1980 cuando estaba creciendo. Eso es lo que implica este Instructable: microcontroladores PIC y lenguaje ensamblador utilizar un LED (diodo emisor de luz) para detectar la cantidad de luz ambiente y mostrar la medida numérica de esta luz junto con un gráfico de barras en una pantalla LCD.
Produzco la primera versión de este dispositivo con LED Sensor de luz que funcionaba, el problema que noté fue que los valores saltaban alrededor un poco. Por lo tanto, busqué una solución a este problema, que pensé en un promedio de los valores, pero ¿cómo? Hace matemáticas binarias es algo difícil pero siempre hay una manera de hacerlo. Como estaba buscando soluciones encontré una gran página sobre medias móviles y cómo hacerlo de manera más eficaz para que incluso los microcontroladores de 8 bits pueden manejar con facilidad. El enlace a la página está aquí: Cómputo eficiente las medias móviles y esto funciona muy bien. Esta aplicación muestra la media móvil de las últimas 256 lecturas luz y ese valor junto con un gráfico de barras en la pantalla LCD. El código promedio móvil impide que los valores de leer desde el LED de saltar mucho y le da un resultado mejor, mucho más preciso.
Por qué esto funciona
Cuando conecte un LED a un microcontrolador que generalmente hacemos para encender para arriba. En este caso, sin embargo, estamos en realidad aplicando una tensión positiva al extremo negativo del electrodo. Esto es así nos podemos aprovechar de algo que se llama capacitancia parásita. Aplicar este voltaje positivo se podrá acumular una carga pequeña (recursos en la internet opinan dentro de 100-200 nanosegundos) dentro de esta capacitancia parásita del LED que estamos utilizando. La capacitancia actual no es muy importante pero recursos online dicen que hay alrededor de 10-15 PF. Luego cambiamos el pin del microcontrolador atado al extremo negativo del electrodo de una salida a una entrada y esperar a que la carga drenar. Cuando carga drena suficientemente el pin ahora leerá un nivel lógico 0 o bajo estado donde giraremos apagado el temporizador y usar este valor para calcular la media móvil y mostrar los resultados en la pantalla. Luego tome más lecturas y mostrarlos en la pantalla en el intervalo que está escrito en el código ensamblador. En el código terminado, yo lo tengo configurado para tomar una lectura sobre cada microsegundos 20 o así. Esto ocurre 50 veces para que un resultado actualizado aparece en la pantalla aproximadamente cada segundo o menos. El tiempo que toma para conseguir una lectura variará un poco porque tarda más la carga a escurrir en un ambiente oscuro y esto se produce más rápidamente en ambientes de la luz. La tasa de descarga de la capacitancia del LED está de alguna manera directamente relacionada con el número de fotones o cantidad de luz que llama la atención la luz generando elementos. Limpio no es. :)
Ahora que sabemos cómo funciona, vamos a pasar al paso #1.