/* -----------------------------------------------------------------
------------------------- Codigo MultiHardWare ---------------------
----------------------------------------------------------------- */
#if defined(ESP8266)
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
ESP8266WiFiMulti wifiMulti;
#pragma message "Codigo para ESP8266!"
#elif defined(ESP32)
#include <WiFi.h>
#include <WiFiMulti.h>
WiFiMulti wifiMulti;
#pragma message "Codigo para ESP32!"
#elif defined(ARDUINO)
#pragma message "Codigo para Arduino basado AVR (UNO, MEGA, etc)!"
#else
#pragma message "No es ni ESP32 o ES8266 o AVR, que es?"
#endif
/* -----------------------------------------------------------------
-------------------------- Librerias y Objetos ---------------------
----------------------------------------------------------------- */
template<class T> inline Print &operator <<(Print &obj, T arg) {
obj.print(arg);
return obj;
}
#include <Ticker.h> //Se incluye la libreria.
Ticker tic_led;
/* -----------------------------------------------------------------
---------------- Declaracion de Variables y constantes -------------
----------------------------------------------------------------- */
#define PIN_LED 2 //Se declara el pin del led
boolean estado; //se declara una variable de tipo booleana para estado
/* -----------------------------------------------------------------
------------------------- Configuracion Arduino --------------------
----------------------------------------------------------------- */
void setup() {
Serial.begin(9600); //Se inica el monitor serial.
estado = false; //estado = 0
pinMode(PIN_LED, OUTPUT); //Se declara el led como salida.
digitalWrite(PIN_LED,estado); //Se le indica al led encender o apagar segun la variable "estado"
tic_led.attach(1, parpadeoLed);
}
/* -----------------------------------------------------------------
---------------------------- Codigo Principal ----------------------
----------------------------------------------------------------- */
void loop() {
if (Serial.available() == 1){ //Si existe algun registro...
char input = Serial.read(); //Tomar el valor en tipo char de el monitor serial.
if(input == '0'){ //Si se ingresa un '0'...
tic_led.detach(); //Desvincular temporizador (No ejecutar la acción)
}
}
}
/* -----------------------------------------------------------------
-------------------------------- Funciones -------------------------
----------------------------------------------------------------- */
void parpadeoLed(){
digitalWrite(PIN_LED, estado); //Se le indica al led encender o apagar segun la variable "estado"
estado = !estado; //Se reinicia el estado.
}