Necesito saber porque dos de mis leds de salida no prenden del todo cuando les doy un valor HIGH, mis otros dos leds de salida si prenden correctamente, les pego mi código, ya que al ser nuevo no me deja adjuntar el código. Gracias
#include <LiquidCrystal.h>
const int rs=13, en=7, d4=11, d5=10, d6=9,d7=8;
LiquidCrystal lcd(rs,en,d4,d5,d6,d7);
#define BUZZER 4
int MotorDer= 6;
int MotorIzq = 5;
int Valvula = 2;
int Bomba = 3;
int Encendido = 1;
int Paro;
int x;
int y;
int z;
void setup() {
lcd.clear();
lcd.begin(16,2);
pinMode(MotorDer, OUTPUT);
pinMode(MotorIzq, OUTPUT);
pinMode(Encendido, INPUT);
pinMode(BUZZER, OUTPUT);
digitalWrite(MotorDer,LOW);
digitalWrite(MotorIzq,LOW);
}
void loop() {
digitalWrite(Valvula, LOW);
digitalWrite(MotorDer, LOW);
digitalWrite(MotorIzq, LOW);
x = digitalRead(Encendido);
y = digitalRead(Paro);
lcd.setCursor(0,0);
lcd.print("Lavadora: Auto");
lcd.setCursor(0,1);
lcd.print("Presiona boton");
delay(1000);
if (x==0) {
digitalWrite(Valvula, LOW);
lcd.clear();
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Estado: Lavado");
lcd.setCursor(0,1);
lcd.print("Llenando...");
digitalWrite(Valvula, HIGH);
delay(5000);
digitalWrite(Valvula, LOW);
delay(3000);
lcd.clear();
lcd.print("Estado: Lavado");
lcd.setCursor(0,1);
lcd.print("Lavando...");
digitalWrite(MotorDer, HIGH);
digitalWrite(MotorIzq, LOW);
delay(10000);
digitalWrite(MotorDer, LOW);
digitalWrite(MotorIzq, LOW);
delay(2000);
lcd.clear();
lcd.print("Estado: Lavado");
lcd.setCursor(0,1);
lcd.print("Vaciando...");
digitalWrite(Bomba,HIGH);
delay(4000);
digitalWrite(Bomba,LOW);
delay(1000);
lcd.clear();
lcd.print("Estado: Enjuague");
lcd.setCursor(0,1);
lcd.print("Llenando...");
digitalWrite(Valvula, HIGH);
delay(5000);
digitalWrite(Valvula, LOW);
delay(2000);
lcd.clear();
lcd.print("Estado: Enjuague");
lcd.setCursor(0,1);
lcd.print("Enjuagando...");
digitalWrite(MotorDer, HIGH);
digitalWrite(MotorIzq, LOW);
delay(8000);
digitalWrite(MotorDer, LOW);
digitalWrite(MotorIzq, LOW);
delay(2000);
lcd.clear();
lcd.print("Estado: Enjuague");
lcd.setCursor(0,1);
lcd.print("Vaciando...");
digitalWrite(Valvula, HIGH);
delay(5000);
digitalWrite(Valvula, LOW);
delay(2000);
lcd.clear();
lcd.print("Estado:Exprimido");
lcd.setCursor(0,1);
lcd.print("Exprimiendo...");
digitalWrite(MotorDer, HIGH);
digitalWrite(MotorIzq, LOW);
delay(3000);
digitalWrite(MotorDer, LOW);
digitalWrite(MotorIzq, HIGH);
delay(3000);
digitalWrite(MotorDer, HIGH);
digitalWrite(MotorIzq, LOW);
delay(3000);
digitalWrite(MotorDer, LOW);
digitalWrite(MotorIzq, HIGH);
delay(3000);
digitalWrite(MotorDer, LOW);
digitalWrite(MotorIzq, LOW);
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Estado: Secado");
lcd.setCursor(0,1);
lcd.print("Secando...");
digitalWrite(MotorDer, HIGH);
digitalWrite(MotorIzq, LOW);
delay(4000);
digitalWrite(MotorDer, LOW);
digitalWrite(MotorIzq, HIGH);
delay(4000);
digitalWrite(MotorDer, HIGH);
digitalWrite(MotorIzq, LOW);
delay(4000);
digitalWrite(MotorDer, LOW);
digitalWrite(MotorIzq, HIGH);
delay(4000);
digitalWrite(MotorDer, LOW);
digitalWrite(MotorIzq, LOW);
delay(2000);
lcd.clear();
lcd.print("Estado:");
lcd.setCursor(0,0);
lcd.print("Ciclo Terminado");
tone(BUZZER,2000,200);
delay(1000);
tone(BUZZER,2000,200);
delay(1000);
tone(BUZZER,2000,200);
delay(3000);
lcd.clear();
digitalWrite(Valvula, LOW);
}
if(x==1){
digitalWrite(MotorDer,LOW);
digitalWrite(MotorIzq,LOW);
digitalWrite(Bomba,LOW);
digitalWrite(Valvula,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Estado:");
lcd.setCursor(0,1);
lcd.print("Detenido...");
delay(1500);
}
}