Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Датчик влажности для Proteus


Автор: mr_smit 21.3.2009, 22:52
Есть ли в Протеус датчик влажности? Как называется?

Да, и ещё, схема подключения его к Amega8. Нужно в зависимости от влажности включать или выключать вентилятор в ванной. Если кто знает, поделитесь пожалуйста ссылками. Заранее благодарен.

Автор: cardinal 21.3.2009, 23:28
Цитата(mr_smit @  21.3.2009,  20:52 Найти цитируемый пост)
Есть ли в Протеус датчик влажности? Как называется?

Переменный конденсатор называется smile

Добавлено через 4 минуты и 7 секунд
Кстати smile 
http://forum.vingrad.ru/forum/topic-49667.html

Автор: mr_smit 22.3.2009, 02:34
Цитата(cardinal @ 21.3.2009,  23:28)
Переменный конденсатор называется smile


Как его в протеусе найти? Как он ТАМ называется?

Цитата(cardinal @ 21.3.2009,  23:28)

Кстати smile 
http://forum.vingrad.ru/forum/topic-49667.html


Ничего полезного для себя там не нашел. Необходимо что то типа http://radioded.ru/index.php?option=com_content&task=view&id=19&Itemid=49, только вместо DS1820 подключить HIH-4000-001 (датчик влажности) http://www.chipdip.ru/product0/782799768.aspx. Как схемку переделать?

Автор: cardinal 22.3.2009, 03:16
Цитата(mr_smit @  22.3.2009,  00:34 Найти цитируемый пост)
Как схемку переделать? 

Цитата

Direct input to a controller or other device
is made possible by this sensor’s linear voltage output.

В данном случае за тебя вообще все уже сделали и все что тебе надо это подключить выход сенсора на http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE-%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B9_%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C.

Вообщем я не очень понимаю в чем на самом деле проблема...

Автор: mr_smit 22.3.2009, 10:44
Проблема в том, что я не силен в радиотехнике.

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

В данном случае за тебя вообще все уже сделали и все что тебе надо это подключить выход сенсора на АЦП.


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

Да и с датчиком я погорячился, что он дороговат, лучше http://www.chipdip.ru/product0/9020003563.aspx. В общем как его подключить к Amega8. И как он в Протеусе  называется. Для начала виртуальную схему соберу.

Автор: cardinal 22.3.2009, 14:15
Цитата(mr_smit @  22.3.2009,  08:44 Найти цитируемый пост)
Поэтому, товарищи, тут все умные, гениальные, опытные люди давайте обойдемся без этого:

Ну я же не знал, что ты не поймешь, что я здесь:
Цитата(cardinal @  22.3.2009,  01:16 Найти цитируемый пост)
В данном случае за тебя вообще все уже сделали и все что тебе надо это подключить выход сенсора на АЦП.

имел в виду.

Тогда по пунктам:

1. датчик (а лучше сказать сенсор) влажности является по сути простым конденсатором, емкость которого меняется в зависимости от влажности. Меняется в диапазоне (100-200 pF), то есть фиг да ни фига. Емкость мерить, а тем более такую маленькую, это очень неблагородное дело поэтому
2. лучше взять датчик (с обвеской помимо сенсора), благодаря которой на выходе ты получишь аналоговый сигнал (например напряжение 100-200 mV). В этом случае Honeywell и предлагает датчик с обвеской.
3. чтобы превратить эти 100-200 mV на выходе датчика в цифру (чтобы использовать входящие данные в мк) тебе нужен АЦП. В ATmega8 он есть (ножки PC0-PC5 и ADC6, ADC7 в корпусе TQFP).

А виртуальной схеме тебе нужно просто взять какое-нибудь напряжение (например 100 mV) за сигнал с датчика.

То есть еще раз: вся задача с этим датчиком сводится к преобразованию сигнала датчика в цифру и обработку этой цифры при помощи мк.

Автор: mr_smit 22.3.2009, 18:55
Спасибо огромное, понял. Сейчас попробую сделать в протеусе.

Кстати http://forum.vingrad.ru/index.php?showtopic=221409&view=findpost&p=1586337  smile 

Автор: cardinal 22.3.2009, 20:27
Да, было дело... все не упомнишь... smile 

