Измерения | измеритель влажности на HIH-4000 |
|
---|---|---|
Dmitry_177: один кондей между 1-й и 8-й ножкойИменно так. Про Vref Сергей уже ответил. |
|
|
R4,R5 - 0.5 Вт; R6 - 2 Вт. Dmitry_177: R5 он нужен ли? Dmitry_177: Но действительно разницы никакой, поставлю ка я все же 1N4004 .. |
|
|
AlexAlcoa: Dmitry_177: один кондей между 1-й и 8-й ножкойИменно так. Я просто почему спросил, получается что конденсатор С2 и есть между 1-й и 8-й ножкой.. Сегодня был в Москве, конденсатор 275VAC типа Х2 я не нашел, зато купил К73-17 0.01мкФ*400В и еще купил высоковольтный СВВ-81(аналог К78-2) 0.01мкФ*1кВ на всякий случай Но для начала поставлю я наверно К73-17 |
|
|
Dmitry_177: СВВ-81(аналог К78-2) 0.01мкФ*1кВ |
|
|
Cheeeper: железо уже "разжевали", а не пора ли переходить к ПО? ага, остался только последний штрих, пришла в голову идея все же выводить на циферблате влажность в процентах, подумываю переделать схемку на МК 16F877 |
|
|
Dmitry_177: пришла в голову идея все же выводить на циферблате влажность в процентах Dmitry_177: подумываю переделать схемку на МК 16F877 |
|
|
Сергей К: Я бы посоветовал вместо древнего PIC16F877 использовать более новый аналог PIC16F887 (если он есть в Ваших краях). Может и есть, но у меня есть в наличии несколько 16F877, их я и хочу использовать Итак, сегодня собрал на монтажке пробную схемку на основе МК PIC16F877, в принципе все тоже самое только МК другой и подключение к нему соответственно и добавил генератор на 4МГц т.к. внутреннего у него нет. И попробовал попрограммировать МК под этот датчик, только я не подключал вентилятор на 220В и не подключал циферблат, а результат выводил светодиодами проценты в двоичном виде (PORTB), показания вроде адыкватные: в обычном состоянии влажность 32%, есни на датчик глубоко дыхнуть результат подскакивает до 64%, один раз подскочило до 96%, единственное что меня смущает, так это то что все эти результаты почему-то делится ровно на 32, а других значений он не показывал.. Вот сама программа, компилятор HI-TECH: #include <pic.h> __CONFIG(HS & WDTDIS & PWRTEN & BOREN & LVPDIS & DUNPROT & WRTEN & DEBUGDIS & UNPROTECT); const float ZeroOffset = 0.830204; // константа показания датчика при нуле static bit ReadVl = 0; // флаг можно ли считывать из ADRESH и ADRESL void main (void) ADCON1 = 0b10001110; T1CKPS1 = 0; TMR1ON = 1; ADIF = 0; PEIE = 1; while(1) PORTB = (int)(ValueVl * ADCoeff - ZeroOffset)/OnePrVl; // вычисляем и отображаем в PORTB двоичным видом светодиодами ReadVl = 0; static void interrupt isr(void) GODONE = 1; TMR1IF = 0; if(ADIE && ADIF) ADIF = 0; эх жаль что здесь нельзя отобразить код в более удобном длячтения виде.. |
|
|
Dmitry_177: значение Vref / 1024 Dmitry_177: const float ZeroOffset = 0.830204; // константа показания датчика при нуле |
|
|
Сергей К: Dmitry_177: значение Vref / 1024 |
|
|
Сергей К: Dmitry_177: значение Vref / 1024 Ага, я тоже думал об этом.. Но т.к. с нулем считают ведь по идее с ним и будет 1024.. Сергей К: В данном случае ADCoeff =0; ZeroOffset=0; OnePrVl = 0;. Как у Вас оно считается? Честно говоря не знаю.. Но если компилятор считал бы ADCoeff =0; ZeroOffset=0; OnePrVl = 0; то тогда по идее в PORTB ничего не отображалось бы.. Сделал я вот так: float ValuePr = 0; ValuePr = (float)(((float)ValueVl * ADCoeff - ZeroOffset)/OnePrVl); PORTB = (unsigned char)ValuePr; и действительно работает.. Только мне не понятно почему внутри скобок еще одно приведение к float.. Что мы им переводим? ValueVl или результат умножения ValueVl*ADCoeff? Сейчас в комнате влажность колеблится между 40-41% если на него дыхнуть не помню сколько он показывал но видно, что влажность плавно повышается и потом плавно падает.. Интересно, а как бы его проверить поточнее в домашних условиях? |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |