Projeto Termistor NTC com Arduino
Por: SonSolimar • 6/6/2018 • 1.181 Palavras (5 Páginas) • 353 Visualizações
...
Aqui temos uma amostra do código completo (seguido em anexo do arquivo .ino):
#include // tem se a include para utilizar o LCD
float Vin=5.0; // [V]
floatRaux=10000; // [ohm] Resistor auxiliar
float R0=10000; // [ohm] valor nominal do RTC a 25ºC
float T0=298.15; // [K] (25ºC)
floatVout=0.0; // [V] Tensão de saída do divisor
floatRout=0.0; // [ohm] Valor de resistência do NTC
temperaturas
float T1=273; // [K] Temperatura de calibração 1
float T2=373; // [K] Temperatura de calibração 2
float RT1=35563; // [ohms] Resistência medida na temperatura de calibração 1
float RT2=549; // [ohms] Resistência medida na temperatura de calibração 2
float beta=0.0; // [K] parâmetro Beta
floatRinf=0.0; // [ohm] parâmetro Rinf
floatTempK=0.0; // [K] Temperatura de saída em Kelvin
floatTempC=0.0; // [ºC] Temperatura de saída em °C
//joga os "tons" em constantes
//do
constint c = 261;
//re
constint d = 294;
//mi
constint e = 329;
//fa
constint f = 349;
//so
constint g = 391;
//so sustenido
constintgS = 415;
//la
constint a = 440;
//la sustenido
constintaS = 455;
//si
constint b = 466;
//do maior
constintcH = 523;
//do maior sustenido
constintcSH = 554;
//re maior
constintdH = 587;
//re maior sustenido
constintdSH = 622;
//mi maior sustenido
constinteH = 659;
//fa maior
constintfH = 698;
//fa maior sustenido
constintfSH = 740;
//so maior
constintgH = 784;
//so maior sustenido
constintgSH = 830;
//la maior
constintaH = 880;
constintbuzzerPin = 9; // setando o buzzer para o pino 9 do arduino uno
//seta os pinos para a lcd
LiquidCrystallcd(12, 11, 5, 4, 3, 2);
inti;
void setup() {
//seta a porta 9 como saida
pinMode(buzzerPin, OUTPUT);
//seta a inicialização da lcd
lcd.begin(16, 2);
//seta a inicialização serial
Serial.begin(9600);
// Calculo do fator beta
beta=(log(RT1/RT2))/((1/T1)-(1/T2));
// Calculo do valor da variavelfloatRinf
Rinf=R0*exp(-beta/T0);
}
void loop() {
float media;
//Calculo da resistência do NTC
Vout=Vin*((float)(analogRead(0))/1024.0);
Rout=(Raux*Vout/(Vin-Vout));
//Calculo da temperatura
TempK=(beta/log(Rout/Rinf));
TempC=TempK-273.15;
//envia "temperatura" via serial
Serial.print("Temperatura: ");
//envia o valor da variavel temperatura via serial
Serial.print(TempC);
//envia o simbolo de celsius pelo serial
Serial.println(" *C");
// se a temperatura ficar maior de 30°C ou de qualquer valor que eu setar, ele envia o sinal para o buzzer
if(TempC>= 30)
{
parte1();
parte2();
variacao();
}
//Limpa a tela
lcd.clear();
//seta a linha e o cursor
lcd.setCursor(1, 0);
//imprime no lcd na primeira linda "temperatura"
lcd.print("Temperatura:");
...