Вопрос по блоку DHT

Вопросы по встроенным блокам
Ответить
smirnoff
Рядовой
Сообщения: 10
Зарегистрирован: 08 дек 2019, 19:38
Имя: Олег

Вопрос по блоку DHT

Сообщение smirnoff »

Доброго дня всем форумчанам.
Подскажите пожалуйста может кто сталкивался с такой проблемой:

Программа FLProg-6.3.1
Arduino IDE 1.8.10
Датчик влажности и температуры DHT22
Плата arduino NANO (китайская)

Нарисовал схему вывода температуры и влажности с данного датчика на LCD экран. (все блоки стандартные из программы)
Скомпилировал, залил скетч в NANO все отлично работает показывает температуру и влажность при подключенном кабеле USB к компьютеру.
Как только подключаешь кабель USB к любому другому источнику (кроме компьютера) и при подаче питания на вход Vin (12 V) и при подаче питания на ногу 5V (соответственно 5 вольт) на экран перестают выводиться показания с датчика,
пишет влажность 1 % и температура 1 °С.
Датчик подключал к разным ногам, поведение одинаковое.

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




Вот скетч:

#include "DHT_NEW.h"
#include <LiquidCrystal.h>
LiquidCrystal _lcd1(9, 8, 4, 5, 6, 7);
int _dispTempLength1=0;
boolean _isNeedClearDisp1;

DHT _dht1;

unsigned long _dht1LRT = 0UL;
unsigned long _dht1Tti = 0UL;
int _disp2oldLength = 0;
int _disp1oldLength = 0;

