// Definindo pinos e variáveis
int sensor = 34;
int chave = 32;
int bg_19 = 19;
int bg_18 = 18;
int bg_5 = 5;
int bg_17 = 17;
int bg_16 = 16;
int bg_4 = 4;
int bg_0 = 0;
int bg_2 = 2;
int l_26 = 26;
int l_25 = 25;
int leitura = 0;
int comando = 0;
boolean lchave = 0;
boolean mostrarTemperatura = 0;
float BETA = 3950;
float temp = 0;
void setup() {
Serial.begin(115200);
Serial.println("Digite '1' para exibição da temperatura e '0' para encerrar exibição");
pinMode(sensor, INPUT);
pinMode(chave, INPUT);
pinMode(bg_19, OUTPUT);
pinMode(bg_18, OUTPUT);
pinMode(bg_5, OUTPUT);
pinMode(bg_17, OUTPUT);
pinMode(bg_16, OUTPUT);
pinMode(bg_4, OUTPUT);
pinMode(bg_0, OUTPUT);
pinMode(bg_2, OUTPUT);
pinMode(l_26, OUTPUT);
pinMode(l_25, OUTPUT);
}
void loop() {
leitura = analogRead(sensor);
temp = 1/(log(1/(4095.0/leitura -1.0))/BETA +1.0/298.15) -273.15;
lchave = digitalRead(chave);
comando = Serial.read();
// Informações do Serial
if (Serial.available() > 0){
if (comando == '1') {
mostrarTemperatura = 1;
}
else if (comando == '0') {
mostrarTemperatura = 0;
}
}
if(mostrarTemperatura){
Temperaturaterminal();
}
//LEDs indicadores
if(lchave&temp > 50.00){
ledvermelho();
}
else{
l_off();
}
if(lchave&temp < 35.00){
ledazul();
}
else{
l_off();
}
// Bargraph indicador de temperatura
if(temp < 10){
zero();
}
if(temp > 10.0){
um();
}
if(temp > 20.0){
dois();
}
if(temp > 30.0){
tres();
}
if(temp > 40.0){
quatro();
}
if(temp > 50.0){
cinco();
}
if(temp > 60.0){
seis();
}
if(temp > 70.0){
sete();
}
if(temp > 79.0){
oito();
}
}
// Funções para o estado da bargraph
void zero(){
digitalWrite(bg_19, LOW);
digitalWrite(bg_18, LOW);
digitalWrite(bg_5, LOW);
digitalWrite(bg_17, LOW);
digitalWrite(bg_16, LOW);
digitalWrite(bg_4, LOW);
digitalWrite(bg_0, LOW);
digitalWrite(bg_2, LOW);
}
void um(){
digitalWrite(bg_19, HIGH);
digitalWrite(bg_18, LOW);
digitalWrite(bg_5, LOW);
digitalWrite(bg_17, LOW);
digitalWrite(bg_16, LOW);
digitalWrite(bg_4, LOW);
digitalWrite(bg_0, LOW);
digitalWrite(bg_2, LOW);
}
void dois(){
digitalWrite(bg_19, HIGH);
digitalWrite(bg_18, HIGH);
digitalWrite(bg_5, LOW);
digitalWrite(bg_17, LOW);
digitalWrite(bg_16, LOW);
digitalWrite(bg_4, LOW);
digitalWrite(bg_0, LOW);
digitalWrite(bg_2, LOW);
}
void tres(){
digitalWrite(bg_19, HIGH);
digitalWrite(bg_18, HIGH);
digitalWrite(bg_5, HIGH);
digitalWrite(bg_17, LOW);
digitalWrite(bg_16, LOW);
digitalWrite(bg_4, LOW);
digitalWrite(bg_0, LOW);
digitalWrite(bg_2, LOW);
}
void quatro(){
digitalWrite(bg_19, HIGH);
digitalWrite(bg_18, HIGH);
digitalWrite(bg_5, HIGH);
digitalWrite(bg_17, HIGH);
digitalWrite(bg_16, LOW);
digitalWrite(bg_4, LOW);
digitalWrite(bg_0, LOW);
digitalWrite(bg_2, LOW);
}
void cinco(){
digitalWrite(bg_19, HIGH);
digitalWrite(bg_18, HIGH);
digitalWrite(bg_5, HIGH);
digitalWrite(bg_17, HIGH);
digitalWrite(bg_16, HIGH);
digitalWrite(bg_4, LOW);
digitalWrite(bg_0, LOW);
digitalWrite(bg_2, LOW);
}
void seis(){
digitalWrite(bg_19, HIGH);
digitalWrite(bg_18, HIGH);
digitalWrite(bg_5, HIGH);
digitalWrite(bg_17, HIGH);
digitalWrite(bg_16, HIGH);
digitalWrite(bg_4, HIGH);
digitalWrite(bg_0, LOW);
digitalWrite(bg_2, LOW);
}
void sete(){
digitalWrite(bg_19, HIGH);
digitalWrite(bg_18, HIGH);
digitalWrite(bg_5, HIGH);
digitalWrite(bg_17, HIGH);
digitalWrite(bg_16, HIGH);
digitalWrite(bg_4, HIGH);
digitalWrite(bg_0, HIGH);
digitalWrite(bg_2, LOW);
}
void oito(){
digitalWrite(bg_19, HIGH);
digitalWrite(bg_18, HIGH);
digitalWrite(bg_5, HIGH);
digitalWrite(bg_17, HIGH);
digitalWrite(bg_16, HIGH);
digitalWrite(bg_4, HIGH);
digitalWrite(bg_0, HIGH);
digitalWrite(bg_2, HIGH);
}
//Funções estado dos LEDs
void ledvermelho(){
digitalWrite(l_25, HIGH);
digitalWrite(l_26, LOW);
}
void ledazul(){
digitalWrite(l_25, LOW);
digitalWrite(l_26, HIGH);
}
void l_off(){
digitalWrite(l_25, LOW);
digitalWrite(l_26, LOW);
}
// Função da amostragem no serial
void Temperaturaterminal(){
Serial.print("Temperatura:");
Serial.print(temp);
Serial.println(" °C");
}