# arduino-ovo ovo.h aims to make uninterrupted main loop possible for your program on any arduino board. ## Functions Spec --------------- ### setTimeout() #### Params: - **auto function** Your function. `Lambda Expression is allowed!` - **int delay** Time to delay in milliseconds. --------------- ### setInterval() #### Params: - **auto function** Your function. `Lambda Expression is allowed!` - **int delay** Time for every interval in milliseconds. ----------------------- #### Arduino Official Blinker Example ````C++ // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } ```` #### OvO Example ````C++ #include "ovo.h" // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { setTimeout([]{setInterval([]{digitalWrite(LED_BUILTIN,HIGH);}, 2000);},1000); setInterval([]{digitalWrite(LED_BUILTIN,LOW);}, 2000); } ```` ------------------- ### setSwitch() This function help you switch function as planned in main loop. #### Params: - **auto function1** Your first function. `Lambda Expression is allowed!` - **auto function2** Your second function. `Lambda Expression is allowed!` - **int delay1** Time for every interval in milliseconds for function1. - **int delay2** Time for every interval in milliseconds for function2. #### Example for Blinker ````C++ #include "ovo.h" // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { setSwitch([]{digitalWrite(LED_BUILTIN,HIGH);}, []{digitalWrite(LED_BUILTIN,LOW);}, 1000, 1000); } ```` ------------------- ## Class slowWrite Use this class to make a rough voltage change slower. ### slowWrite.set() Use this function to set the pin and delay info. #### Params: - **int pin** Here is your pin number. - **int delay** How slow you want a voltage change from 0 to 1 in milliseconds. ------------------------------------------------------- ### slowWrite.run() - Put this in your main loop. ------------------------------------------------------- ### slowWrite.high() - To change the pin voltage from 0 to 1. ---------------------- ### slowWrite.low() - To change the pin voltage from 1 to 0. ---------------------- #### Example ````C++ #include "ovo.h" slowWrite m; //Must before setup() // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { m.set(LED_BUILTIN, 2000); //The objected pin is LED_BUILTIN, every voltage change takes 2 sec //The led will on and off for every 3 sec setTimeout([]{setInterval([]{m.high();}, 6000);},3000); setInterval([]{m.low();}, 6000); m.run(); //This must be put here } ```` --------------------------------