/* -----------------------------------------------------------------
------------------------- Codigo MultiHardWare ---------------------
----------------------------------------------------------------- */
#if defined(ESP8266) //configuracion del tipo de placa en que se esta trabajando
#include <ESP8266WiFi.h> //si la placa es esp8266
#include <ESP8266WiFiMulti.h> //configuracion wifi
ESP8266WiFiMulti wifiMulti;
#pragma message "Codigo para ESP8266!"
#elif defined(ESP32) //si la placa es una esp32
#include <WiFi.h> //configuracion wifi
#include <WiFiMulti.h>
WiFiMulti wifiMulti;
#pragma message "Codigo para ESP32!"
#elif defined(ARDUINO) //si la placa es 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) {//configuracion con base al signo << para generar un serial println con menos lineas de codigo
obj.print(arg);
return obj;
}
/* -----------------------------------------------------------------
---------------- Declaracion de Variables y constantes -------------
----------------------------------------------------------------- */
#define PIN_LED 4 //definir pines de comunicacion
int luminosidad ,tiempo; //definir varibles
/* -----------------------------------------------------------------
------------------------- Configuracion Arduino --------------------
----------------------------------------------------------------- */
void setup() {
Serial.begin(9600);//comunicacion serial
pinMode(PIN_LED, OUTPUT);//definir puerto de pin_led como salida
digitalWrite(PIN_LED,LOW);//definir pin como en estado
delay(100);//retardo de 100 milisegundos
}
/* -----------------------------------------------------------------
---------------------------- Codigo Principal ----------------------
----------------------------------------------------------------- */
void loop() {
Serial.println("ingresar valor de luminosidad(0-255) seguido el tiempo en segundos (1-10)");//punto de interaccion con la maquina elegir el nivel de luminosidad
Serial.println("ejemplo: 180,3(180 luminosidad y 3 segundos de tiempo)");
while(Serial.available()!=1){ //mientras no hay datos disponibles aparecera el monitor serial en blanco
}
luminosidad=Serial.parseInt();//valores numericos de luminosidad se agrgaran a la variable de luminosidad
tiempo=Serial.parseInt();
Serial<<"luminosidad: "<< luminosidad <<"\n"<< "time"<< tiempo <<"\n\n";//impresion de luminosidad y valornumerico de tiempo escrito anteriormente
analogWrite(PIN_LED,luminosidad);//los valores de luminosidad se les aplicara a la intensidad del led
delay(1000*tiempo);
analogWrite(PIN_LED,0);//el pin_led tendra iluminacion 0
luminosidad=0;
tiempo=0;
}
/* -----------------------------------------------------------------
-------------------------------- Funciones -------------------------
----------------------------------------------------------------- */