Paso 3: El software...
Para la programación del microcontrolador utiliza el "Arduino: IDE.
Cómo programar chips Attiny usando "Arduino" puede verse aquí. He adjuntado las bibliotecas necesarias. También se adjunta el código fuente. Para la compilación he utilizado la siguiente configuración de tablero: Attiny84 (reloj interno de 1MHz) en el menú de tablas, lo que aparece después de la instalación adecuada de las bibliotecas "attiny-master". . Después de compilar el código fuente, el archivo "hexagonal" compilado debe ser quemado en el chip. El enlace anterior muestran cómo debe conectarse el chip. Para la quema usé programador USBtinyISP. Cómo grabar el archivo "hexadecimal" puede verse aquí. Si yo no tiene programador adecuado - puede tratar de esto. Después de quemar el archivo "hexadecimal", deben establecerse los fusibles del microcontrolador. Aquí usted puede calcular los valores de fusibles deseada. He utilizado lo siguiente:
Bajo 62
Alta DF
Extendido FF
El fusible que se quema el proceso se describe en los enlaces de arriba (lo mismo para la quema del archivo "hexadecimal")
El vídeo incrustado muestra la configuración de grabación y pruebas de la viruta.
Quiero insertar algunas palabras adicionales sobre el código. Hay dos números, que se utilizan para los umbrales para encenderla y apagado el dispositivo. El valor de apagado es menor de 20-40 unidades entonces el valor ON. Esto crea cierta histéresis y de esta manera inmunidad de ruido.
¿Cómo definir el valor de ON?
Usted debe poner el potenciómetro trimmer a un valor medio. Después de se debe medir la caída de tensión sobre el LDR en el nivel de intensidad de luz, en la que desea el inicio del dispositivo para trabajar. El número para el encendido del dispositivo que se puede calcula de la siguiente manera
Val = Vldr * 1024/Vsup; donde Vsup es la fuente de la viruta (en nuestro caso 5 V) y Vldr es la caída de tensión medida sobre la LDR.
Puede verse que el dispositivo tiene 3 modos controlados por el interruptor de posición 3:
1) "OFF" - el dispositivo se suministra, pero no es cualquier función, el LED rojo"energía"
2) "Activo" - el dispositivo de detección la intensidad de la luz y si cae por debajo del umbral - comienza a activar el LED al azar modulando su intensidad por el uso de PWM durante períodos de tiempo al azar. En este modo el LED rojo"poder" está en. Un LED blanco en el lado derecho indica que el dispositivo está listo.
3) "Forzado" - cambiar el LED independientemente en el nivel de luz.
Para hacer a algún tipo de números reales al azar un análogo entrada detecta la variable con el tiempo el potencial en el punto de interconexión entre ambas resistencias R14 R13. Esto se realiza en la siguiente línea de comando:
randomSeed(analogRead(4));
Puede omitirse la resistencia R14 y en tal caso, este punto es bridged a la fuente a través de R13. Esto no cambiará sensible el rendimiento.