Opa amigos, tudo bem ? Bom, meu nome é Lucas e sou estudante de mecatrônica,
Estou fazendo um projeto com Arduíno, o problema é que sei muito pouco, o projeto é um controle térmico de um ambiente isolado, uma caixa de acrílico com paredes de isopor.
Qual a ideia ?
Eu já tenho pronto, funcionando bem, uma célula de Peltier, ligada em um relé que está em uma saída do arduíno, quando a temperatura passa do setpoint detectado pelo LM35, o arduíno comuta o relé e aciona o Peltier e um cooler, maravilha até aí.
Agora o que eu não sei como fazer, tenho um LCD 16X2 I2C e um teclado matricial 3x4.
Quero colocar na programação que vou anexar aqui o seguinte:
Preciso que o LCD indique tanto a temperatura que o sensor está lendo como o Setpoint.
E segundo, preciso que o valor que eu digite através do teclado mude essa variável Setpoint.
Como sou novo com isso estou estudando muito, procurando muito, mas não sei como fazer isso, peço muito a ajuda de vocês pessoal!!
Segue o programa
// ========================================================================================================
// --- Mapeamento de Hardware ---
#define peltier 13 //controle do relé de acionamento da pastilha Peltier
#define temp A0 //temperatura (LM35, sensor analógico linear)
// ========================================================================================================
// --- Variáveis Globais ---
void temperatura(); //função para medida e cálculo de temperatura
// ========================================================================================================
// --- Variáveis Globais ---
float tempC; //armazena temperatura em Graus Celsius
// ========================================================================================================
// --- Configurações Iniciais ---
void setup()
{
Serial.begin(9600); //inicializa serial
pinMode(peltier, OUTPUT); //saída para controle da pastilha
pinMode(temp, INPUT); //entrada para sensor de temperatura
digitalWrite(peltier, LOW); //desliga relé de controle da pastilha
} //end setup
// ========================================================================================================
// --- Configurações Iniciais ---
void loop()
{
temperatura();
if(tempC > 30.0) digitalWrite(peltier, HIGH);
else digitalWrite(peltier, LOW);
delay(100);
} //end loop
void temperatura()
{
tempC = analogRead(temp);
tempC = (tempC*5.0)/1024.0;
tempC = tempC*100.0;
Serial.print("Temperatura = ");
Serial.print(tempC);
Serial.println(" C");
} //end temperatura