/* -----------------------------------------------------------------
------------------------- Codigo MultiHardWare ---------------------
----------------------------------------------------------------- */
#if defined(ESP8266) //Condicional si se conecta una placa ESP8266
#include <ESP8266WiFi.h> //Se agrega las librerias de la placa ESP8266
#include <ESP8266WiFiMulti.h> //Se agrega las librerias de la placa ESP8266 para el Wifi
ESP8266WiFiMulti wifiMulti;
#pragma message "Codigo para ESP8266!" //Si se detecta que es la placa ESP8266 que muestre ese mensaje
#elif defined(ESP32) //Condicional si se conecta una placa ESP32
#include <WiFi.h> //Se agrega las librerias de la placa ESP32
#include <WiFiMulti.h> //Se agrega las librerias de la placa ESP22 para el Wifi
WiFiMulti wifiMulti;
#pragma message "Codigo para ESP32!" //Si se detecta que es la placa ESP32 que muestre ese mensaje
#elif defined(ARDUINO) //Condicional si se conecta una placa de arduino
#pragma message "Codigo para Arduino basado AVR (UNO, MEGA, etc)!" //Que muestre que placa se conecto
#else //Si no se conecto ninguno de los anteriores
#pragma message "No es ni ESP32 o ES8266 o AVR, que es?" //Enseña este mensaje
#endif //Fin del condicional
/* -----------------------------------------------------------------
-------------------------- Librerias y Objetos ---------------------
----------------------------------------------------------------- */
template<class T> inline Print &operator <<(Print &obj, T arg) {
obj.print(arg);
return obj;
//Estas dos lineas es para escribir un mensaje en una sola linea de programacion con varios valores o letras
}
//Se inclue la libreria Ticker
#include <Ticker.h>
Ticker tic_led;
/* -----------------------------------------------------------------
---------------- Declaracion de Variables y constantes -------------
----------------------------------------------------------------- */
//Se define el pin 2 como el led
#define PIN_LED 2
//Se agrega una variable que solo es verdadera o falsa
boolean estado;
/* -----------------------------------------------------------------
------------------------- Configuracion Arduino --------------------
----------------------------------------------------------------- */
void setup() {
//Se inicia la comunicacion serial
Serial.begin(9600);
//Se declara la variable como falsa desde el inicio
estado = false;
//Se declara el led como salida y el estado del led va ser apagado gracias a la variable Estado
pinMode(PIN_LED, OUTPUT);
digitalWrite(PIN_LED, estado);
//Con esta funcion el led parpadea cuando se da 1 en el monitor serie
tic_led.attach(1, parpadeoLed);
}
/* -----------------------------------------------------------------
---------------------------- Codigo Principal ----------------------
----------------------------------------------------------------- */
void loop() {
//Con este condicional cuando se escriba en el monitor serie el numero 1 el led va a encender
// y a comenzar a parpadear y cuando se escriba 0 se apagara
if(Serial.available() == 1){
char input = Serial.read();
if(input == '0'){
tic_led.detach();
}
}
}
/* -----------------------------------------------------------------
-------------------------------- Funciones -------------------------
----------------------------------------------------------------- */
//Si inicializa el led con la variable estado, la cual se definio que va ser falsa y el led estara apagado
void parpadeoLed(){
digitalWrite(PIN_LED, estado);
estado = !estado;
}