//Programação Projeto Final SENAI
//Grupo: Fadas Elétricas
//Interantes: Isadora Queiroz, Isadora Gomes, Kevin, Maria Eduarda, Nicole
//Programado por: Kevin Huberson de Jesus
#include <LiquidCrystal.h>
#include "HX711.h"
const int rs = 12, en = 11, d4 = 10, d5 = 9, d6 = 8, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Pinos para a célula de peso
const int PinoSaida = 5; // Sem acento
const int PinoClock = 6;
HX711 scale;
int peso = 0;
const int pesoMaximo = 45;
bool EstadoLed = false;
unsigned long previousMillis = 0;
const long Intervalo = 500;
const int PinoLed = 2; // Pino do LED
void setup() {
// Configurações dos pinos
pinMode(PinoLed, OUTPUT); // Corrigido de 'ledPin' para 'PinoLed'
// Inicializa o LCD
lcd.begin(16, 2);
scale.begin(PinoSaida, PinoClock); // Corrigido de 'PinoSaída' para 'PinoSaida'
scale.set_scale(2280.f); // Defina a calibração adequada para sua célula de peso
scale.tare(); // Zera a balança
atualizarLCD();
}
void loop() {
// Lê o peso da célula
peso = scale.get_units(10); // Lê o peso médio das 10 amostras
if (peso < 0) peso = 0; // Garante que o peso não fique negativo
// Atualiza o display
atualizarLCD();
// Se o peso atingir o máximo, pisca o LED
if (peso >= pesoMaximo) {
piscarLed();
} else {
digitalWrite(PinoLed, LOW); // Desliga o LED se o peso for menor que o máximo
}
}
void atualizarLCD() {
lcd.clear();
lcd.setCursor(0, 0);
if (peso >= pesoMaximo) {
lcd.print("Peso Maximo");
} else {
lcd.print("Peso Atual: ");
lcd.setCursor(0, 1);
lcd.print(peso);
}
}
void piscarLed() {
unsigned long currentMillis = millis();
// Verifica se é hora de alternar o estado do LED
if (currentMillis - previousMillis >= Intervalo) {
previousMillis = currentMillis;
// Alterna o estado do LED
EstadoLed = !EstadoLed;
digitalWrite(PinoLed, EstadoLed);
}
}