Есть проблема!

Тема в разделе "Arduino & Shields", создана пользователем Alex60, 1 апр 2015.

  1. Alex60

    Alex60 Нерд

    Может уже кто-нибудь сталкивался с такой историей? При подключении датчиков DHT11 и DHT22 на дисплей выходят показания правильными только с DHT22. DHT11 показывает температуру 1100:). Это ошибка библиотеки?
     
  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    а как они подключены? Параллельно что ли?
     
  3. Alex60

    Alex60 Нерд

    Подключил как положено, на разные контакты (пины) . Пробую уже наверное десятую библиотеку, ну не различает она их, хоть убей. Может есть другой путь решения? Раздельно всё работает. Вместе - нет.
     
  4. Tomasina

    Tomasina Сушитель лампочек Модератор

    скетч покажите.
     
  5. Alex60

    Alex60 Нерд

    Кажется я что-то нашёл... попробую один вариант, если что дам ответ! Может ещё кто-нибудь столкнётся с такой историей. Меньше вопросов будет!
     
  6. Alex60

    Alex60 Нерд

    Всё!!! Проблему решил!!! Всё работает!!! 3 датчика DHT11, один DHT22, терморезистор! Библиотека DHTAUTO!
     
  7. Alex60

    Alex60 Нерд

    Проверил, работает... вроде бы... Может кому ещё понадобится.
    #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());

    }