#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(" ");
}