Автор: mr_smit 22.3.2009, 20:53
Пока допер лишь до этого:

http://radikal.ru/F/s40.radikal.ru/i088/0903/0c/a9887f15ceb4.jpg.html

Т. е. как бы датчик подключил, http://www.chipdip.ru/product0/278451720.aspx тоже. Она на 5 вольт.

То что я придумал вообще будет работать? И правильно ли я мыслю?


P. S. http://www.mirmk.net/content/view/68/29/ есть пример, но что то там как то не понятно, 12 вольт откуда то берутся....

Автор: cardinal 22.3.2009, 23:19
Цитата(mr_smit @  22.3.2009,  18:53 Найти цитируемый пост)
12 вольт откуда то берутся....

Оттуда же откуда и 5В. Не очень понял твоего вопроса.
Цитата(mr_smit @  22.3.2009,  18:53 Найти цитируемый пост)
И правильно ли я мыслю?

Слева резистор надо сверху на 5В подключить, а справа снимать напряжение...

Автор: mr_smit 23.3.2009, 08:24
Цитата

В то время, как микроконтроллер питаетя от стабилизированного источника +5В, ключ и реле получает питание от нестабилизированного напряжения +12В.  Это напряжение снимается  с того же выпрямителя но до стабилизатора


Я хочу подключить блок питания на 5 вольт (DC), не надо мне никаких нестабилизированных 12 вольт. Подвести 220 и через блок питания 5 вольт завести на контроллер и 220 через релюшку на вентилятор. В общем как нарисовал на схеме.

Цитата

Слева резистор надо сверху на 5В подключить


Резистор добавлю (сейчас нет протеуса под рукой).

Цитата

а справа снимать напряжение...


А я что делаю? Я завел выход с датчика (напряжение smile ) на вход (АЦП) контроллера. Разве неправильно?

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

Автор: xvr 23.3.2009, 18:08
Мда, до чего дошел технический прогресс - использовать МК вместо компаратора, это сильно!  smile 
По поводу 
Цитата

Ток срабатывания не более, 64 мА
 - для голого выхода МК многовато (обычно там максимум 20-25 ма). Стоит добавить транзистор, или запараллелить несколько выходов МК
Еще одно - 100-200 мв с выхода датчика как то маловато, неплохо было бы усилить, раз так в 10-15 (иначе точность будет никакая)

Автор: mr_smit 24.3.2009, 21:12
Вот какая схема получилась у меня:
http://radikal.ru/F/s59.radikal.ru/i164/0903/23/1737714e5041.jpg.html

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

http://radikal.ru/F/s60.radikal.ru/i169/0903/dc/017fe0201e4f.jpg.html

Код

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

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

   }


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

Автор: cardinal 24.3.2009, 21:31
Цитата(mr_smit @  24.3.2009,  19:12 Найти цитируемый пост)
Почему? 

А что он должен делать по твоему?

Автор: mr_smit 24.3.2009, 21:37
Так, похоже зря я нарисовал блок питания В1. Но тогда где взять Vcc ???

http://radikal.ru/F/s49.radikal.ru/i124/0903/27/12333d6f33fa.gif.html

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


Цитата

А что он должен делать по твоему?


Спустя 3 секунды после запуска, подать логическую "1" (т.е. 5В) на порт PB0, что в свою очередь должно привести к подаче напряжения на "вентилятор".

http://easyelectronics.ru/upravlenie-moshhnoj-nagruzkoj-peremennogo-toka.html

Автор: cardinal 24.3.2009, 22:15
Цитата(mr_smit @  24.3.2009,  19:37 Найти цитируемый пост)
Спустя 3 секунды после запуска, подать логическую "1" (т.е. 5В) на порт PB0, что в свою очередь должно привести к подаче напряжения на "вентилятор".

А зависает он до этого? А если выкинут задержку на 3 секунды?

Автор: mr_smit 24.3.2009, 23:02
Зависает сразу после нажатия "пуск".

И так
Код

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

        
        while (1) {
        
        PORTD = 0xff; // установить "1" на всех линиях порта D
        }

   } 


и так
Код

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

        
        PORTD = 0xff; // установить "1" на всех линиях порта D

   } 


виснет. Я думаю проблема в схеме.

