/* -----------------------------------------------------------------
------------------------- 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
}
#include "mylib.h" //Se incluye la libreria que se creo del sensor ultrasonico
/* -----------------------------------------------------------------
---------------- Declaracion de Variables y constantes -------------
----------------------------------------------------------------- */
#define PIN_TRIG 4 //Se declara el pin 4 como el TRIG
#define PIN_ECHO 5 //Se declara el pin 5 como el ECHO
#define PIN_L1 18 //Se declara el pin 18 como el led1
#define PIN_L2 19 //Se declara el pin 19 como el led2
float distancia; //Se crea una variable que utiliza decimales
/* -----------------------------------------------------------------
------------------------- Configuracion Arduino --------------------
----------------------------------------------------------------- */
void setup() {
Serial.begin(9600); //Se inicializa comunicacion serial
pinMode(PIN_TRIG, OUTPUT); //Se declara el como salida
pinMode(PIN_ECHO, INPUT); //Se declara como entrada
pinMode(PIN_L1, OUTPUT); //Se declara el como salida
pinMode(PIN_L2, OUTPUT); //Se declara el como salida
}
/* -----------------------------------------------------------------
---------------------------- Codigo Principal ----------------------
----------------------------------------------------------------- */
void loop() {
distancia = getDistancia(PIN_TRIG, PIN_ECHO); //Se llama la fucnion que se creo en la libreria y se iguala a la variable distancia
Serial << "distancia: " << distancia << "cm" << "\n";
//Se imprime en el monitor serie la distancia
if(Serial.available()){ //Este condicional da encendido a los leds segun el numero que se escriba en el montior serie
int value;
value = Serial.parseInt();
binLed(value, PIN_L1, PIN_L2);
}
delay(1000);
}
/* -----------------------------------------------------------------
-------------------------------- Funciones -------------------------
----------------------------------------------------------------- */