Проблемы с DHT11. Где обозначить "readTemperature" и как инициализировать DHT? Нужна помощь.

DiMan
Offline
Зарегистрирован: 20.04.2016

Проблемы тут:

int DHT = 2;
  int t = readTemperature, sens DHT (uint8_t, uint8_t, uint8_t);
  int h = readTemperature, sens DHT (uint8_t, uint8_t, uint8_t);

Выдаёт сл. ошибку:

sketch_2.ino: In function 'void loop()':
sketch_2:46: error: 'readTemperature' was not declared in this scope
sketch_2:46: error: expected initializer before 'DHT'
sketch_2:48: error: expected initializer before 'DHT'

Где обозначить "readTemperature" и как инициализировать DHT (я же "int DHT = 2;" прописал) ?

Полный код:

#include <DHT.h>

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>


DHT sens(uint8_t pin, uint8_t type, uint8_t count=6);


// Установить ЖК-адрес для 0x27 для отображения 20 символов и 4 линии
LiquidCrystal_I2C lcd(0x27, 20, 4);
  
 
  
  
  
  
void setup() 
{
    // initialize the LCD
  lcd.begin();

    // Turn on the blacklight and print a message.
  lcd.noBacklight();
  lcd.clear();
  lcd.setCursor(0, 1);
  
    // настройка UART (связь с компьютером - через виртуальный COM-порт посредством USB)
  Serial.begin(9600);
    // настройка вывода датчика DHT11
  pinMode(2, INPUT);
  digitalWrite(2, HIGH);
  lcd.clear();
  lcd.backlight();
}





void loop()

{
  int DHT = 2;
  //int t = sens.readTemperature(2); // чтение датчика на пине 2
  int t = readTemperature, sens DHT (uint8_t, uint8_t, uint8_t);
  //int h = sens.readHumidity(2);    // чтение датчика на пине 2
  int h = readTemperature, sens DHT (uint8_t, uint8_t, uint8_t);
  
  // передача данных о температуре и влажности по виртуальному COM-порту
  Serial.print("Hum: ");
  Serial.print(h);
  Serial.print(" %");
  Serial.print("Temp: ");
  Serial.print(t);
  Serial.println(" C ");
  
  // отображение данных о температуре и влажности на знакосинтезирующем ЖКИ
  // set the cursor to column 0, line 0
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 0);
  lcd.print("Tem: "); 
  lcd.print(t); 
  lcd.print("C "); 
  lcd.setCursor(0, 1);
  lcd.print("Hum: "); 
  lcd.print(h); 
  lcd.print("%"); 

  // print the number of seconds since reset:
  //lcd.print(millis() / 1000);
  
  delay(1000);
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

DiMan пишет:

Проблемы тут:

int DHT = 2;
  int t = readTemperature, sens DHT (uint8_t, uint8_t, uint8_t);
  int h = readTemperature, sens DHT (uint8_t, uint8_t, uint8_t);

Нет, тут не проблемы, проблемы в другом месте. Тут просто какой-то бред. Что по Вашему это должно означать?

DiMan пишет:

 (я же "int DHT = 2;" прописал) ?

Зачем? DHT у Вас тип данных, зачем заводить ещё и переменную с таким же именем?