/* -----------------------------------------------------------------
------------------------- Codigo MultiHardWare ---------------------
----------------------------------------------------------------- */
#if defined(ESP8266)
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
ESP8266WiFiMulti wifiMulti;
#pragma message "Codigo para Arduino ESP8266!"
#elif defined(ESP32)
#include <WiFi.h>
#include <WiFiMulti.h>
WiFiMulti wifiMulti;
#pragma message "Codigo para Arduino 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;
}
/* -----------------------------------------------------------------
---------------- Declaracion de Variables y constantes -------------
----------------------------------------------------------------- */
#define PINLED 13 //Asociamos la variable del PINLED al pin #13
int luminosidad, tiempo; //Variables que almacenaran el valor que ingrese el usuario
/* -----------------------------------------------------------------
------------------------- Configuracion Arduino --------------------
----------------------------------------------------------------- */
void setup() {
Serial.begin(9600); //Iniciamos la comunicacion serial
pinMode(PINLED, OUTPUT); //Configuramos el pin del led como una salida
digitalWrite(PINLED, LOW); //al iniciar el programa esta variable estara en estado bajo(apagado)
delay(100);
}
/* -----------------------------------------------------------------
---------------------------- Codigo Principal ----------------------
----------------------------------------------------------------- */
void loop() {
//Se mostrara un mensaje para el usuario de lo que debe poner en el puerto serial
Serial.println("Por favor ingrese el valor de la luminosidad(0-255) y acontinuacion el tiempo en segundos (1-10) ");
//Tambien se le mostrara en pantalla un ejemplo como indicaciones al usuario
Serial.println("Ejemplo: 180,3(180 de luminosidad y 3 segundos de tiempo)");
while(Serial.available() !=1){ //Espera a que haya datos disponibles en el puerto serial
}
luminosidad = Serial.parseInt(); //En la variable luminosidad, va a guardar el valor entero que se ingrese en el puerto serial
tiempo = Serial.parseInt(); //En la variable tiempo, va a guardar el valor entero que se ingrese en el puerto serial
Serial << "luminosidad: " <<luminosidad << "\n" << "time:" << "\n\n"; //Imprime en pantalla al usuario los valores almacenados en estas variables
analogWrite(PINLED, luminosidad);//Manda una señal analogica al pin donde conecta el Led, segun el valor de la luminosidad, asi enciende el led
delay(tiempo*1000);//Retardo que tiene el led encendido segun el tiempo ingreado
analogWrite(PINLED, 0);//Al acabar el tiempo el led se vuelve apagar
luminosidad = 0; //Se reinician las variables quedando en 0
tiempo = 0; //Se reinician las variables quedando en 0
}
/* -----------------------------------------------------------------
-------------------------------- Funciones -------------------------
------------------------------------------------------------------*/