Paso 13: Darle cerebro
Había soldado una rúbrica DIP en algunos perfboard, luego añade cabeceras masculinas para los cables del motor sensor y paso a paso. Tengo un potenciometro que se usa como una resistencia variable en un divisor de resistencia con el fotoresistor. Esto me permite jugar con la escala en caso de ir de un sitio realmente oscuro hacia el exterior en un día soleado. También utilicé cuatro mosfets (2n7000) usar como interruptores para que el motor puede ser impulsado desde el ~ batería de 12V y no desde el microcontrolador. Por último, he añadido un regulador de 5V (LM7805) para alimentar el microcontrolador.
Estoy programando el microcontrolador off-board, pero puede Agregar un encabezado de programación si desea.
El código es bastante simple. Básicamente, I ping el telémetro ultrasónico, muestra la fotorresistencia, calcular un promedio de escala de tiempo y luego paso el motor paso a paso en la dirección que tiene que ir. Enjuague y Repeat(); También ejecutar un ciclo de calibración inicial que obliga el iris para abrir todo el camino, ya que no tengo ninguna pista cómo abrir el diafragma es en primer lugar. (Si alguien ha sido jugar con él) He incluido el código y el makefile que utilizo.