Paso 3: Tiempo y código
Una vez que tienes el hardware, arduino, circuito RTC, (conductor de relevo, si es necesario) y un relé en lugar haya terminado, excepto el último bit de codificación. Tenemos que decir Arduino a qué hora el relé de arranque y para cuánto tiempo. Encontrar la Biblioteca de Cron de Arduino más adecuadas para ello. Descargue el archivo zip y descomprimirlo en la carpeta de paquete de Arduino. Una vez que la biblioteca que tiene que averiguar cómo desea configurar su ciclo de riego.
Si usted ha calculado cuánto tiempo toma para vaciar su cubo y si sabes cuántos cubos necesitará agua te pueden hacer las matemáticas para calcular hacia fuera cuánto cantidad de tiempo que desee su bomba para ser impulsado (número de cubos * tiempo para vaciar un cubo). Además puede elegir entre agua a la vez o programar durante todo el día. Así que Supongamos que tarda 180 segundos para vaciar un cubo y cubo de 2 es la cantidad total de agua quiero suministrar a mi jardín, tengo que conducir la bomba de 360 seg. Más quiero distribuir este agua no a la vez pero en período de 24 horas. En ese caso mi código tendría este aspecto:
//THIS IS JUST AN EXAMPLE CODE // Do not remove the include below #include "Wire.h" #include "RTClib.h" #include "SwitchOnCommand.h" #include "TimedCommand.h" #include "Cron.h" #include "SwitchOffCommand.h" // I have made the trivial changes in the Switch*Command.h files to prevent them from // writing on Serial Console. // create objects for each command SwitchOnCommand sonCommand; SwitchOffCommand sOffCommand; // I am using pin "9" for relay driver. // The cron command has following sequence : sec.min.hr.day.Mon.year, command, pin // '*' means 'every': which means 10,*,*,*,*,* means 10th second of every minute of // every hour of every day of every month of every year. TimedCommand command1("00.00.00.*.*.*",&sonCommand,"9"); // Turn on the pin 9 at 12AM everyday TimedCommand command2("20.00.00.*.*.*",&sOffCommand,"9");// Turn it off at 12:00:20, everyday TimedCommand command3("00.00.03.*.*.*",&sonCommand,"9");// 3AM in the night for 20 sec TimedCommand command4("20.00.03.*.*.*",&sOffCommand,"9"); TimedCommand command5("00.00.06.*.*.*",&sonCommand,"9"); // 6 AM for 20 sec TimedCommand command6("20.00.06.*.*.*",&sOffCommand,"9"); TimedCommand command7("00.00.08.*.*.*",&sonCommand,"9"); //8 AM for 60 sec TimedCommand command8("60.00.08.*.*.*",&sOffCommand,"9"); TimedCommand command9("00.00.10.*.*.*",&sonCommand,"9"); //10 AM for 30 sec TimedCommand command10("30.00.10.*.*.*",&sOffCommand,"9"); TimedCommand command11("00.00.12.*.*.*",&sonCommand,"9"); TimedCommand command12("30.00.12.*.*.*",&sOffCommand,"9"); TimedCommand command13("00.00.14.*.*.*",&sonCommand,"9"); TimedCommand command14("60.00.14.*.*.*",&sOffCommand,"9"); TimedCommand command15("00.00.16.*.*.*",&sonCommand,"9"); TimedCommand command16("20.00.16.*.*.*",&sOffCommand,"9"); TimedCommand command17("00.00.18.*.*.*",&sonCommand,"9"); TimedCommand command18("60.00.18.*.*.*",&sOffCommand,"9"); TimedCommand command19("00.00.21.*.*.*",&sonCommand,"9"); TimedCommand command20("40.00.21.*.*.*",&sOffCommand,"9"); // create an array of timed commands TimedCommand *tCommands[] = { &command1, &command2, &command3, &command4, &command5, &command6, &command7, &command8, &command9, &command10, &command11, &command12, &command13, &command14, &command15, &command16, &command17, &command18, &command19, &command20 }; // create a cron object and pass it the array of timed commands // and the count of timed commands Cron cron(tCommands,20 ); void setup() { //Serial.begin(9600); // In case you want to see the serial output //Serial.println("Starting ArduinoCronLibrary Example"); // sets the time to be the date and time of the compilation // cron.setTime(DateTime(__DATE__, __TIME__)); pinMode(8, OUTPUT); digitalWrite(8, LOW); // I am using pin 8 for Relay ground. } // The loop function is called in an endless loop void loop() { // the loop function checks if a timed command // is due to be executed and executes if it is cron.loop(); }
Una vez que subes el código que haya terminado. La bomba seguirá el ciclo de programación.
Tenga cuidado cuando opere la transmisión a alta tensión.
Si este tutorial sirve, me avisan!
¡ Saludos!