6 датчиков DHT11 на одном пине
- Войдите на сайт для отправки комментариев
Пнд, 18/03/2013 - 09:28
Подскажите, как реализуется код для такого случая. Есть код из примера:
/*#################################################################### FILE: dht11_functions.pde VERSION: 0.4.5 PURPOSE: Test DHT11 Temperature & Humidity Sensor library functions LICENSE: GPL v3 (http://www.gnu.org/licenses/gpl.html) DATASHEET: http://feed.virtuabotix.com/wp-content/uploads/2011/11/DHT11.pdf GET UPDATES: http://feed.virtuabotix.com/?239 --##--##--##--##--##--##--##--##--##--##-- ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## | ## ## ## ## ## ## ## ## ## ## | ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## | ## ## ## ## ## ## ## ## ## ## | ## ## ## ## DHT11 SENSOR ## ## ## ## ## ## ## ## ##FRONT ## ## ## ## ## | ## ## ## ## ## ## ## ## ## ## | ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## | ## ## ## ## ## ## ## ## ## ## | ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## --##--##--##--##--##--##--##--##--##--##-- || || || (Not || || || || Used) || VDD(5V) Readout(I/O) Ground HISTORY: Mod by Joseph Dattilo (Virtuabotix LLC) - Version 0.4.5 (11/11/11) Mod by Joseph Dattilo (Virtuabotix LLC) - Version 0.4.0 (06/11/11) Mod by Rob Tillaart - Version 0.3 (28/03/2011) Mod by SimKard - Version 0.2 (24/11/2010) George Hadjikyriacou - Original version (??) #######################################################################*/ #include <dht11.h> dht11 DHT11; #define DHT11PIN 2 void setup() { Serial.begin(9600); Serial.println("DHT11 TEST PROGRAM "); Serial.print("LIBRARY VERSION: "); Serial.println(DHT11LIB_VERSION); } void loop() { Serial.println("\n"); int chk = DHT11.read(DHT11PIN); Serial.print("Read sensor: "); switch (chk) { case 0: Serial.println("OK"); break; case -1: Serial.println("Checksum error"); break; case -2: Serial.println("Time out error"); break; default: Serial.println("Unknown error"); break; } Serial.print("Humidity (%): "); Serial.println((float)DHT11.humidity, DEC); Serial.print("Temperature ( °C): "); Serial.println((float)DHT11.temperature, DEC); Serial.print("Temperature ( °F): "); Serial.println(DHT11.fahrenheit(), DEC); Serial.print("Temperature ( °K): "); Serial.println(DHT11.kelvin(), DEC); Serial.print("Dew Point ( °C): "); Serial.println(DHT11.dewPoint(), DEC); Serial.print("Dew PointFast ( °C): "); Serial.println(DHT11.dewPointFast(), DEC); delay(2000); } delay(2000); }
Т.е. здесь датчик повешен на второй пин и вывод температуры и влажности происходит путём:
Serial.print("Humidity (%): "); Serial.println((float)DHT11.humidity, DEC); Serial.print("Temperature ( °C): "); Serial.println((float)DHT11.temperature, DEC);
Как вывести остальные пять датчиков? не воткну что-то))
я просто подумал, что объект может надо создавать для каждого датчика, dht11 DHT1, dht11 DHT2 и т.д.
в вашем примере получается, что каждый датчик на своём пине сидит?
А вы как хотели? Все на один вывод посадить? Так не получится.
я туплю или это датчики работающие по 1-Wire?
ds18b20 можно ведь десятками на пин вешать.... Думал, что эти такие же.
Нет, они не общаются по 1-Wire.
>я просто подумал, что объект может надо создавать для каждого датчика
Зависит от того какую библиотеку вы используете. Открывайте файл .h ее и смотрите, кто принимает параметр pin. Конструктор или кокретные функции чтения.
Я, к примеру, использую https://github.com/adafruit/DHT-sensor-library
И там какой пин использовать (и какого типа датчик) передается именно в конструкторе. И действительно нужно "создавать объект для каждого датчика".
Но, судя по вашему изначальному скетчу, у вас библиотека где в read() нужно пихать пин каждый раз, а объект - один на всех. Вообщем с вашей библиотекой нужно работать именно так как показал Максим.
>>medossa: ds18b20 можно ведь десятками на пин вешать.... Думал, что эти такие же.
>maksim:Нет, они не общаются по 1-Wire
Не уверен за DHT11, но DHT22 внутри себя используют именно DS18B20. Хотя, конечно, это ничего не меняет. Снаружи это увидеть никак нельзя. Просто "любопытный факт" ;)
to maksim, to leshak - мои благодарности.
Не уверен за DHT11, но DHT22 внутри себя используют именно DS18B20. Хотя, конечно, это ничего не меняет. Снаружи это увидеть никак нельзя. Просто "любопытный факт" ;)
Не уверен за DHT11, но DHT22 внутри себя используют именно DS18B20. Хотя, конечно, это ничего не меняет. Снаружи это увидеть никак нельзя. Просто "любопытный факт" ;)
Перепрошить гада и заставить работать по One-wire ;)
Перепрошить врядли так просто получится. А вот то что разводка сходна с ATtiny24/44/84 это очень вероятно, так что можно заменить на тиню.