Подключение датчика DHT22 к Arduino Pro Mini 3.3v
- Войдите на сайт для отправки комментариев
Чт, 19/09/2013 - 20:16
Добрый день
Собираю беспроводной датчик температуры с питанием от батареи.
Для этой цели купил плату Aruino Pro Mini Atmega328 3.3V 8МГц.
Питание подаю 3.3в с USB платы CH340.
Подключаю датчик температуры DHT22 - выдает 0.
Датчик пробовал запитывать от VCC контроллера и от 5V USB адаптера.
Делаю все то же самое на 5V версии Aruino Pro Mini - все работает нормально
Я так понимаю, что то с напряжением логического уровня 3-х вольтового контроллера маловато?
Что можно предпринять в эирм случае?
Согласовать уровни 3,3 и 5 Вольт. Тут уже неоднократно поднималась эта тема
Согласовать уровни 3,3 и 5 Вольт. Тут уже неоднократно поднималась эта тема
Смотрю я даташит на DHT22 - напряжение питания 3-6В
То есть врятли он является 5-вольтовым устройством.
А если точнее 3.3- 6 Вольт.
Значит он является и 3.3 и 6 Вольтовым.
А также 3.62 Вольтовым и 4.12 Вольтовым,
ну только никак ни пятиВольтовым ;)
А если точнее 3.3- 6 Вольт.
Значит он является и 3.3 и 6 Вольтовым.
А также 3.62 Вольтовым и 4.12 Вольтовым,
ну только никак ни пятиВольтовым ;)
Имелся в виду уровень логики, а не питание.
Лучше бы что-то по существу посоветовали
Уровни - пожалуйста:
Логический "0" - 0 Вольт ВСЕГДА!!!!
Логическая "1" :
3.3 В при питании 3.3 В
6 В при питании 6 В
4.12 В при питании:4.12 В
Прдолжить???
А теперь догадайтесь какой будет логическая "1" при 5 Вольтах ...
Кстати, а про резмстор килоОом на 10 с выхода на питание вы не забыли?
http://chingachgook.net/arduino/podklyuchenie-datchika-temperatury-i-vla...
Логический "0" - 0 Вольт ВСЕГДА!!!!
Логическая "1" :
3.3 В при питании 3.3 В
6 В при питании 6 В
4.12 В при питании:4.12 В
Не болтайте ерундой без крайней на то необходимости! Далеко не всегда:
Слово "ВСЕГДА" относилось к датчику DHT22 согласно заголовка темы, а не ко всем семействам цифровых микросхем.
Также для задающего вопрос были опущены не существенные мелочи типа
напряжения насыщения транзисторов ( а скорее всего сопротивление отрытого канала)
А картинка мне очень понравилась, спасибо, вспомнил любимую 155 серию...
Для задающего вопрос существенна схема подключения DHT22 к Arduino Pro Mini 3.3
Теория это интересно, но в связи с тем, что имею законченный электротехничемкий в Политехе много лет назад,
могу про уровни и в справочнике почитать. ;)
К сожалению, не имею дома осцилограф, видимо с ним придется отлаживаться.
На Arduino Pro Mini 5 все работает и с резистором 10к и без него. На Arduino 3.3 датчик работает, но выдает 0.
Датчик питаю с VCC ардуины (напряжение около 3В) или с 5В USB преобразователя.
В дальнейшем планирую запитать всю схему от 3-х аккумуляторов AAA.
Что нужно сделать, чтобы датчик заработал?
Может это быть связано с пониженной частотой ЦПУ (может там тайминги при считывании не правильно задаются)?
Может кто-то видел ссылочку на применение 3.3 вольтовых плат с сенсорами?
Какой резистор стоит между питанием и ножкой данных ? Сколько времени проходит после запроса данных датчикак перед их отправкой?
У меня сейчас работает 2 внешних датчика на NRF24 c DHT22, один из них с двумя DHT22....питание от аккумулятора Li-ion...и все отлично работает
Какой резистор стоит между питанием и ножкой данных ? Сколько времени проходит после запроса данных датчикак перед их отправкой?
Резимтор 10К
Датчики опрашиваю через 15 сек
У меня сейчас работает 2 внешних датчика на NRF24 c DHT22, один из них с двумя DHT22....питание от аккумулятора Li-ion...и все отлично работает
А плата какая?
sav13, какую библиотеку используешь? Если adafruit, читай в соседней теме.
sav13, какую библиотеку используешь? Если adafruit, читай в соседней теме.
Спасибо. Все заработало. Отпишусь еще в этой теме:
Чтобы библиотеку не курочить написал в конструкторе:
DHT dht(dhtPIN, DHT22, 3);
p.s. Как красиво в коде определить частоту процессора? Чтобы код компилировался/работал на 8МГц и на 16МГц платах?
При вызове конструктора указывать 3 для 8МГц (хотя, ИМХО - все равно это "попугаи").
p.s. Как красиво в коде определить частоту процессора? Чтобы код компилировался/работал на 8МГц и на 16МГц платах?
...определить... это узнать или задать?
F_CPU= 8000000UL