Библиотеки ATmega1284 и относительной влажности

Я пытаюсь использовать некоторые датчики относительной влажности (DHT11 и DHT22) с процессором ATmega1284 на макетной плате. Я использую библиотеки Arduino playground (dht.h), Adafruit (DHT.h) и другие. Несмотря на то, что оба датчика и библиотеки прекрасно работают с Arduino Uno и Mega, они терпят неудачу с ATmega1284, что приводит к ошибке INVALID_VALUE.

Соединения дважды проверяются, и другие библиотеки, такие как Wire, OneWire и т. Д., работают нормально.

Есть ли у кого-нибудь опыт работы с процессором ATmega1284 или какие-нибудь предложения?

, 👍-1

Обсуждение

Вы пробовали читать библиотеки, чтобы увидеть, являются ли они особым случаем на '328P и/или '1280?, @Ignacio Vazquez-Abrams

На самом деле я так и сделал, но они выглядели довольно просто, никаких определений процессоров там не было., @user3060854

Вы уверены, что ваши контакты правильны? 1284 имеет несколько различных назначений контактов, так как это не стандартная плата Arduino. У меня не было никаких проблем с использованием DHT22 с настройкой Mighty1284., @Nathan

Какие контакты вы используете?, @Mikael Patel


1 ответ


0

Согласно инструкциям библиотеки, вы получите значение INVALID_VALUE в следующих ситуациях:

Функции readXX() возвращают:

  • DHTLIB_OK (0) : если образец датчика и его контрольная сумма в порядке.
  • DHTLIB_ERROR_CHECKSUM (-1) : если проверка контрольной суммы не удалась. Это означает, что данные были получены, но могут быть неверными.
  • DHTLIB_ERROR_TIMEOUT (-2) : если произошел тайм-аут, связь прервалась.

В случае DHTLIB_ERROR_TIMEOUTвлажность и температура получат значение DHTLIB_INVALID_VALUE. В случае DHTLIB_ERROR_CHECKSUM значения влажности и температуры остаются неизменными, так как невозможно определить, какой байт вышел из строя в контрольной сумме. Это зависит от программиста, чтобы решить, что делать. Можно сравнить с предыдущим значением, но лучше перечитайте датчик.

Поэтому прочитайте значение, возвращаемое функциями read11() или read22 (), чтобы убедиться, что это условие DHTLIB_ERROR_TIMEOUT, и если да, то попытайтесь выяснить, почему у библиотеки возникают проблемы при общении с устройством.

,

Это DHTLIB_ERROR_TIMEOUT (-2), но я не могу понять причину., @user3060854