Может уже кто-нибудь сталкивался с такой историей? При подключении датчиков DHT11 и DHT22 на дисплей выходят показания правильными только с DHT22. DHT11 показывает температуру 1100. Это ошибка библиотеки?
Подключил как положено, на разные контакты (пины) . Пробую уже наверное десятую библиотеку, ну не различает она их, хоть убей. Может есть другой путь решения? Раздельно всё работает. Вместе - нет.
Кажется я что-то нашёл... попробую один вариант, если что дам ответ! Может ещё кто-нибудь столкнётся с такой историей. Меньше вопросов будет!
Всё!!! Проблему решил!!! Всё работает!!! 3 датчика DHT11, один DHT22, терморезистор! Библиотека DHTAUTO!
Проверил, работает... вроде бы... Может кому ещё понадобится. #include "U8glib.h" #include "DHT.h" #include <math.h> DHT dht1; // датчик 1 DHT dht2; // датчик 2 DHT dht3; // датчик 3 DHT dht4; // датчик 4 int A=27; // вентилятор 1 int B=29; // вентилятор 2 int C=31; // вентилятор 3 int D=33; // нагреватель U8GLIB_ST7920_128X64 u8g(10, 9, 8, U8G_PIN_NONE); int analogPin=3; // датчик температуры теплоносителя int val=0; void setup() { pinMode(A,OUTPUT); // пин А выход pinMode(B,OUTPUT); // пин В выход pinMode(C,OUTPUT); // пин С выход pinMode(D,OUTPUT); // пин D выход digitalWrite(A, HIGH); digitalWrite(B, HIGH); digitalWrite(C, HIGH); digitalWrite(D, HIGH); Serial.begin(9600); dht1.setup(2); // датчик 1 на пин 2 dht2.setup(3); // датчик 2 на пин 3 dht3.setup(4); // датчик 3 на пин 4 dht4.setup(5); // датчик 4 на пин 5 u8g.setFont(u8g_font_6x10); } void loop(void) { delay(dht1.getMinimumSamplingPeriod()); delay(dht2.getMinimumSamplingPeriod()); delay(dht3.getMinimumSamplingPeriod()); delay(dht4.getMinimumSamplingPeriod()); float ha = dht1.getHumidity(); float ta = dht1.getTemperature(); float hb = dht2.getHumidity(); float tb = dht2.getTemperature(); float hc = dht3.getHumidity(); float tc = dht3.getTemperature(); float hd = dht4.getHumidity(); float td = dht4.getTemperature(); float Temp; val=analogRead(analogPin); // вычисление температуры теплоносителя Temp = log((10240000/val)-10000); Temp=1/(0.001129148+(0.000234125*Temp)+(0.0000000876741*Temp*Temp*Temp)); Temp=Temp-273.15; u8g.firstPage(); do{ u8g.drawBox(0, 0, 128, 64); u8g.setColorIndex(0); u8g.setPrintPos(1, 10); u8g.print("Temp"); u8g.setColorIndex(0); u8g.setPrintPos(30, 10); u8g.print(ta); u8g.setColorIndex(0); u8g.setPrintPos(70, 10); u8g.print("Hum"); u8g.setColorIndex(0); u8g.setPrintPos(90, 10); u8g.print(ha); u8g.setColorIndex(0); u8g.setPrintPos(1, 20); u8g.print("Temp "); u8g.setColorIndex(0); u8g.setPrintPos(30, 20); u8g.print(tb); u8g.setColorIndex(0); u8g.setPrintPos(70, 20); u8g.print("Hum"); u8g.setColorIndex(0); u8g.setPrintPos(90, 20); u8g.print(hb); u8g.setColorIndex(0); u8g.setPrintPos(1, 30); u8g.print("Temp "); u8g.setColorIndex(0); u8g.setPrintPos(30, 30); u8g.print(tc); u8g.setColorIndex(0); u8g.setPrintPos(70, 30); u8g.print("Hum"); u8g.setColorIndex(0); u8g.setPrintPos(90, 30); u8g.print(hc); u8g.setColorIndex(0); u8g.setPrintPos(1, 40); u8g.print("Temp "); u8g.setColorIndex(0); u8g.setPrintPos(30, 40); u8g.print(td); u8g.setColorIndex(0); u8g.setPrintPos(70, 40); u8g.print("Hum"); u8g.setColorIndex(0); u8g.setPrintPos(90, 40); u8g.print(hd); u8g.setColorIndex(0); u8g.setPrintPos(1, 50); u8g.print("Temp sist "); u8g.setColorIndex(0); u8g.setPrintPos(70, 50); u8g.print(Temp); u8g.setColorIndex(1); } while(u8g.nextPage()); }