#include <Adafruit_ILI9341.h>
#include "HX711.h"
Adafruit_ILI9341 tft = Adafruit_ILI9341(10, 9);
const int DOUT_PIN = 2;
const int SCK_PIN = 3;
const int POWER_CONTROL_PIN = 4; // Pin al que está conectado el interruptor
bool shuntOn = false; // Variable para rastrear si el shunt está encendido o no
HX711 scale;
void setup() {
Serial.begin(115200);
tft.begin();
// Configura el texto en el centro de la pantalla
tft.setTextSize(2);
tft.setTextColor(ILI9341_WHITE);
tft.setCursor(ILI9341_TFTWIDTH / 4, ILI9341_TFTHEIGHT / 2);
// Inicializa la báscula
scale.begin(DOUT_PIN, SCK_PIN);
// Ajusta la calibración para una báscula de 5 kg
scale.set_scale(0.410); // Puedes necesitar ajustar este valor según tu calibración específica
pinMode(POWER_CONTROL_PIN, INPUT); // Configura el pin del interruptor como entrada
}
void loop() {
// Lee el estado del interruptor
bool switchState = digitalRead(POWER_CONTROL_PIN);
// Si el interruptor está activado (5V), establece shuntOn en true
if (switchState == HIGH) {
shuntOn = true;
} else {
shuntOn = false;
}
// Lee el peso desde la báscula
float weight = scale.get_units();
// Muestra el peso en la pantalla TFT
tft.fillScreen(ILI9341_BLACK); // Limpia la pantalla
tft.setCursor(ILI9341_TFTWIDTH / 4, ILI9341_TFTHEIGHT / 2);
tft.print("Peso: ");
tft.print(weight);
tft.print(" g");
// Si el shunt está activado, muestra "Shunt On" en la esquina superior derecha
if (shuntOn) {
tft.setCursor(ILI9341_TFTWIDTH - 120, 10); // Posiciona el cursor en la esquina superior derecha
tft.print("Shunt On");
}
delay(1000); // Puedes ajustar la frecuencia de lectura según tus necesidades
}