///Este proyecto es para Microhondas///
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
byte uno[] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111
};
byte dos[] = {
B00010,
B00011,
B00010,
B00010,
B00010,
B01110,
B11110,
B10010
};
//BOTONES//
int INICIAR = 2;
int PAUSAR = 3;
int MINUTOS = 4;
int SEGUNDOS = 5;
//LEDS//
int SEGUNDOS10 = 6;
int SEGUNDOS20 = 7;
int SEGUNDOS30 = 8;
int MINUTO1 = 9;
int MINUTOS2 = 10;
int MINUTOS5 = 11;
int MINUTOS10 = 12;
int TRABAJANDO = 13;
float ValorSegundos = 0;
float valorMinutos = 0;
float Tiempo = 0;
#define SEGUNDO (1000)
#define MINUTO (60000UL)//esto equivale a un minuto
int pausa = 500;
int letras = 10;//velocidad de las letras
void setup() {
pinMode(INICIAR, INPUT);//se declara como entrada
pinMode(PAUSAR, INPUT);//se declara como entrada
pinMode(SEGUNDOS, INPUT);//se declara como entrada
pinMode(MINUTOS, INPUT);//se declara como entrada
pinMode(SEGUNDOS10, OUTPUT);//se declara como salida
pinMode(SEGUNDOS20, OUTPUT);//se declara como salida
pinMode(SEGUNDOS30, OUTPUT);//se declara como salida
pinMode(MINUTO1, OUTPUT);//se declara como salida
pinMode(MINUTOS2, OUTPUT);//se declara como salida
pinMode(MINUTOS5, OUTPUT);//se declara como salida
pinMode(MINUTOS10, OUTPUT);//se declara como salida
pinMode(TRABAJANDO, OUTPUT);//se declara como salida
lcd.begin(16, 2);//inicia la pantalla
lcd.createChar(1, uno);
lcd.createChar(2, dos);
lcd.backlight();//enciende la pantalla
lcd.setCursor(3,0);
//=============================================================================//
String message = "BIENVENIDO";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message.length(); i++) { //
lcd.print(message[i]); //
delay(letras); //
} //
//============================================================================//
lcd.setCursor(0,1);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
lcd.write(2);
delay(letras);
delay(500);
lcd.clear();
lcd.setCursor(1,0);
//===============================================================================//
String message1 = "ELIGE TIEMPO Y";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message1.length(); i++) { //
lcd.print(message1[i]); //
delay(letras); //
} //
//=============================================================================//
lcd.setCursor(0,1);
//=================================================================================//
String message2 = "PRESIONA INICIAR";//escribe este mensages de una letra a la vez //
for (byte i = 0; i < message2.length(); i++) { //
lcd.print(message2[i]); //
delay(letras); //
} //
//===============================================================================//
}
void loop() {
//////////////////////////////////////
///////ARRANQUE DEL MICROHONDAS///////
//////////////////////////////////////
//SEGUNDOS//
if(digitalRead(SEGUNDOS) == HIGH){
valorMinutos = 0;
digitalWrite(MINUTO1, LOW);
digitalWrite(MINUTOS2, LOW);
digitalWrite(MINUTOS5, LOW);
digitalWrite(MINUTOS10, LOW);
ValorSegundos = ValorSegundos+10;
if(ValorSegundos == 10){
digitalWrite(SEGUNDOS10, HIGH);
digitalWrite(SEGUNDOS30, LOW);
lcd.clear();
lcd.setCursor(2,0);
String message3 = "10 Segundos";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message3.length(); i++) {
lcd.print(message3[i]);
delay(letras);
}
lcd.setCursor(0,1);
String message4 = "PRESIONA INICIAR";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message4.length(); i++) {
lcd.print(message4[i]);
delay(letras);
}
}
if(ValorSegundos == 20){
digitalWrite(SEGUNDOS10, LOW);
digitalWrite(SEGUNDOS20, HIGH);
lcd.clear();
lcd.setCursor(2,0);
String message5 = "20 Segundos";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message5.length(); i++) {
lcd.print(message5[i]);
delay(letras);
}
lcd.setCursor(0,1);
String message6 = "PRESIONA INICIAR";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message6.length(); i++) {
lcd.print(message6[i]);
delay(letras);
}
}
if(ValorSegundos == 30){
digitalWrite(SEGUNDOS20, LOW);
digitalWrite(SEGUNDOS30, HIGH);
lcd.clear();
lcd.setCursor(2,0);
String message7 = "30 Segundos";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message7.length(); i++) {
lcd.print(message7[i]);
delay(letras);
}
lcd.setCursor(0,1);
String message8 = "PRESIONA INICIAR";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message8.length(); i++) {
lcd.print(message8[i]);
delay(letras);
}
}
if(ValorSegundos == 40){
ValorSegundos = 10;
digitalWrite(SEGUNDOS10, HIGH);
digitalWrite(SEGUNDOS30, LOW);
lcd.clear();
lcd.setCursor(2,0);
String message9 = "10 Segundos";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message9.length(); i++) {
lcd.print(message9[i]);
delay(letras);
}
lcd.setCursor(0,1);
String message10 = "PRESIONA INICIAR";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message10.length(); i++) {
lcd.print(message10[i]);
delay(letras);
}
}
Tiempo = SEGUNDO*ValorSegundos;
delay(pausa);
}
//MINUTOS//
if(digitalRead(MINUTOS) == HIGH){
ValorSegundos = 0;
digitalWrite(SEGUNDOS10, LOW);
digitalWrite(SEGUNDOS20, LOW);
digitalWrite(SEGUNDOS30, LOW);
valorMinutos = valorMinutos+1;
if(valorMinutos == 1){
digitalWrite(MINUTO1, HIGH);
digitalWrite(MINUTOS10, LOW);
lcd.clear();
lcd.setCursor(4,0);
String message11 = "1 Minuto";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message11.length(); i++) {
lcd.print(message11[i]);
delay(letras);
}
lcd.setCursor(0,1);
String message12 = "PRESIONA INICIAR";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message12.length(); i++) {
lcd.print(message12[i]);
delay(letras);
}
}
if(valorMinutos == 2){
digitalWrite(MINUTO1, LOW);
digitalWrite(MINUTOS2, HIGH);
lcd.clear();
lcd.setCursor(3,0);
String message13 = "2 Minutos";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message13.length(); i++) {
lcd.print(message13[i]);
delay(letras);
}
lcd.setCursor(0,1);
String message14 = "PRESIONA INICIAR";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message14.length(); i++) {
lcd.print(message14[i]);
delay(letras);
}
}
if(valorMinutos == 3){
digitalWrite(MINUTOS2, LOW);
digitalWrite(MINUTOS5, HIGH);
lcd.clear();
lcd.setCursor(3,0);
String message15 = "5 Minutos";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message15.length(); i++) {
lcd.print(message15[i]);
delay(letras);
}
lcd.setCursor(0,1);
String message16 = "PRESIONA INICIAR";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message16.length(); i++) {
lcd.print(message16[i]);
delay(letras);
}
}
if(valorMinutos == 4){
digitalWrite(MINUTOS5, LOW);
digitalWrite(MINUTOS10, HIGH);
lcd.clear();
lcd.setCursor(3,0);
String message17 = "10 Minutos";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message17.length(); i++) {
lcd.print(message17[i]);
delay(letras);
}
lcd.setCursor(0,1);
String message18 = "PRESIONA INICIAR";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message18.length(); i++) {
lcd.print(message18[i]);
delay(letras);
}
}
if(valorMinutos == 5){
valorMinutos = 1;
digitalWrite(MINUTO1, HIGH);
digitalWrite(MINUTOS10, LOW);
lcd.clear();
lcd.setCursor(4,0);
String message19 = "1 Minuto";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message19.length(); i++) {
lcd.print(message19[i]);
delay(letras);
}
lcd.setCursor(0,1);
String message20 = "PRESIONA INICIAR";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message20.length(); i++) {
lcd.print(message20[i]);
delay(letras);
}
}
Tiempo = MINUTO*valorMinutos;
delay(pausa);
}
if((ValorSegundos) || (valorMinutos) > 0){
if(digitalRead(INICIAR) == HIGH){
digitalWrite(TRABAJANDO, HIGH);
lcd.clear();
lcd.setCursor(3,1);
String message21 = "TRABAJANDO";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message21.length(); i++) {
lcd.print(message21[i]);
delay(letras);
}
delay(Tiempo);
digitalWrite(TRABAJANDO, LOW);
ValorSegundos = 0;
digitalWrite(SEGUNDOS10, LOW);
digitalWrite(SEGUNDOS20, LOW);
digitalWrite(SEGUNDOS30, LOW);
valorMinutos = 0;
digitalWrite(MINUTO1, LOW);
digitalWrite(MINUTOS2, LOW);
digitalWrite(MINUTOS5, LOW);
digitalWrite(MINUTOS10, LOW);
lcd.clear();
lcd.setCursor(2,0);
String message22 = "HA TERMINADO";//escribe este mensages de una letra a la vez
for (byte i = 0; i < message22.length(); i++) {
lcd.print(message22[i]);
delay(letras);
}
delay(pausa);
}
}
}
Segundos
Minutos
Pausar
Cancelar
Iniciar
10
5
2
1
30
20
10
Minutos
Segundos
Trabajando