Страница 1 из 2

ATMega8 и датчик влажности. Включение нагрузки 220 В.

Добавлено: Пн мар 23, 2009 19:44:37
mr_smit
Здравствуйте. Если кто сможет дочитать до конца, тот будет просто героем.

Столкнулся с проблемой: дома, после принятия душа/ванны - парная. Причем и в туалете тоже. Вентиляция у них общая. Она нормальная, работает, тянет, но видно не достаточно. Возникла идея поставить вытяжной вентилятор на вентиляцию. Подключить его к микроконтроллеру и к датчику влажности. Т.е. пошел в ванну/душ -> влажность увеличивается -> включился вентилятор, влажность упала ниже заданного уровня, вентилятор выключился. Вот и всё. Может есть где готовая схема - я не нашел. Проблема в том что не могу пока даже собрать схему. Кто чем может.

Датчик: http://www.chipdip.ru/product0/764366588.aspx

Как его подключить к Amega8? Как управлять внешней нагрузкой? Для начала хочу собрать виртуальную схему в Proteus. Датчик выдает сигнал в виде напряжения. Пока додумался лишь до этого:

Изображение

Я завел выход с датчика (напряжение) на вход (АЦП) контроллера. А вентилятор включается с помощью реле. Контроллер выдержит эту релюшку или аналог? (из её характеристик: "Ток срабатывания не более, 64 мА") Если она, например, нормально разомкнутая будет, сделаем "1" на выходе т.е. 5 вольт, она замкнется и останется в этом состоянии всё время пока работает вентилятор. Не сгорит ли контроллер?

Вот тут есть пример, что то наподобие того что я хочу сделать. Но какой то больно сложный.

P.S. Проблема в том, что я не силен в радиотехнике.

Когда я начинал изучать Delphi (для себя, просто было интересно) то многие моменты вызывали ужас. Спустя некоторое время, элементарные вопросы на форумах просто вызывали смех и в голове возникала фраза "Ну елки палки, ну это же элементарно, куча информации в интернете на эту тему". Пропадало всякое желание отвечать/помогать этому человеку. Но для этого человека ваш правильный и подробный ответ - спасительный (по себе знаю). Поэтому, товарищи, тут все умные, гениальные, опытные люди давайте обойдемся без этого:
Куча информации в инете и т.д. ...
Это мы проходили. Если кто то в состоянии превозмочь свою лень, будьте добры поподробней, пожалуйста. Вы скажете "за тебя всё сделать, нет уж". Отвечу - нет. Сам сделаю. Хотя бы объясните. Я не профессиональный программист. Я инженер-теплоэнергетик. Просто столкнулся с реальной проблемой и хочется решить её таким вот способом. Вот и всё. Кто чем может, товарищи, кто чем может.

Добавлено: Пн мар 23, 2009 21:18:27
Владимир К.
У меги8 максимальный ток на ногу -
"DC Current per I/O Pin.........40.0 mA".
Если сразу не сгорит, то потом точно. Транзистор нужно добавлять.

Ни х... себе сколько датчик стоит!!! :shock: :shock: :shock:
Поставьте выключатель с таймером - намного проще и дешевле.

Добавлено: Вт мар 24, 2009 07:41:16
asteroid7
mr_smit
Интересная затея, но есть в ней и камни:
Датчик, который Вы выбрали, похож на датчик относительной влажности. Пар в ванной комнате -> конденсат -> 100% показаний.
Документация на чип-дипе по датчику мутная. Посмотрите на графики. Там нет выходных напряжений при 100% Как он поведёт себя при этом - х.з. И как долго его над паром можно держать, тоже ни слова.

Модель датчика для отладки можно заменить резистором 1k. Как Вы и попытались на схеме. Но, на крайние ноги резистора подать питание, а с движка на вход АЦП меги. В управление реле транзистор поставить.

Программа – это самое интересное. :)
По уровням (превысил не превысил), скорее всего, он работать не сможет. Нужно измерять относительное изменение напряжения. Т.е. считать скорость наростания влажности или первую производную. :)
Ну и ещё, как его калибровать и как определить, что сейчас норма, ответы требующие практических данных. А если на датчике осядет конденсат? Пока он не высохнет…

