#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include "HX711.h"

int Rs = 12, E = 11, D4 = 5, D5 = 4, D6 = 3, D7 = 2;
int pinSensor = 6;
int DT = 7, pinSCK = 8;

LiquidCrystal lcd(Rs, E, D4, D5, D6, D7);
OneWire oneWire(pinSensor);
DallasTemperature sensors(&oneWire);
HX711 scale;

void setup() {
  lcd.begin(16, 2);
  sensors.begin();
  Serial.begin(9600);
  scale.begin(DT, pinSCK);

  // Calibración del sensor para medir la fuerza de empuje en Newtons (N)
  scale.set_scale(420);  // Configura la escala para medir la fuerza de empuje en Newtons

  lcd.setCursor(2, 0);
  lcd.print("ACTIVIDAD-3");
  delay(900);
  lcd.clear();
  lcd.setCursor(5, 2);
  lcd.print("RICARDO");
  delay(900);
  lcd.clear();
}

void loop() {
  // Medir la temperatura
  sensors.requestTemperatures();
  float temperaturaCelsius = sensors.getTempCByIndex(0);
  float temperaturaKelvin = temperaturaCelsius + 273.15;

  lcd.setCursor(2, 0);
  lcd.print("T = ");
  lcd.print(temperaturaKelvin, 2); // Imprimir temperatura en Kelvin con dos decimales
  lcd.print(" K");
  delay(1000);
  lcd.clear();

  // Medir la fuerza de empuje
  if (scale.is_ready()) {
  float masa = scale.get_units(10); // Lee la masa en kilogramos directamente del sensor de carga
  float fuerzaEmpuje = masa * 9.81; // Calcula la fuerza de empuje multiplicando la masa por la aceleración debida a la gravedad

  lcd.setCursor(2, 0);
  lcd.print("F = ");
  lcd.print(fuerzaEmpuje, 2); // Imprimir fuerza de empuje en Newtons con dos decimales
  lcd.print(" N");

  lcd.setCursor(2, 1);
    lcd.print("M = ");
    lcd.print(masa, 2); // Imprimir la masa en kilogramos con dos decimales
    lcd.print(" kg");
} else {
  lcd.setCursor(2, 1);
  lcd.print("Sensor no listo");
}
  delay(1000);
  lcd.setCursor(0, 1);
  lcd.print("               ");
  lcd.setCursor(0, 5);
  lcd.print("               ");
}
$abcdeabcde151015202530354045505560fghijfghij