Подключение датчика DHT 11

Тема в разделе "Arduino & Shields", создана пользователем dongvido, 8 фев 2012.

  1. dongvido

    dongvido Нуб

    Возникли проблемы с компиляцией кода выложенного на http://wiki.amperka.ru/сенсоры:dht Вроде и библиотеку скопировал, но где то что то упустил.
    При компиляции выдаётся:
    In file included from sketch_feb08a.cpp:2:
    C:\arduino-1.0\libraries\dht/dht.h:2:22: error: WProgram.h: No such file or directory
    In file included from sketch_feb08a.cpp:2:
    C:\arduino-1.0\libraries\dht/dht.h:19: error: 'byte' does not name a type
    C:\arduino-1.0\libraries\dht/dht.h:20: error: 'byte' does not name a type
    C:\arduino-1.0\libraries\dht/dht.h:22: error: 'byte' does not name a type
    C:\arduino-1.0\libraries\dht/dht.h:23: error: 'byte' does not name a type
    C:\arduino-1.0\libraries\dht/dht.h:28: error: 'byte' has not been declared
    C:\arduino-1.0\libraries\dht/dht.h:32: error: 'byte' does not name a type
    sketch_feb08a.cpp: In function 'void loop()':
    sketch_feb08a:30: error: 'class DHT' has no member named 'getTemperatureInt'
    sketch_feb08a:30: error: 'class DHT' has no member named 'getHumidityInt'
     
  2. nailxx

    nailxx Официальный Нерд Администратор

    Да, проблема в том, что библиотека писалась для Arduino Software версии ниже 1.0. Постараюсь успеть исправить сегодня.
     
  3. dongvido

    dongvido Нуб

    Буду ждать с нетерпением.
     
  4. nailxx

    nailxx Официальный Нерд Администратор

    Обновил библиотеку. Теперь работает с любой версией Arduino.
     
  5. WProgram.h в большенстве библиотек где он есть надо заменить на Arduino.h,если там ниже не прописан он во второй строке!это косячок в 1.0 на новой структуре.
     
  6. dongvido

    dongvido Нуб

    Нет, не идёт. Может кто нибудь проверить работоспособность?
     
  7. nailxx

    nailxx Официальный Нерд Администратор

    Та же ошибка? Начинается ли ваш dht.h следующими строками?

    Код (Text):
    #ifndef DHT_H
    #define DHT_H

    #ifndef ARDUINO
    #error "Arduino version not defined"
    #endif

    #if ARDUINO >= 100
    #include <Arduino.h>
    #else
    #include <WProgram.h>
    #endif
     
     
  8. вот,именно так и должен он выглядеть!
     
  9. dongvido

    dongvido Нуб

    Всё отлично скомпилировалось! Спасибо.
     
  10. amp15

    amp15 Нуб

    Решил не создавать новую тему, потому что вопрос по той же связке. Надеюсь, так можно.

    Вопрос: можно ли цеплять DHT11 к разъемам Arduino Uno напрямую, минуя плату расширений? В даташите к DHT11 вычитал, что ему нужен резистор подтяжки к VDD на 5К (http://files.amperka.ru/datasheets/dht11.pdf - стр.5). На плате с DHT11 (которую в амперке взял), вроде, стоит какой-то конденсатор и резистор на 1К, судя по маркировке. Этого хватит для безопасного подключения напрямую и стабильной работы? Или нужно заморачиваться с дополнительными элементами?
     
  11. nailxx

    nailxx Официальный Нерд Администратор

    Добрый день!

    Можно цеплять напрямую: IO Shield — это просто удобный тройник. На плате вся необходимая обвязка установлена, дополнительных элементов не нужно.
     
  12. amp15

    amp15 Нуб

    Спасибо. Так понимаю, сенсор уровня освещенности (https://amperka.ru/product/troyka-light-sensor) можно также напрямую подключать?
    И сразу второй вопрос: можно ли DHT11 запитать от контакта AREF на Arduino Uno (с той стороны платы, где выводы 0...13) и заземлить на контакте земли рядом? Или лучше использовать 3,3/5V и землю с противоположной стороны?
     
  13. nailxx

    nailxx Официальный Нерд Администратор

    Не, не — питать нужно от 5V. AREF — это вход, говорящий о том от какого вольтажа считать величины аналоговых входов.
     
  14. amp15

    amp15 Нуб

    Спасибо. И еще вопрос: в вышеупомянутом сенсоре освещенности использован фоторезистор VT90N2 (https://amperka.ru/product/ldr), я правильно понял?
     
  15. nailxx

    nailxx Официальный Нерд Администратор

    Ну не именно он, чуть другой, но суть абсолютно та же.
     
  16. amp15

    amp15 Нуб

  17. evgenyv

    evgenyv Нуб

    Подскажите пожалуйста!
    Уже вроде все попробовал. Вставил код из примера по dht11, разместил библиотеки в librares/dht
    При попытке верификации выдается следующее:
     
  18. nailxx

    nailxx Официальный Нерд Администратор

    Что-то довольно странное. Такое ощущение, что у вас в dht.h лежит нечто не то:

    Не могу понять откуда взялся конструктор с (byte, byte) сигнатурой. Можете сравнить в реальности свой:

    C:\arduino-1.0\libraries\dht\dht.h и https://github.com/amperka/dht/blob/master/lib/dht/dht.h

    они одинаковы?
     
  19. evgenyv

    evgenyv Нуб

    Подменил файлик и все заработало, спасибо!
    Странно, предыдущий файл - я же взял где-то не далеко)

    Теперь правда выскакивает read timeout
     
  20. Dmitriy Kunin

    Dmitriy Kunin Гик

    Вот эту ветку гляньте: DHT11 fail...
    Так у всех.
    Работе не мешает.