template<class T> inline Print &operator <<(Print &obj, T arg) {
obj.print(arg);
return obj;
}
#include <Ticker.h>
Ticker cambiarLed;
#if defined(ESP8266)
int led = LED_BUILTIN;
#elif defined(ESP32)
int led = 12;
int button1 = 35;
int button2 = 34;
#endif
boolean estado = false;
void FuncionLed() {
estado = !estado;
digitalWrite(led, estado ? HIGH : LOW);
Serial << "Estado led: " << (estado ? "Encendido" : "Apagado") << "\n";
/*
estado = variable a combrobar (solo puede ser true or false)
? = Separa la variable a colocar de las acciones en caso de True o False
"Encendido" = Es lo que hace en caso de que sea True.
"Apagado" = Es lo que hace en caso de que sea False.
: = Los dos puntos separan la accion del True y del False.
*/
}
void setup() {
Serial.begin(115200);
pinMode(led, OUTPUT);
pinMode(button1, INPUT);
digitalWrite(led, LOW);
cambiarLed.attach_ms(250, FuncionLed);
}
void loop() {
if(digitalRead(button1)== HIGH) {
cambiarLed.detach(); // Detiene proceso de la temporizacion
}
if(digitalRead(button2)== HIGH) {
cambiarLed.attach_ms(250, FuncionLed); // Inicia de nuevo la temporizacion
//cambiarLed.attach_ms(250, FuncionLed, 5) El 5 indica un parametro que se le
//pasaria a FuncionLed cuando se llame.
//cambiarLed.once_ms(1500, FuncionLed) La funcion solo se ejecuta una sola vez
//cuando pasa el tiempo. Tambien se le podría pasar un valor a la funcion.
}
}