/******************************************************************************* * * Projeto 42 - Comparando sensores de temperatura NTC 10K, DHT11 e LM35 * http://squids.com.br/arduino * *******************************************************************************/ #include #include #include Thermistor temp(2); // termistor conectado na porta A2 (cria o objeto) dht DHT; // Cria um objeto da classe dht LiquidCrystal lcd(12, 11, 5, 4, 3, 2); const int buttonPin = 8; int seletor = 1; uint32_t timer = 0; float temperature[] = {1,2,3}; int x = 1; void setup() { pinMode(buttonPin, INPUT_PULLUP); Serial.begin(9600); lcd.begin(16, 2); //fazendo a primeira leitura temperature[1] = temp.getTemp(); //calcula a temperatura do termistor DHT.read11(A1); // sensor DHT11 conectado na porta A1 temperature[2] = DHT.temperature; temperature[3]= (float(analogRead(A0))*5/(1023))/0.01; seletor++; } void loop() { if(millis() - timer>= 2000) { temperature[1] = temp.getTemp(); //calcula a temperatura do termistor DHT.read11(A1); // sensor DHT11 conectado na porta A1 temperature[2] = DHT.temperature; for (int i=0;i<1000;i++) { temperature[3]= temperature[3] + (float(analogRead(A0))*500/(1023)); } temperature[3] = temperature[3] / 1000; timer = millis(); // Atualiza a referência } imprimir(); if (!digitalRead(buttonPin)) { // Espera soltar o botão seletor while (!digitalRead(buttonPin)) { } delay(10); // switch (seletor) { case 1: x=1; seletor++; break; case 2: x=2; seletor++; break; case 3: x=3; seletor=1; break; } } } void imprimir() { //Imprimindo no monitor serial Serial.print("NTC10K: "); Serial.print(temperature[1]); Serial.print("°C | "); Serial.print("DHT11: "); Serial.print(temperature[2]); Serial.print("°C | "); Serial.print("LM35: "); Serial.print(temperature[3]); Serial.println("°C"); //imprimindo no LCD lcd.clear(); lcd.setCursor(0,0); // Define o cursor na posição de início if (x==1) {lcd.print("NTC = ");} else if (x==2) {lcd.print("DHT = ");} else {lcd.print("LM35 = ");} lcd.print(temperature[x]); lcd.write(B11011111); // Imprime o símbolo de grau lcd.print("C"); }