#include <HX711.h>
//Pines a usar el dout y ckl
#define DOUT 3
#define CLK 2
HX711 balanza;
const int ledPins[8] = {4,5,6,7,8,9,10,11}; // Pines a los que están conectados
//Metodo a inicializar
void setup() {
Serial.begin(9600); //
balanza.begin(DOUT, CLK); // Inicializa la balanza con los pines definidos
//pines configurados de salida
for (int i = 0; i < 8; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
//Metodo que se repite
void loop() {
//Si la bvalanza si esta conectada y envia datos
while (balanza.is_ready()) {
long lectura = balanza.read(); // Lee la balanza (valor de 24 bits)
// Imprimir el valor crudo para analizar el rango
Serial.print("Valor en (24 bits): ");
Serial.println(lectura);
// Mapea la lectura a un rango de 0 a 255 (8 bits)
int mapped8 = map(lectura, 0, 2100, 0, 255);
// Imprimir el valor mapeado a 8 bits
Serial.print("Valor en (8 bits): ");
Serial.println(mapped8);
// Muestra el valor en binario con LEDs
showBinary(mapped8);
// Imprime el valor en gramos
int gramos = map(lectura, 0, 2100, 0, 5000);
Serial.print("Gramos: ");
Serial.println(gramos);
double mas=gramos/1000;
double peso=mas*9.81;
Serial.print("Peso: ");
Serial.println(String(peso) + "N");
}
delay(1000); // Pausa de medio segundo
}
//metodo que enciende los leds
void showBinary(int numero) {
for (int i = 0; i < 8; i++) {
int bitValue = (numero >> i) & 1; // Obtiene el valor del bit i
digitalWrite(ledPins[i], bitValue); // Enciende o apaga el LED según el valor del bit
}
}