void setup()
{

_lcd1.begin(20, 4);
_dht1.setup(10);
_dht1LRT = millis();
_dht1Tti = millis();

}
void loop()
{

if (_isNeedClearDisp1) {_lcd1.clear(); _isNeedClearDisp1= 0;}

//Плата:1
if(_isTimer(_dht1Tti, 1000)) {
if(_isTimer(_dht1LRT,( _dht1.getMinimumSamplingPeriod()))) {
_dht1.readSensor();
_dht1LRT = millis();
_dht1Tti = millis();
}
}
if (!(0)) {
_dispTempLength1 = ((((String("humidity ")) + (( _floatToStringWitRaz(_dht1.humidity,2))) + (String(" %"))))).length();
if (_disp2oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp2oldLength = _dispTempLength1;
_lcd1.setCursor(0, 1);
_lcd1.print((((String("humidity ")) + (( _floatToStringWitRaz(_dht1.humidity,2))) + (String(" %")))));
} else {
if (_disp2oldLength > 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;}
}
if (!(0)) {
_dispTempLength1 = ((((String("temperatura ")) + (( _floatToStringWitRaz(_dht1.temperature,2))) + (String(" C"))))).length();
if (_disp1oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor(0, 0);
_lcd1.print((((String("temperatura ")) + (( _floatToStringWitRaz(_dht1.temperature,2))) + (String(" C")))));
} else {
if (_disp1oldLength > 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;}
}

}

String _floatToStringWitRaz(float value, int raz)
{

return String(value,raz);
}
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}

Отправлено спустя 6 минут 2 секунды:
На надпись над блоком LCD не обращайте внимания в настройках строки разные.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4007
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Вопрос по блоку DHT

Сообщение ecoins »

Nano подключаете через спец.плату под Nano?
Проверьте питание на DHT когда он не работает.
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

Вопрос по блоку DHT

Сообщение Alias »

У меня была подобная проблема, правда на Меге, но не думаю, что это особенности процессоров. Я обратил внимание, что датчик или очень неустойчиво, или вовсе не работает на линиях, поддерживающих ШИМ. Я не знаю, в чем проблема - ide или flprog, поэтому просто имею это в виду. А датчики пробовал разные, из разных партий, и с обвязкой на плате, и без нее. Помнится, ретроградный Меркурий тогда был, кто знает, кто знает...
smirnoff
Рядовой
Сообщения: 10
Зарегистрирован: 08 дек 2019, 19:38
Имя: Олег

Вопрос по блоку DHT

Сообщение smirnoff »

ecoins писал(а): 17 апр 2020, 22:18 Nano подключаете через спец.плату под Nano?
Проверьте питание на DHT когда он не работает.
Питание есть , я же написал, все работает с другим скетчем.
В рабочем варианте библиотека #include "DHT.h"

Отправлено спустя 2 минуты 46 секунд:
Alias писал(а): 17 апр 2020, 23:51 У меня была подобная проблема, правда на Меге, но не думаю, что это особенности процессоров. Я обратил внимание, что датчик или очень неустойчиво, или вовсе не работает на линиях, поддерживающих ШИМ. Я не знаю, в чем проблема - ide или flprog, поэтому просто имею это в виду. А датчики пробовал разные, из разных партий, и с обвязкой на плате, и без нее. Помнится, ретроградный Меркурий тогда был, кто знает, кто знает...
Датчик пробовал на разные выхода цеплять - результат один, ардуино платы тоже пробовал разные - результат один.
Проблема скорее всего в библиотеке "DHT_NEW.h"
Аватара пользователя
nalnik
Подполковник
Сообщения: 1320
Зарегистрирован: 14 май 2016, 17:12
Откуда: Кисловодск
Имя: Александр

Вопрос по блоку DHT

Сообщение nalnik »

smirnoff писал(а): 17 апр 2020, 22:14 Датчик влажности и температуры DHT22
Скажите а как вы подключили DHT22 ?
Попробуйте Третью ногу датчика посадить на минус.
Я хочу быть добрее, но люди сами нарываются.
smirnoff
Рядовой
Сообщения: 10
Зарегистрирован: 08 дек 2019, 19:38
Имя: Олег

Вопрос по блоку DHT

Сообщение smirnoff »

nalnik писал(а): 18 апр 2020, 06:12
smirnoff писал(а): 17 апр 2020, 22:14 Датчик влажности и температуры DHT22
Скажите а как вы подключили DHT22 ?
Попробуйте Третью ногу датчика посадить на минус.
Дело в том что с другим скетчем то все работает. Со штатным блоком тоже работает только если питаешь
arduino от USB компьютера, если питать также через USB но не от компьютера или любым другим способом не работает.

Отправлено спустя 15 минут 13 секунд:
Заработало, когда подключил экран через I2C
Аватара пользователя
nalnik
Подполковник
Сообщения: 1320
Зарегистрирован: 14 май 2016, 17:12
Откуда: Кисловодск
Имя: Александр

Вопрос по блоку DHT

Сообщение nalnik »

smirnoff писал(а): 30 апр 2020, 17:52 Заработало, когда подключил экран через I2C
Какое I2C ?
Датчики у меня работают с тремя проводами. Третий из четырех на минус - если нет то творит чудеса.
Я хочу быть добрее, но люди сами нарываются.
Dragony
Сержант
Сообщения: 170
Зарегистрирован: 02 янв 2020, 11:55
Имя: Александр
Благодарил (а): 10 раз
Поблагодарили: 4 раза

Вопрос по блоку DHT

Сообщение Dragony »

Ну, не знаю...
Резистор подтягивающий на 4,7...10кОм цепляли к сигнальной ноге датчика?
smirnoff
Рядовой
Сообщения: 10
Зарегистрирован: 08 дек 2019, 19:38
Имя: Олег

Вопрос по блоку DHT

Сообщение smirnoff »

Dragony писал(а): 30 апр 2020, 18:29 Ну, не знаю...
Резистор подтягивающий на 4,7...10кОм цепляли к сигнальной ноге датчика?
Ага

Отправлено спустя 3 минуты 3 секунды:
nalnik писал(а): 30 апр 2020, 18:06
smirnoff писал(а): 30 апр 2020, 17:52 Заработало, когда подключил экран через I2C
Какое I2C ?
Датчики у меня работают с тремя проводами. Третий из четырех на минус - если нет то творит чудеса.
До этого экран был подключен по 4 проводной схеме, потом взял другой экран и подключил через i2c
Датчик и в том и в другом случае работал на 3 ногах
Dragony
Сержант
Сообщения: 170
Зарегистрирован: 02 янв 2020, 11:55
Имя: Александр
Благодарил (а): 10 раз
Поблагодарили: 4 раза

Вопрос по блоку DHT

Сообщение Dragony »

nalnik писал(а): 30 апр 2020, 18:06 Датчики у меня работают с тремя проводами. Третий из четырех на минус - если нет то творит чудеса.
"В радиотехнике нет чудес - есть только плохие контакты!"(с) :)
Ответить

Вернуться в «Штатные блоки»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость