Termômetro em Arduino
O código abaixo transforma o Arduíno e um Display LCD em um termômetro.
int PIN_NTC = A0; // Define o pino onde está conectado o sensor NTC
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop()
{
long resistencia;
double temperatura;
int RawADC = analogRead(PIN_NTC);
resistencia = ((10240000/RawADC) - 10000);
/******************************************************************/
/* Utiliza a equação de Steinhart-Hart Thermistor: */
/* Temperatura em Kelvin = 1 / {A + B[ln(R)] + C[ln(R)]^3} */
/* onde A = 0.0011133, B = 0.000240612 e C = 0.000000001759 */
/******************************************************************/
temperatura = log(resistencia);
temperatura = 1 / (0.0011133 + (0.000240612 * temperatura) + (0.000000001759 * temperatura * temperatura * temperatura));
temperatura = temperatura - 273.15; // Converte Kelvin para Celsius
// impressao no lcd
lcd.setCursor(0, 0);
lcd.print("Temp: "); // Imprime o texto
lcd.print((int)temperatura); // Envia o valor da temperatura, somente a parteira inteira
lcd.print(" Celsius");
// impressao na serial
Serial.print("Temp: "); // Imprime o texto
Serial.print((int)temperatura); // Envia o valor da temperatura, somente a parteira inteira
Serial.println(" Celsius");
delay(1000); // Aguarda 1 segundo para fazer uma nova leitura
}
int PIN_NTC = A0; // Define o pino onde está conectado o sensor NTC
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop()
{
long resistencia;
double temperatura;
int RawADC = analogRead(PIN_NTC);
resistencia = ((10240000/RawADC) - 10000);
/******************************************************************/
/* Utiliza a equação de Steinhart-Hart Thermistor: */
/* Temperatura em Kelvin = 1 / {A + B[ln(R)] + C[ln(R)]^3} */
/* onde A = 0.0011133, B = 0.000240612 e C = 0.000000001759 */
/******************************************************************/
temperatura = log(resistencia);
temperatura = 1 / (0.0011133 + (0.000240612 * temperatura) + (0.000000001759 * temperatura * temperatura * temperatura));
temperatura = temperatura - 273.15; // Converte Kelvin para Celsius
// impressao no lcd
lcd.setCursor(0, 0);
lcd.print("Temp: "); // Imprime o texto
lcd.print((int)temperatura); // Envia o valor da temperatura, somente a parteira inteira
lcd.print(" Celsius");
// impressao na serial
Serial.print("Temp: "); // Imprime o texto
Serial.print((int)temperatura); // Envia o valor da temperatura, somente a parteira inteira
Serial.println(" Celsius");
delay(1000); // Aguarda 1 segundo para fazer uma nova leitura
}
Comentários
Postar um comentário