Paso 6: magia
El truco para el sistema 1-pin es que ese pin analógico 2 en Arduino Tiny es el mismo que el pin digital 4, para que podamos usar el mismo LED como un sensor y una salida. Usted podría hacer lo mismo con cualquier pin analógico en un Arduino pero funciona nuestro bastante caros!
Cuando ponga en marcha el AVR corremos la rutina de "setup", que mide el voltaje generado de luz golpea el LED durante 40 segundos, utilice código similar al usado durante la rutina de "loop". Medimos valores de 128 y tomar la media de estos como el umbral de la oscuridad. Esto significa que no necesitamos saber de antemano las propiedades del LED. Como genera una señal que deberíamos ser capaces de usarlo.
Cualquier momento que se quita la energía o el chip se resetea se ejecutará ese umbral de detección de rutina otra vez. Por lo tanto, si el chip se restablece durante la noche por cualquier razón podría resultar en un umbral que raramente se cruzará. Igualmente si restablece en sol brillante entonces la luz probablemente se quedaría todo el tiempo. La vida está llena de peligro.
Posiblemente, podríamos, escriba el valor de umbral a la EEPROM pero si lo hicimos entonces sólo obtendríamos un disparo en hacer la conexión de la batería. Otro desarrollo sería a dos pernos cortos (por ejemplo, conecte el pin 7 (PB2) a VCC) hasta que estamos contentos con nuestro umbral y entonces cortar ese perno para prevenir posteriores escrituras EEPROM. Trabajo en una actualización de ese tipo.
Si tienes alguna idea astuta entonces encanta escucharlos.
Ahora, a la obra no la próxima versión - Throwduino RGB, espero!