Добавлено: Вт мар 24, 2009 09:39:43
ploop
А если на датчике осядет конденсат? Пока он не высохнет…
Могу предложить поставить датчик ПОСЛЕ вентилятора, т.к. без вентилятора вытяжка хотя-бы чуть-чуть работает, значит и влажный воздух на него поступать будет. А после срабатывания вентилятора, когда пойдёт уже сухой воздух - он его и высушит до необходимого уровня.

Реле подключить можно по такой схеме:

Изображение

Добавлено: Вт мар 24, 2009 10:48:09
mr_smit
asteroid7 писал(а):mr_smit
Интересная затея, но есть в ней и камни:
Датчик, который Вы выбрали, похож на датчик относительной влажности. Пар в ванной комнате -> конденсат -> 100% показаний.
Документация на чип-дипе по датчику мутная. Посмотрите на графики. Там нет выходных напряжений при 100% Как он поведёт себя при этом - х.з. И как долго его над паром можно держать, тоже ни слова.
...
Программа – это самое интересное. :)
По уровням (превысил не превысил), скорее всего, он работать не сможет. Нужно измерять относительное изменение напряжения. Т.е. считать скорость наростания влажности или первую производную. :)
Ну и ещё, как его калибровать и как определить, что сейчас норма, ответы требующие практических данных. А если на датчике осядет конденсат? Пока он не высохнет…
Спасибо. О конденсате я думал. А то что документация по датчику никакая согласен. Но уж дюже мне идея понравилась.

Кстати, мне не обязательно знать точную влажность. Измерить текущую. Взять её за основу. Сделать небольшой запас. И при превышении включать вентилятор.
asteroid7 писал(а):mr_smit
конденсат -> 100% показаний
Да и пусть. 100% влажности -> значит ВКЛЮЧАЕМ.

Пока давайте всё таки со схемой разберемся. Как вариант можно поставить вместо датчика влажности, датчик температуры DS18B20. Температура всё таки повышается заметно при принятии ванны/душа. Но опять же: на датчике может образоваться конденсат, при включении вентилятора -> увеличится скорость движения воздуха -> увеличивается интенсивность испарения -> температура на поверхности датчика упадет -> вентилятор выключится. Потом опять нагреется, включится, остынет, выключится. И так до бесконечности. Учитывая что "играть" придется в небольшом диапазоне температур от 20 до 30 градусов, это тоже не очень хорошо. Хм. Всё таки очень хочется автоматизировать процесс включения вентилятора. Чтобы он включался именно при принятии ванны, а не каждый раз при включении света.
ploop писал(а):mr_smit
Могу предложить поставить датчик ПОСЛЕ вентилятора, т.к. без вентилятора вытяжка хотя-бы чуть-чуть работает, значит и влажный воздух на него поступать будет. А после срабатывания вентилятора, когда пойдёт уже сухой воздух - он его и высушит до необходимого уровня.
Очень интересное предложение. Спасибо. Надо подумать. Ещё есть у кого какие варианты?

Добавлено: Вт мар 24, 2009 12:20:46
Секретный кот
asteroid7 писал(а):Документация на чип-дипе по датчику мутная. Посмотрите на графики. Там нет выходных напряжений при 100%
Правильно, нет, потому как в ДШ написано, что выпадение конденсата не допускается. И в этом случае датчик может показывать 0% до высыхания.
По крайней мере, я такое видел в ДШ на HIH4000.

Добавлено: Вт мар 24, 2009 12:55:19
ARV
2 датчика DS18B20, один сухой, другой "мокрыый". измерение влажности методом двух термометров. таблицу можно срисовать с гигрометра, имеющегося в любом кабинете физики в школе.

Добавлено: Вт мар 24, 2009 21:03:32
mr_smit
Вот какая схема получилась у меня:
Изображение

Чтобы её протестировать, я убрал "датчик" и решил просто подать "1" на выход контроллера.

Изображение

