Как подключить два датчика DHT22
- Войдите на сайт для отправки комментариев
Сб, 11/05/2013 - 16:09
Здравствуйте.
Подскажите каким образом можно считывать информацию с двух датчиком DHT22 на Arduini UNO R3. Насколько я понял каждый датчик подключается к своему пину. Вопро в том как прописать это в коде?
Я прописываю каждый датчик на свой пин 2 и 3 и объявляю две переменных dhta и dhtb. Правильно ли будет сделать так?:
#include "DHT.h" #define DHTPINa 2 // what pin we're connected to #define DHTPINb 3 // what pin we're connected to // Uncomment whatever type you're using! #define DHTTYPE DHT22 // DHT 22 (AM2302) DHT dhta(DHTPINa, DHTTYPE); DHT dhtb(DHTPINb, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); dht.begin(); } void loop() { // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) float ha = dhta.readHumidity(); float ta= dhta.readTemperature(); float hb = dhtb.readHumidity(); float tb= dhtb.readTemperature();
Оказываетс явсе раскурено до нас.
http://arduino.ru/forum/programmirovanie/6-datchikov-dht11-na-odnom-pine
подключение двух датчиков DHT22 AM2302
с выводом значений в порт.. задействованы пин 5 и пин 6 , можно брать любые , у меня мега2560
показывают температуру почти одинаковую))) разница в 0.4 градуса
Здравствуйте, столкнулся с такой проблемой делаю вычитку датчиков в основном цикле loop у меня 3 датчика DHT22 время которое затрачиваться на чтения датчиков приблизительно 500мс и того получаться что полторы секунды читается все датчики в то время задержка влияет на отображения на LCD экране (часы rtc ds1302) секунд и чтения нажатия на аналоговые кнопки. Arduino mega 2560 | LCD key shild
Здравствуйте, подскажите новичку.
нахватался везде помаленьку, получился такой скетч
Управление влажностью в гараже включением вытяжного вентилятора
Два датчика DHT22 первый в гараже, второй на улице. Не знаю какой параметр нужно вставить чтобы реле вентилятора включалось когда влажность в гараже выше чем на улице(выделил жирным в скетче), но только если влажность в гараже более 50%. И если не трудно, как добавить таймер работы вентилятора(в случае если он не может сбить влажность до нужного уровня) Температура с датчиков пока носит только информационный характер
#include <LiquidCrystal.h> // Библиотека управления экраном
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
#include "DHT.h" // Библиотека датчика DHT22 температуры и влажности
#define DHTPINa 2 // Считывающий пин с датчика 1
#define DHTPINb 3 // Считывающий пин с датчика 2
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define hPIN 5 // Пин управления реле вентилятора
DHT dhta(DHTPINa, DHTTYPE); // Создаем объект dhta датчик 1
DHT dhtb(DHTPINb, DHTTYPE); // Создаем объект dhtb датчик 2
int hStatus = HIGH; // определяем переменную, отвечающую за состояние реле вентилятора HIGH=выкл, LOW=вкл
void setup() // инициализация основных данных
{
dhta.begin(); // Инициализируем датчик 1
dhtb.begin(); // Инициализируем датчик 2
pinMode(hPIN, OUTPUT);
lcd.begin(16,2); // устанавливаем размеры экрана
}
void loop() // зацикливание (код управляющей программы)
{
float ha = dhta.readHumidity(); // Считываем влажность датчика 1
float hb = dhtb.readHumidity(); // Считываем влажность датчика 2
float ta = dhta.readTemperature(); // Считываем температуру датчика 1
float tb = dhtb.readTemperature(); // Считываем температуру датчика 2
if (ha < hb ) hStatus = HIGH; else hStatus = LOW; // Если влажность датчика 1 выше влажности датчика 2 , то статус реле вентилятора=Вкл, в противном случае Выкл
digitalWrite(hPIN, hStatus);
lcd.setCursor(0,0); // устанавливаем позицию курсора на экране
lcd.print(ta, 1); lcd.print("C "); lcd.print(ha, 1); lcd.print("%");// Выводим информацию с датчика 1
lcd.setCursor(0,1);
lcd.print(tb, 1); lcd.print("C "); lcd.print(hb, 1); lcd.print("%");// Выводим информацию с датчика 2
lcd.setCursor(15,1);lcd.print((hStatus == LOW) ? "*":" "); // Выводим индикатор работы реле вентелятора
delay(500); // Задержка в пол секунды
}
засекайте время включения вентилятора, если через определенный промежуток влажность не уменьшилась или уменьшилась недостаточно - выключаете вентилятор.
millis()
Здравствуйте, столкнулся с такой проблемой делаю вычитку датчиков в основном цикле loop у меня 3 датчика DHT22 время которое затрачиваться на чтения датчиков приблизительно 500мс и того получаться что полторы секунды читается все датчики в то время задержка влияет на отображения на LCD экране (часы rtc ds1302) секунд и чтения нажатия на аналоговые кнопки. Arduino mega 2560 | LCD key shild
Я бы повесил вывод на таймер, а в цикле читал покаания с датчиков и заполнял глобальные переменные по мере возможности, например, раз в секунду.
В итоге и часы нормально "ходят", и показания читаются.
Здравствуйте, столкнулся с такой проблемой делаю вычитку датчиков в основном цикле loop у меня 3 датчика DHT22 время которое затрачиваться на чтения датчиков приблизительно 500мс и того получаться что полторы секунды читается все датчики в то время задержка влияет на отображения на LCD экране (часы rtc ds1302) секунд и чтения нажатия на аналоговые кнопки. Arduino mega 2560 | LCD key shild
Я бы повесил вывод на таймер, а в цикле читал покаания с датчиков и заполнял глобальные переменные по мере возможности, например, раз в секунду.
В итоге и часы нормально "ходят", и показания читаются.
Подскажите...как это сделать...Как повесить "вывод на таймер"??
Такая же проблема с трёх датчиков DHT22...часы на ЛДС "тормозят"...
DHT22 опрашиваются сравнительно долго.
Как повесить "вывод на таймер"??
http://alxarduino.blogspot.ru/2013/09/ComfortablyBlinkWithoutDelay.html
Так сложно вбить в гугл "arduino timer library"?
Или "новичкам" уже законодательно запрещено использовать мозги?
Radjah - ПОШЁЛ НАХУЙ, УМНИК!
Законодатель....
http://alxarduino.blogspot.ru/2013/09/ComfortablyBlinkWithoutDelay.html
ОЧЕНЬ БЛАГОДАРЮ...
Вот это бомбануло! %)
Добрый день! Я уже неделю ковыряюсь в интернете, чтобы понять, можно ли вообще подключить два датчика: но один из них DHT11, а один DHT22. И как? Желательно со скетчем. Ибо я пока чайник. Спасибо!
PS Обещаю не ругаться и не обижаться на критику в мою сторону)
Да - можно, каждый датчик на отдельный вывод.
Мне бы код, или хотя бы начало, как их прописать и какую библиотеку использовать, их несколько и в каких-то надо писать тип датчика, а в каких- то не надо
Могу вам еще раз скопировать приведенный выше код. Сам подключал два DHT11 - с кодом аналогичным первом сообщении, работали.
Библиотеку эту брал https://yadi.sk/d/rcexdmxadBxXN
Естественно она только для DHT11
У меня один 11, а другой 22
Есть вот такая еще https://github.com/adafruit/DHT-sensor-library
Тип датчика устанавливается при объявлении.
Тоесть мне надо просто раскомментировать сразу две строки?
Все здравствуйте!
Подключил таки два разных датчика...
Может пригодится кому.