DHT22+Arduino pro mini

cerg-292
Offline
Зарегистрирован: 12.08.2018

Добрый день форумчане!

Помогите пож разобраться...

Имею Arduino UNO, Arduino pro mini 5v16MHz, DHT11, DHT22

На УНО работают оба датчика, причем без проблем и плясок, а на МИНИ не работает ни один.

Скетчи пробовал разные, от самописного, до "из примеров", 4 вида библиотек DHT.h, результат один- NAN по обоим показателям... Последний скетч-

 

#include "DHT.h" // подключаем библиотеку для датчика
DHT dht(2, DHT22); // сообщаем на каком порту будет датчик
const int relPin = 3;
int led = 13;


void setup() // процедура setup
{
dht.begin(); // запускаем датчик влажности DHT11
Serial.begin(9600); // подключаем монитор порта
Serial.println("DHT TEST"); // пишем один раз
pinMode(relPin, OUTPUT);
pinMode(led, OUTPUT);

}

void loop() // процедура loop
{
// считываем температуру (t) и влажность (h) каждые 250 мс
float h = dht.readHumidity();
float t = dht.readTemperature();
//float t=27;
// выводим температуру (t) и влажность (h) на монитор порта

if (t = NAN){
digitalWrite(relPin, LOW);
digitalWrite(led, HIGH);
}
else
{
digitalWrite(relPin, HIGH);
digitalWrite(led, LOW);
}



//Serial.println(h);
Serial.print("Temperature: ");
Serial.println(t);
//Serial.println(" *C");
Serial.println(digitalRead(relPin));

//Serial.println (t);
delay(1000);
}

Библиотеку если надо могу выложить...

И подключение:

Заранее спасибо!

cerg-292
Offline
Зарегистрирован: 12.08.2018

Косяк, не тот скетч=)

#include "DHT.h"

#define DHTPIN 4     // вывод, к которому подключается датчик
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
}

void loop() {
  delay(250);

  // считывание температуры или влажности занимает примерно 250 мс!
  // считанные показания могут отличаться от актуальных примерно на 2 секунды (это очень медленный датчик)
  float h = dht.readHumidity();
  // Считывание температуры в цельсиях
  float t = dht.readTemperature();

  // проверяем, были ли ошибки при считывании и, если были, начинаем заново
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  //выводим информацию в Монитор последовательного порта
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.println(" *C ");
}

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

cerg-292 пишет:

 результат один- NAN по обоим показателям... 

В последнем приведенном Вами скетче не увидел NAN. Так чего он выдает?

cerg-292
Offline
Зарегистрирован: 12.08.2018

mykaida пишет:

cerg-292 пишет:

 результат один- NAN по обоим показателям... 

В последнем приведенном Вами скетче не увидел NAN. Так чего он выдает?



if (isnan(h) || isnan(t)) {
	    Serial.println("Failed to read from DHT sensor!");

Это из последнего скетча, убрать этот обработчик и сделать просто


Serial.println(t);
Serial.println(h);

То будет выводить просто

nan
nan

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

На фото ничерта не видно, но очень похоже, что Вы датчик подключили не к D4, а к A1. Проверьте. Если считаете, что нет, сделайте другое фото, где мини видна крупным планом.

cerg-292
Offline
Зарегистрирован: 12.08.2018

 

Там точно PIN4, т.к. были попытки с PIN2 и PIN9

Серый провод уходит в RST, далее не помню что, потом PIN2, PIN3, PIN4

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Странно. Могу предположить, что что-то не так с портом 4. Попробуйте сменить. Минус датчика напрямую подключить к ардуинке.

Серый провод - это что?

cerg-292
Offline
Зарегистрирован: 12.08.2018

Были попытки подключить в PIN2 и PIN9, соответственно с изменением прогр кода. Не помогло.

GND с уно идет на макетную плату, далее параллелится с GND датчика и уходит на GND МИНИ(на первом фото черные и синие провода). Подключить напрямую с УНО или вообще отдельное питание вывести?

Серый провод- RST to RST, это для прошивки, чтобы не выдавало ошибку в конце записи=)

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Есть такое неосознанное чувство, что проблема в питании датчика. Попробуйте не отключая МИНИ от питания запустить программу на УНО. От МИНИ отключить все кроме питания, конфигурацию проводов питания не менять. Если не заработает - нашли проблему.

cerg-292
Offline
Зарегистрирован: 12.08.2018

Не прокатила идея=(

cerg-292
Offline
Зарегистрирован: 12.08.2018

Ну я не буду тут материться... Но вообщем вот...

На дурака загрузил скетч в настройках ATMega328p 3.3v8MGz и заработала, чтоб у того китайца глаза еще уже стали...

И причем обе платы такие...
 

кудрявый
Offline
Зарегистрирован: 14.12.2017

Определить что за плата- 5/16 или 3,3/8 можно (лучше) самостоятельно.

Подать на вход RAW вольт 7 и померять что будет на VCC. Там будет или 5 или 3,3 с соответствующими частотами....