Hola, quisiera saber si podrian ayudarme a resulver un problema con el codigo que estoy haciendo para un sensor ultrasonico.
Lo esencial que debe realizar es que al presionar el pulsador 1 o sea =(p1) entre en un modo de configuracion donde se establece una distancia minima con (p2) se incrementa esa variable y con (p3) se decrementa. lo he trabajado con una variable bandera que me permite establecer eso para que luego ese bloque de codigo quede inactivo, pero no logro hacer que (p2)(p3) hagan su funcion correctamente. Ya luego que se establece la distancia minima. se lee el sensor para ver si la distancia actual es menor que la minima establecida para dar algun tipo de alerta, aqui les dejo el codigo y la funcion que realiza el trabajo de p2 y p3 debe ir en la funcion que esta vacia y se llama "medicion_distancia"
.
#include <LiquidCrystal.h> // incluimos la libreria
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
#define p1 8
#define p2 9
#define p3 10
int TRIG = 11;
int ECO = 12;
int LED = 13;
int DISTANCIA;
int DISTANCIA2;
int DURACION;
boolean bandera = false;
void setup() {
pinMode(ECO, INPUT);
pinMode(TRIG, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(p1, INPUT);
pinMode(p2, INPUT);
pinMode(p3, INPUT);
Serial.begin(9600);
/*configuracion de las
dimenciones de LCD*/
lcd.begin(16, 2);
delay(2000);
lcd.cursor();
/*pocicisobanos el cursor
en la primera fila y la
primera columna*/
lcd.home();
Serial.begin(9600);
}
int Medicion_distancia() {
}
int Medicion_distancia2() {
digitalWrite(TRIG, HIGH);
delay(1);
digitalWrite(TRIG, LOW);
DURACION = pulseIn(ECO, HIGH);
DISTANCIA2 = DURACION / 58.2;
return DISTANCIA2;
}
void loop() {
if (digitalRead(p1) == HIGH) {
if (digitalRead(p2) == LOW) {
if (digitalRead(p3) == LOW) {
if (bandera == false) {
lcd.setCursor(0, 0);
lcd.print("M.configuracion");
delay(2000);
Medicion_distancia();
Serial.println("YA");
lcd.setCursor(0, 0);
lcd.print(DISTANCIA);
bandera = true;
}
}
}
}
DISTANCIA2 = Medicion_distancia2();
if (DISTANCIA < DISTANCIA2) {
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
}
}