Buenos dias compañeros me dirijo a ustedes que tienen mucha mas experiencia en programacion y agradezco su colaboración. El detalle es el siguiente :
quiero que cuando se cumpla cada una de las condiciones el pin 4 de la arduino se ponga en alto pero por solo unos segundos y luego se apague y asi para cada una de las condiciones del codigo por favor les agradesco su colaboracion asigno el codigo para que me ayuden
#include <Servo.h>
#include <LiquidCrystal.h>
int Pin = 13; //servo uno llenado
int Pin2 = 12;//srvo dos tanque
int n2 = 9;//sensor bajo
int v2 = 10; //sensor de alto
int v1 = 11;//sensor de calle
int rele_servo = 4;//rele para servo que activa alimentacion de motor
int n1 = 0;
int bajo = 0;
int calle = 0;
int p = 0;
Servo servouno; //salida tanque
Servo servodos; //llena tanqueNombramos al primer servo
LiquidCrystal lcd(23, 25, 27, 29, 31, 33); //4,6,11,12,13,14
//// K negrita
void setup()
{
// // Dibuja la cara sonriente//Configuración
lcd.begin(16, 2);
//lcd.print("-Leyendo Sensor-");
//delay(1);
pinMode(v1, INPUT);
pinMode(v2, INPUT);
pinMode(n2, INPUT);
pinMode(rele_servo, OUTPUT);
servouno.attach(Pin);
servodos.attach(Pin2);
}
void loop()
{
calle = digitalRead(v1);
n1= digitalRead(v2);
bajo=digitalRead(n2);
// luz = digitalRead(s2);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if((calle == HIGH && n1 == LOW && bajo == HIGH)||(calle == HIGH && n1 == LOW && bajo == LOW))// aqui dentro es que quiero que prenda el rele por lo menos 10s para q alimente los motores
pero que lo haga una vez cuando se cupla la condicion osea que no repita el ciclo
{
servouno.write (90);
servodos.write (0);
lcd.setCursor (0,0);
lcd.print("Nivel: ALTO ");
delay(2000);
lcd.setCursor (0,0);
lcd.print("Estado: TANQUE");
}
else if(calle == LOW && n1 == HIGH && bajo == HIGH) // aqui dentro es que quiero que prenda el rele por lo menos 10s para q alimente los motores
pero que lo haga una vez cuando se cupla la condicion osea que no repita el ciclo
{
{
servouno.write (90);
servodos.write (0);
lcd.setCursor(0,0);
lcd.print("Estado:ACUEDUCTO");
delay(2000);
lcd.setCursor (0,0);
lcd.print("Nivel: BAJO ");
}
else if(calle == LOW && n1 == HIGH && bajo == LOW)// aqui dentro es que quiero que prenda el rele por lo menos 10s para q alimente los motores
pero que lo haga una vez cuando se cupla la condicion osea que no repita el ciclo
{
{
servouno.write(90);
servodos.write(90);
lcd.setCursor(0,0);
lcd.print("Estado:ACUEDUCTO");
delay(2000);
lcd.setCursor(0,0);
lcd.print("Nivel: ALTO ");
}else if(calle == HIGH && n1 == HIGH && bajo == LOW)// aqui dentro es que quiero que prenda el rele por lo menos 10s para q alimente los motores
pero que lo haga una vez cuando se cupla la condicion osea que no repita el ciclo
{
{
servouno.write(0);
servodos.write(90);
lcd.setCursor(0,0);
lcd.print("Estado:LLENABOM ");
delay(2000);
lcd.setCursor(0,0);
lcd.print("Nivel: BAJO ");
}
else if (calle == HIGH && n1 == HIGH && bajo == HIGH)// aqui dentro es que quiero que prenda el rele por lo menos 10s para q alimente los motores
pero que lo haga una vez cuando se cupla la condicion osea que no repita el ciclo
{
{
servouno.write(0);
servodos.write(90);
lcd.setCursor(0,0);
lcd.print("Estado:LLENABOM ");
delay(2000);
lcd.setCursor(0,0);
lcd.print("Nivel: BAJO ");
}else{ // aqui dentro es que quiero que prenda el rele por lo menos 10s para q alimente los motores
pero que lo haga una vez cuando se cupla la condicion osea que no repita el ciclo
{
servouno.write(90);
servodos.write(90);
lcd.setCursor(0,0);
lcd.print("Estado:ACUEDUCTO ");
delay(2000);
lcd.setCursor(0,0);
lcd.print("Nivel: ALTO ");
}
}