// Programa Teste LCD 16x2 Arduino com Célula de Carga
#include <LiquidCrystal.h>
#include "HX711.h"
#define DT A1
#define SCK A0
#define LED_VERMELHO 13
#define RELAY_PIN 2 // Pino do relé
#define BOTAO_PIN 4 // Pino do botão
// Inicializa o LCD
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); // pinos do arduino
HX711 escala;
void setup() {
// Define o LCD com 16 colunas e 2 linhas
lcd.begin(16, 2);
// Inicializa a célula de carga
escala.begin(DT, SCK);
// Define os pinos como saída e entrada
pinMode(LED_VERMELHO, OUTPUT);
pinMode(RELAY_PIN, OUTPUT);
pinMode(BOTAO_PIN, INPUT_PULLUP); // Botão com resistor pull-up
// Mostra informações no display
lcd.setCursor(0, 0);
lcd.print("Fadas Eletricas");
lcd.setCursor(0, 1);
lcd.print("Peso :");
}
void loop() {
// Lê o peso da célula de carga
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 {
// Verifica se o peso ultrapassa 2 kg
if (peso > 2000) { // 2 kg em gramas
digitalWrite(LED_VERMELHO, HIGH); // Acende o LED vermelho
digitalWrite(RELAY_PIN, HIGH); // Aciona o relé
lcd.setCursor(6, 1);
lcd.print("Peso Maximo");
} else {
digitalWrite(LED_VERMELHO, LOW); // Apaga o LED vermelho
digitalWrite(RELAY_PIN, LOW); // Desativa o relé
lcd.setCursor(6, 1);
lcd.print(peso, 1); // Exibe o peso com 1 casa decimal
lcd.print(" g ");
}
}
// Verifica se o botão foi pressionado
if (digitalRead(BOTAO_PIN) == LOW) {
// Reinicia o processo
digitalWrite(RELAY_PIN, LOW); // Desativa o relé
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Fadas Eletricas");
lcd.setCursor(0, 1);
lcd.print("Peso :");
delay(500); // Debounce do botão
}
delay(1000); // Aguarda 1 segundo antes da próxima leitura
}