#include <EEPROM.h>
#include "HX711.h"
HX711 balanza;
//16x2 LCD
#include <LiquidCrystal_I2C.h> //SDA = A4, SCL = A5
LiquidCrystal_I2C lcd(0x27, 16, 2);
unsigned long tiempoactual = 0;
unsigned long tiempoactual2 = 0;
unsigned long tiempoactual3 = 0;
long mitiempo;
long inicio;
long final;
int lecturaboton_old = 1;
int hour = 14;
int minute = 28;
int second = 1;
long peso = 0;
//int encendido[] = {14, 28, 30};
//int apagado[] = {14, 29, 10};
void setup() {
Serial.begin(9600);
balanza.begin(A1, A0);
//------------------------------------------------------
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.clear();
//------------------------------------------------------
pinMode(A3, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, INPUT_PULLUP);
//inicio = encendido[0]*100000 + encendido[1]*1000 + encendido[2]*10;
//final = apagado[0]*100000 + apagado[1]*1000 + apagado[2]*10;
}
void loop() {
//pesar();
int lecturaboton = digitalRead(13);
if(lecturaboton != lecturaboton_old){
if(lecturaboton == 0){
int lecturaled13 = digitalRead(12);
digitalWrite(12, !lecturaled13);
}
}
lecturaboton_old = lecturaboton;
//if(millis() >= tiempoactual + 1000) Lógica que genera error
if(millis() - tiempoactual > 1000){
tiempoactual = millis();
tiempo();
//pesar();
}
if(millis() - tiempoactual2 > 50){
tiempoactual2 = millis();
parpadeo();
}
if(millis() - tiempoactual3 > 10){
tiempoactual3 = millis();
pesar();
}
//mitiempo = hour*100000 + minute*1000 + second*10;
//Serial.println(mitiempo);
//bool minimo = mitiempo > inicio;
//bool maximo = mitiempo < final;
//if( minimo && maximo ){
//if(millis() >= tiempoactual2 + 100) Lógica que genera error
//if(millis() - tiempoactual2 > 100){
//tiempoactual2 = millis();
//Serial.println("LED!");
//parpadeo();
// }
//}else{
//digitalWrite(A3, 0);
//}
}
void parpadeo(){
int lecturaled = digitalRead(A3);
digitalWrite(A3, !lecturaled);
}
void tiempo(){
second++;
if(second == 60){
second = 0;
minute++;
}
if(minute == 60){
minute = 0;
hour++;
}
if(hour == 24){
hour = 0;
}
Serial.print(hour);
Serial.print(":");
Serial.print(minute);
Serial.print(":");
Serial.println(second);
lcd.setCursor(0,0);
lcd.print(hour);
lcd.setCursor(2,0);
lcd.print(":");
lcd.setCursor(3,0);
lcd.print(minute);
lcd.setCursor(5,0);
lcd.print(":");
lcd.setCursor(6,0);
lcd.print(second);
}
void pesar() {
peso = balanza.read(); //Mide el peso de la balanza
lcd.setCursor(0, 1);
//lcd.print("Peso: ");
lcd.print(peso, 0);
//lcd.setCursor(4,1);
lcd.print("g ");
//Serial.println(peso);
}