Автор: xvr 24.3.2009, 23:24
Цитата(mr_smit @ 24.3.2009,  21:37)
Так, похоже зря я нарисовал блок питания В1. Но тогда где взять Vcc ???

http://radikal.ru/F/s49.radikal.ru/i124/0903/27/12333d6f33fa.gif.html

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

А в эти "Hidden Pins" случайно Vcc и GND не входят?  smile 

Автор: cardinal 25.3.2009, 00:19
Я вообще не очень понимаю, зачем тебе виртуальная схема...

Автор: mr_smit 25.3.2009, 08:17
Цитата(xvr @ 24.3.2009, 23:24)
А в эти "Hidden Pins" случайно Vcc и GND не входят?


Входят, а их можно как нибудь отобразить?

Цитата(cardinal @ 25.3.2009,  00:19)
Я вообще не очень понимаю, зачем тебе виртуальная схема...


Чтобы схему в принципе собрать. Да заодно и проверить её работоспособность, до того как за паяльник возьмусь.

Кстати, я не только здесь этот вопрос задал: http://radiokot.ru/forum/viewtopic.php?t=14707

Автор: xvr 25.3.2009, 08:33
Цитата(mr_smit @ 25.3.2009,  08:17)
Цитата(xvr @ 24.3.2009, 23:24)
А в эти "Hidden Pins" случайно Vcc и GND не входят?


Входят, а их можно как нибудь отобразить?

Отобразить - не знаю (с Proteus не рабоал), а вот подключить к питанию - обязательно.

Автор: cardinal 25.3.2009, 16:45
Цитата(mr_smit @  25.3.2009,  06:17 Найти цитируемый пост)
Чтобы схему в принципе собрать. Да заодно и проверить её работоспособность, до того как за паяльник возьмусь.

Есть один неплохой сайт myrobot.ru. Там есть пример простого применения мк:
http://myrobot.ru/stepbystep/mc_first_project.php
Взглянув на это ты поймешь, что паять тебе нечего. А толку будет больше.

Автор: mr_smit 25.3.2009, 22:31
Цитата(cardinal @ 25.3.2009,  16:45)
Цитата(mr_smit @  25.3.2009,  06:17 Найти цитируемый пост)
Чтобы схему в принципе собрать. Да заодно и проверить её работоспособность, до того как за паяльник возьмусь.

Есть один неплохой сайт myrobot.ru. Там есть пример простого применения мк:
http://myrobot.ru/stepbystep/mc_first_project.php
Взглянув на это ты поймешь, что паять тебе нечего. А толку будет больше.

Да был я на этом сайте.

Сейчас один вопрос - Как 220 с микроконтроллера включить?

Тут больше написали:

http://radiokot.ru/forum/viewtopic.php?t=14707

http://radiokot.ru/forum/viewtopic.php?t=14759

P.S. Паять нечего, ага, как же.....  smile 

Автор: cardinal 25.3.2009, 23:15
Ты же давно уже нашел реле
Цитата(mr_smit @  22.3.2009,  18:53 Найти цитируемый пост)
Т. е. как бы датчик подключил, эту релюшку тоже. Она на 5 вольт.


Только смотри аккуратно с 220В работай. В том числе влага и 220В это дело опасное! У меня опыта в этом плане нет - спроси на том форуме например...

Автор: mr_smit 26.3.2009, 09:35
 smile  smile  smile  smile  smile 

Цитата

Только смотри аккуратно с 220В работай. В том числе влага и 220В это дело опасное! У меня опыта в этом плане нет - спроси на том форуме например...


Спасибо за совет. Выручил. smile 

Автор: mr_smit 27.3.2009, 11:05
Что означает:

Код

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


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

Автор: xvr 27.3.2009, 12:23
Цитата(mr_smit @ 27.3.2009,  11:05)
Что означает:

Код

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


Число в бинарном представлении

Цитата

По какому принципу устанавливается номер ножки порта?
По битовому соответствию:
PORTB=0b00000001; - PB0 в 1, остальные в 0
PORTB=0b00000010; - PB1 в 1, остальные в 0
PORTB=0b00000100; - PB2 в 1, остальные в 0

Автор: mr_smit 27.3.2009, 21:01
Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)