#include <LiquidCrystal_I2C.h>
#include <Servo.h>
// tá bagunçado mas funcionou
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo reinaldo;
int cod = 0;
int abc = 0;
void setup() {
lcd.init(); // lcd né
lcd.backlight();
reinaldo.attach(3);
pinMode(13, OUTPUT); //Led
pinMode(12, OUTPUT); // Led do final da esteira
pinMode(7, INPUT); // Sensor da esteira
pinMode(8, OUTPUT); //alto falante
pinMode(5, OUTPUT); //Trig
pinMode(4, INPUT); //Echo
//oi
}
//copiado do class
float readDistanceCM() {
digitalWrite(5, LOW); // Garante que o pino TRIG esteja LOW
delayMicroseconds(2); // Espera 2 microssegundos
digitalWrite(5, HIGH); // Envia um pulso HIGH no pino TRIG para iniciar a medição
delayMicroseconds(10); // Aguarda 10 microssegundos
digitalWrite(5, LOW); // Termina o pulso de disparo no pino TRIG
int duration = pulseIn(4, HIGH); // Mede o tempo que o pino ECHO fica HIGH
return duration * 0.034 / 2; // Calcula a distância em cm com base na duração do pulso
}
void loop() {
const float BETA = 3950; // conversor do sistema para celsius
int peak = analogRead(A3);
float celsius = 1 / (log(1 / (1023. / peak - 1)) / BETA + 1.0 / 298.15) - 273.15;
int linha = digitalRead(7); // sensor de proximidade
int valve = analogRead(A0); //posição da válvula
lcd.clear();
digitalWrite(13, LOW);
digitalWrite(12,LOW);
digitalWrite(8,LOW);
lcd.setCursor(0,0);
lcd.print("T: ");
lcd.print(celsius);
lcd.setCursor(9,0);
if (celsius >= 33){
lcd.print("ALTA"); //temperatura desejada pode ser ajustada aqui
digitalWrite(13, HIGH);
digitalWrite(8, HIGH);
} else if (celsius <20){
lcd.print("BAIXA"); // temp "baixa"
digitalWrite(13, HIGH);
} else {
lcd.print("OK");
}
lcd.setCursor(0,1);
if (linha == HIGH){ // Sensor do final
//cod += 1;
lcd.print("PRONTO ");
//lcd.print(cod);
digitalWrite(12, HIGH);
} else {
lcd.print("---");
}
float distance = readDistanceCM(); //ultras
if (distance < 5){
digitalWrite(8, HIGH);
}
lcd.setCursor(7,1);
valve = map(valve, 0, 1023, 0, 180); //Conversor digital analógico
abc = map(valve, 0, 180, 0, 100); //porcentagem de abertura
reinaldo.write(valve); // Simulação da Posição da valvula
lcd.print(abc);
lcd.print("%");
delay(128); //taxa
}