#include <LiquidCrystal.h>
const int s1=14;
const int s2=15;
const int s3=16;
const int s4=17;
const int s5=18;
const int s6=19;
const int motor=20;
const int Bp=6;
const int Bi=5;
const int Alexa=4;
const int bocina=3;
int error_s2=0;
int error_s4=0;
int error_s6=0;
int frecuencia = 220;
LiquidCrystal lcd(12,11,10,9,8,7);
uint8_t Tinaco_lleno[] = {
0b01110,
0b01110,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111
};
uint8_t Tinaco_a_medias[] = {
0b01110,
0b01010,
0b11011,
0b10001,
0b10001,
0b11111,
0b11111,
0b11111
};
uint8_t Tinaco_vacio[] = {
0b01110,
0b01010,
0b11011,
0b10001,
0b10001,
0b10001,
0b10001,
0b11111
};
uint8_t sensor_apagado[] = {
0b01110,
0b10001,
0b10001,
0b10001,
0b10001,
0b10001,
0b10001,
0b01110
};
uint8_t sensor_prendido[] = {
0b01110,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b01110
};
byte sensor_danado [] = {
0B00000,
0B10101,
0B01010,
0B10101,
0B10101,
0B01010,
0B10101,
0B00000
};
byte aljiber_vacio[] = {
0B10001,
0B10001,
0B10001,
0B10001,
0B10001,
0B10001,
0B10001,
0B11111
};
byte reserva[] = {
0B10001,
0B10001,
0B10001,
0B10001,
0B10001,
0B10001,
0B11111,
0B11111
};
byte aljiber_a_medias[] = {
0B10001,
0B10001,
0B10001,
0B11111,
0B11111,
0B11111,
0B11111,
0B11111
};
byte aljiber_lleno[] = {
0B11111,
0B11111,
0B11111,
0B11111,
0B11111,
0B11111,
0B11111,
0B11111
};
void setup() {
//PANTALLA DE CARGA
lcd.begin(20,4);
lcd.setCursor(2,0);
lcd.print("Proyecto progracion");
lcd.setCursor(2,1);
lcd.print("Llenado de tinaco");
delay(2000);
lcd.clear();
//PANTALLA DE PRESENTACION DE LA MATERIA Y NOMBRE DEL PROFE
lcd.begin(20,4);
lcd.setCursor(0,0);
lcd.print("PROGRAMACION");
lcd.setCursor(0,1);
lcd.print("Tutor");
lcd.setCursor(0,2);
lcd.print("Dante Galvez Reyes");
lcd.setCursor(0,3);
lcd.print("Proyecto final");
delay(2000);
lcd.clear();
//primer pantalla
lcd.begin(20,4);
lcd.setCursor(0,0);
lcd.print("Josue Arredondo");
lcd.setCursor(0,1);
lcd.print("up220558");
lcd.setCursor(0,2);
lcd.print("Jose de Jesus Serna");
lcd.setCursor(0,3);
lcd.print("UP220107");
delay(2000);
lcd.clear();
//segudna pantalla
lcd.begin(20,4);
lcd.setCursor(0,0);
lcd.print("Emanuel Villagran");
lcd.setCursor(0,1);
lcd.print("UP220522");
lcd.setCursor(0,2);
lcd.print("Juan Pablo Montes");
lcd.setCursor(0,3);
lcd.print("UP220712");
delay(2000);
lcd.clear();
//tercer pantalla con nombres
lcd.begin(20,4);
lcd.setCursor(0,0);
lcd.print("Miguel Becerra");
lcd.setCursor(0,1);
lcd.print("UP220572");
lcd.setCursor(0,2);
lcd.print(" Emilio Zamudio");
lcd.setCursor(0,3);
lcd.print("UP220524");
delay(2000);
lcd.clear();
//Cuarta pantalla con nombres
lcd.setCursor(0,2);
lcd.print("IMA02A");
lcd.setCursor(0,3);
lcd.print("");
delay(2000);
lcd.clear();
//lcd.createChar(1, Tinaco_vacio);
//lcd.createChar(2, Tinaco_a_medias);
//lcd.createChar(3, Tinaco_lleno);
lcd.createChar(4, sensor_apagado);
lcd.createChar(5, sensor_prendido);
lcd.createChar(6, sensor_danado);
//lcd.createChar(7, aljiber_vacio);
//lcd.createChar(8, reserva);
//lcd.createChar(9, aljiber_a_medias);
//lcd.createChar(10, aljiber_lleno);
lcd.begin(20, 4);
lcd.setCursor(3, 0);
lcd.print("Deteccion de llenado");
lcd.clear();
pinMode(s1, INPUT_PULLUP);
pinMode(s2, INPUT_PULLUP);
pinMode(s3, INPUT_PULLUP);
pinMode(s4, INPUT_PULLUP);
pinMode(s5, INPUT_PULLUP);
pinMode(s6, INPUT_PULLUP);
pinMode(Bp, INPUT_PULLUP);
pinMode(Bi, INPUT_PULLUP);
pinMode(Alexa, INPUT_PULLUP);
pinMode(motor, OUTPUT);
pinMode(bocina, OUTPUT);
}
void loop() {
lcd.setCursor(2,0);
lcd.print("Estado de llenado");
delay(4000);
lcd.setCursor(1, 3);
lcd.print("S1");
if (digitalRead(s1)==true)
lcd.print("\5");
else
lcd.print("\4");
lcd.print("S2");
if (digitalRead(s2)==true)
lcd.print("\5");
else
lcd.print("\4");
lcd.print("S3");
if (digitalRead(s3)==true)
lcd.print("\5");
else
lcd.print("\4");
lcd.print("S4");
if (digitalRead(s4)==true)
lcd.print("\5");
else
lcd.print("\4");
lcd.print("S5");
if (digitalRead(s5)==true)
lcd.print("\5");
else
lcd.print("\4");
lcd.print("S6");
if (digitalRead(s6)==true)
lcd.print("\5");
else
lcd.print("\4");
delay(1000);
digitalWrite(motor,(digitalRead(s5)&&digitalRead(s6)&&digitalRead(Bp)&&!digitalRead(s3)&&(!digitalRead(s1)&&(digitalRead(Bi)||digitalRead(Alexa))||(digitalRead(s2)&&(digitalRead(motor)||!digitalRead(s4)||digitalRead(Bi)||digitalRead(Alexa)||digitalRead(s1)))||digitalRead(motor))));
if(digitalRead(s3)&&!(digitalRead(s4)))
{
lcd.setCursor(12, 3);
lcd.print("\6");
delay(500);
tone (bocina,frecuencia); // inicia el zumbido
delay(2000);
noTone(bocina); // lo detiene a los dos segundos
delay(1000);
error_s4=1;
}
else
error_s4=0;
if(digitalRead(s1)&&!(digitalRead(s2)))
{
lcd.setCursor(6, 3);
lcd.print("\6");
delay(500);
tone(bocina,frecuencia); // inicia el zumbido
delay(2000);
noTone(bocina); // lo detiene a los dos segundos
delay(1000);
error_s2=1;
}
else
error_s2=0;
if((!digitalRead(s6)&&(!digitalRead(s1)&&digitalRead(s2)||digitalRead(s1)))||(digitalRead(s6)&&digitalRead(s1)&&!digitalRead(s2)))
{
lcd.setCursor(18, 3);
lcd.print("\6");
delay(500);
tone(bocina,frecuencia); // inicia el zumbido
delay(2000);
noTone(bocina); // lo detiene a los dos segundos
delay(1000);
error_s6=1;
}
else
error_s6=0;
lcd.setCursor(2, 2);
lcd.print("BP");
if (digitalRead(Bp)==true)
lcd.print("\5");
else
lcd.print("\4");
lcd.print("BI");
if (digitalRead(Bi)==true)
lcd.print("\5");
else
lcd.print("\4");
lcd.print("Alexa");
if (digitalRead(Alexa)==true)
lcd.print("\5");
else
lcd.print("\4");
lcd.setCursor(1, 1);
lcd.print("T\1A\2");
if (!digitalRead(s3)&&!digitalRead(s4))
lcd.createChar(1, Tinaco_vacio);
//lcd.print("\1");
if (!digitalRead(s3)&&digitalRead(s4))
lcd.createChar(1, Tinaco_a_medias);
//lcd.print("\2");
if (digitalRead(s3)&&digitalRead(s4))
tone(bocina,frecuencia);
delay(2000);
noTone(bocina); // lo detiene a los dos segundos
delay(500);
lcd.createChar(1, Tinaco_lleno);
//lcd.print("\3");
if (digitalRead(s3)&&!digitalRead(s4))
lcd.createChar(1, Tinaco_vacio);
//lcd.print(" ");
lcd.print("A");
if (!digitalRead(s1)&&!digitalRead(s2)&&!digitalRead(s6))
lcd.createChar(2, aljiber_vacio);
//lcd.print("\7");
if (!digitalRead(s1)&&!digitalRead(s2)&&digitalRead(s6))
lcd.createChar(2, reserva);
//lcd.print("\8");
if (!digitalRead(s1)&&digitalRead(s2)&&digitalRead(s6))
lcd.createChar(2, aljiber_a_medias);
//lcd.print("\9");
if (digitalRead(s1)&&digitalRead(s2)&&digitalRead(s6))
lcd.createChar(2, aljiber_lleno);
//lcd.print("\10");
}