Paso 5: Software y programación
Este diseño se basa en un sensor de luz y utiliza el temporizador inexacto en un Arduino para ayudar a prevenir las persianas de apertura o cierre a veces extrañas, por ejemplo cuando faros de un coche golpeó la ventana de noche, o cuando el cartero camina por la mañana y proyecta una sombra. Una vez que las persianas abiertas debido a un disparo de luz, no intentan abrir nuevamente durante 20 horas. Del mismo modo, una vez cierre, te esperan casi un día completo antes de buscar otra vez al atardecer. Con este mecanismo, las persianas de la estancia automáticamente en sincronización con la luz del día, independientemente del horario, su latitud, la época del año, el clima o la precisión de cualquier reloj.
Las persianas de apertura y cierre basan en el movimiento programado, donde el movimiento de cierre dura ligeramente más que el movimiento de apertura. Esta manera, incluso sin cualquier sensor de posición, las persianas siempre están seguros de volver a la posición de cerrado atascado, sin lentamente a la deriva más abierto o más cerrado debido a inexactitudes del tiempo, cambios de fricción, etc.. Que tenga que ajustar el tiempo, sin embargo, si cambia la fricción en las persianas.
Hay un interruptor para anular el incluido en el diseño. Si cierras manualmente las persianas durante el día, quedo cerradas hasta la mañana siguiente. El programa todavía registrará al atardecer pasa como de costumbre, pero las persianas no se moverá si ya están allí. También puede utilizar el interruptor para anular al 'tren' las persianas, cerrando cuando quieres cerrar, luego mover el interruptor detrás la otra manera antes de que termine cierre. Al hacer esto, registra como un evento de entrenamiento en vez de un alumbrado. Después de un par de veces, debe conseguir bastante cercano a como usted quiere. (Se puede entrenar el gatillo de apertura de la misma manera).
Para programar el Arduino Pro Mini, necesitarás un cable FTDI como este: https://www.sparkfun.com/products/9718
La Web de Arduino tiene algo de información sobre cómo programar: http://arduino.cc/en/Guide/ArduinoProMini
Si usted está familiarizado con Arduino en general, leer alrededor de ese sitio un poco. Necesitará descargar el IDE de Arduino al ordenador y utilizarlo para abrir este archivo .ino: https://github.com/drewtm/windowlackey/blob/master... Entonces usted elegirá el tipo de junta y el puerto serie (que sólo habrá un puerto serie para elegir) y pulse el botón 'subir'.
Puede que necesite personalizar algunas cosas para su propia instalación:
#define OPENTIME - apertura unidad de duración. Cambialo por ensayo y error. Por suerte es bastante lineal, así que usted debe poder conseguirlo hechas con sólo un par de intentos. El número es en milisegundos.
#define CLOSETIME - cierre unidad de duración. Hacerlo un poco más largo que la abertura unidad duración
palabra dawnbright - nivel de luz de apertura. Puede utilizar los dibujos de ejemplo en la biblioteca de sensor de luz para obtener alguna referencia lecturas de luz en las horas del día que usted quiere las persianas para operar, luego esos números de código en el bosquejo. Las unidades en este número deberían ser mitad-lúmenes, pero que tiene bastante sentido para mí.
palabra duskbright - nivel de luz de cierre. Situado en la misma forma que el nivel de luz de apertura.
Dependiendo de qué tipo de interruptor utiliza, usted puede necesita cambiar macro swON de #define para definir como (digitalRead(swpin)==HIGH). Mina tengo configurado para que la marca '1' en el interruptor significa abren persianas y persianas cerradas significa que la marca '0'.