Код: Выделить всё

   #include <avr>
   #include <avr>
   #define F_CPU 8000000UL  // 8 MHz
   
   int main(void)              
   {
   
   DDRD = 0xff;            // все выводы порта D сконфигурировать как выходы

   _delay_ms(3000);   // Ждем 3 сек.
   PORTD = 0xff; // установить "1" на всех линиях порта D

   }
Скомпилировал в WinAVR. Указал hex файл в протеусе. При запуске протеус намертво зависает и всё. :shock: Почему?

Добавлено: Вт мар 24, 2009 21:29:43
mr_smit
Так, похоже зря я нарисовал блок питания В1. Но тогда где взять Vcc ???

Изображение

Эти "Hidden Pins"на контроллере... я чего то никак не пойму.

Добавлено: Вт мар 24, 2009 22:09:53
asteroid7
Секретный кот писал(а): ... потому как в ДШ написано, что ...
Моя невнимательность. Выделенную нотацию не заметил. По привычке читаю первую страницу и erratа. :)


mr_smit
while(1);
бесконечный цикл в конце кода добавьте.

Добавлено: Вт мар 24, 2009 22:49:45
mr_smit
Не помогает, то же самое. Я думаю, проблема ещё и в схеме.

Добавлено: Ср мар 25, 2009 14:29:37
Rv
Мои наблюдения: ванная комната 1,6м.х1,6м.
В ней стои душевая кобина с принудительной вытяжкой не в винтеляционную шахту. После купания (7-10мин),чтобы кабинка стала сухой, понадобилось два часа.

Добавлено: Ср мар 25, 2009 22:16:26
mr_smit
Вчера поставил вентилятор. Эффект очень заметный. Без него мокнет вся стена. С ним только узкая полоска где непосредственно проходит основной поток (от "выхода" ванны до входа в вентиляцию). Сколько по времени сохнет "полоска" не засекал, но уж точно быстрее чем вся стена.
Как включить 220 с контроллера???

Добавлено: Ср мар 25, 2009 22:21:24
GP1
mr_smit писал(а):Так, похоже зря я нарисовал блок питания В1. Но тогда где взять Vcc ???

Изображение

Эти "Hidden Pins"на контроллере... я чего то никак не пойму.
Вот же у тебя схема, а Vcc - это +5V от которых контроллер питается

Добавлено: Чт мар 26, 2009 09:31:03
mr_smit
Вот же у тебя схема, а Vcc - это +5V от которых контроллер питается
Да понимаю я, где их взять в протеусе если они не видны?????? Я для этого отдельный аккумулятор нарисовал, но это же наверное неправильно

Блин, мужики, ну неужели никто нормально объяснить не может. Каждый что нибудь напишет типа:
на, отъе..ись.

Добавлено: Чт мар 26, 2009 10:41:00
mr_smit
Вот эта схема работает:

Изображение

Добавлено: Чт мар 26, 2009 11:11:30
GP1
mr_smit писал(а):
Блин, мужики, ну неужели никто нормально объяснить не может. Каждый что нибудь напишет типа:
на, отъе..ись.
Сорри, я в шпротеусе не шарю, предпочитаю в "металле", когда я начинал никаких протеусов не было, так что все по старинке только ручками, хотя для avr-ов пользуюсь VMLab, мне хватает

Добавлено: Чт мар 26, 2009 11:19:21
ploop
Как включить 220 с контроллера
Я же уже давал схему, как подключить реле. Чем не подходит?
А протеус оставьте для проверки работы МК, остальное лепить не надо.

Добавлено: Чт мар 26, 2009 19:56:25
mr_smit
ploop писал(а):
Как включить 220 с контроллера
Я же уже давал схему, как подключить реле. Чем не подходит?
А протеус оставьте для проверки работы МК, остальное лепить не надо.
Спасибо!!! Сделал как вы сказали. Всё работает.

Изображение

Добавлено: Пт мар 27, 2009 11:02:22
mr_smit
Что означает:

Код: Выделить всё

PORTB=0b00000001;
PORTB=0b00000010;
PORTB=0b00000100;

По какому принципу устанавливается номер ножки порта?