//Carrega a biblioteca do LCD
#include <LiquidCrystal.h>
#include "HX711.h"
#define DT 3
#define SCK 2
#define LED_VERMELHO 13
#define RELAY1 4 // Pino do primeiro relé
#define RELAY2 5 // Pino do segundo relé
//Inicializa o LCD
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); // pinos do arduino
HX711 escala;
void setup()
{
Serial.begin(115200);
while(!Serial);
Serial.println("Iniciando...");
//Define o LCD com 16 colunas e 2 linhas
lcd.begin(16, 2);
//Inicializa a célula de carga
escala.begin(DT, SCK);
//Define o pino do LED como saída
pinMode(LED_VERMELHO, OUTPUT);
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
//Mostra informacoes no display
lcd.setCursor(0,0);
lcd.print("Fadas Eletricas");
lcd.setCursor(0,1);
lcd.print("Peso :");
escala.set_scale(1470000.0); //Adjust to this calibration factor
Serial.print("Reading: ");
Serial.print(escala.get_units(), 0);
Serial.print(" kg"); //Change this to kg and re-adjust the calibration
}
void loop(){
float peso = escala.get_units(10); // Média de 10 leituras
// Verifica se o peso foi lido corretamente
if (isnan(peso)) {
lcd.setCursor(6, 1);
lcd.print("Erro ");
} else {
// Lê o peso da célula de carga
digitalWrite(LED_VERMELHO, LOW);
digitalWrite(RELAY1, HIGH); // Aciona o primeiro relé
digitalWrite(RELAY2, HIGH); // Aciona o segundo relé
// Verifica se o peso ultrapassa 2 kg
}
if (peso > 900) { // 2 kg em gramas
digitalWrite(LED_VERMELHO, HIGH); // Acende o LED vermelho
digitalWrite(RELAY1, LOW); // Aciona o primeiro relé
digitalWrite(RELAY2, LOW); // Aciona o segundo relé
lcd.setCursor(6, 1);
lcd.print("Peso Maximo");
} else {
digitalWrite(LED_VERMELHO, LOW); // Apaga o LED vermelho
lcd.setCursor(6, 1);
lcd.print(peso + 5.7, 1); // Exibe o peso com 1 casa decimal
lcd.print(" Kg ");
}
delay(1000); // Aguarda 1 segundo antes da próxima leitura
}