#include <LiquidCrystal_I2C.h>
#include <Wire.h>
//#include "pitches.h"
//#include "ENLanguage.h"
#include "ESLanguage.h"
// LCD
#define LCD_COLS 16 // 16 cols lcd
#define LCD_ROWS 2 // 2 files lcd
LiquidCrystal_I2C lcd(0x27, LCD_COLS, LCD_ROWS);
#define BT_UP 34 // Blue Button
#define BT_DOWN 35 // Yellow Button
#define BT_SEL 32 // Green Button
#define BT_CANCEL 33 // Red Button
#define LED_RED 18
#define LED_GREEN 19
#define PinTone 5
unsigned short timeCalcVar = 0;
short minutes = 1;
short seconds = 30;
short mseconds = 0;
const int interval = 1000;
int blinktime = 1000;
unsigned long previousMillis = 0;
int ledState = LOW;
byte TIMEOUTLCD = 25;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(BT_UP, INPUT_PULLUP);
pinMode(BT_DOWN, INPUT_PULLUP);
pinMode(BT_SEL, INPUT_PULLUP);
pinMode(BT_CANCEL, INPUT_PULLUP);
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, LOW);
byte bar1[8] = {
B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
B10000
};
byte bar2[8] = {
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000
};
byte bar3[8] = {
B11100,
B11100,
B11100,
B11100,
B11100,
B11100,
B11100,
B11100
};
byte bar4[8] = {
B11110,
B11110,
B11110,
B11110,
B11110,
B11110,
B11110,
B11110
};
byte bar5[8] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111
};
byte up[8] = {
B00100,
B01110,
B11111,
B11111,
B00000,
B00000,
B00000,
B00000
};
byte down[8] = {
B00000,
B00000,
B00000,
B00000,
B11111,
B11111,
B01110,
B00100
};
byte right[8] = {
B10000,
B11000,
B11100,
B11110,
B11100,
B11000,
B10000,
B00000
};
lcd.createChar(0, bar1);
lcd.createChar(1, bar2);
lcd.createChar(2, bar3);
lcd.createChar(3, bar4);
lcd.createChar(4, bar5);
lcd.createChar(5, up);
lcd.createChar(6, down);
lcd.createChar(7, right);
}
bool isTime(unsigned short timeCalcVar, unsigned short iTime, unsigned short fTime) {
if (timeCalcVar >= iTime && timeCalcVar <= fTime) {
return true;
}
else {
return false;
}
}
void loop() {
unsigned long currentMillis = millis();
timeCalcVar = (millis()) % blinktime;
if (digitalRead(BT_UP) == LOW) {
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_GREEN, LOW);
}
if (digitalRead(BT_CANCEL) == LOW) {
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, HIGH);
}
//mseconds = random(0, 100);
mseconds = 999;
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
lcd.setCursor(0, 1);
//PrintTime(minutes, seconds, 999);
seconds--;
if (seconds < 0) {
seconds = 59;
minutes--;
}
if (minutes < 0) {
minutes = 59;
}
}
MenuPrincipal();
delay(100);
}