Paso 5: El código básico para el uso con RTC DS1307
Encontrarás el código en codebender (ver final de página).
Básicamente lo que hace el código es después de definición de sus parámetros básicos es lopp a través de un montón de 'Si' las condiciones en las que el momento actual se comprueba con algunos valores de tiempo y si cumplen, encender una luz o apagar.
El estado de las luces se almacena en una variable para trabajar con, así como en RAM NVR como copia de seguridad si hay una interrupción de energía.
El uso de RAM NVR significa que usted está obligado a utilizar el módulo RTC DS1307.
Tienes otras dos opciones para usar como almacenamiento permanente: la EEPROM de la Arduino y la EEPROM que es en la mayoría de los módulos RTC.
Por varias razones al principio elegí la NVRam, pero en retrospectiva, hubiera sido mejor elegir para la EEPROM presente en la mayoría de los módulos como el DS1307 o el DS3231 RTC como que hace el código un poco más universal. He reescrito para el programa más extendido. Mi ' programa ampliada ' para obtener flexibilidad en el uso de un RTC DS3231 o DS1307
La prueba de la condición toma la siguiente forma
Currenthour IF == x currentminute y + aleatorio == y lightstatus y == OFF
A continuación, encienda la luz
Escriba lightstatus en ON
actualización NVR
Añadir randomfactor para que se vea más natural. Siempre tener luces de año ir 21:00 señales 'Estoy fuera'
El código tiene varias declaraciones de impresión pero tehse por supuesto son sólo de uso si tienes un terminal o un bluetooth módulo cumplimentado.
Puede hacer el código mucho más sofisticada de verificación para el día o el mes y cambiar las luces más o menos tiempo dependiendo del mes o si es entre semana o fines de semana.
La versión extendida (ver más adelante) tiene mucha más funcionalidad y funcionará en la versión' básica'