На головну сторінку Аквафорум
На головну сторінку




Назад   Аквафорум - форум акваріумістів та тераріумістів > Акваріум та обладнання > "Самоделкин" > Аквариумная автоматика
Аукцион Реєстрація ЧаПи Учасники Календар Нинішні дописи

Примітки

 
 
Параметри теми Параметри перегляду
Prev Попередній допис   Наступний допис Next
Старий 12.02.2009, 14:34   #11
Живу я тут
  
 
Аватар для vanessa
 
Реєстрація: 20.02.2005
Звідки Ви: Вишгород
Дописи: 1.202
сказав Дякую: 142
сказали Дякую 344 раз(и) в 199 повідомленні
Надіслати повідомлення для vanessa на ICQ
Відповідь: Re: Відповідь: Графіки параметрів on-line ===www.aquaforum.ua===

Цитата:
Допис від Starcomputer Переглянути допис
можно подробнее
А що тут детальніше ? Пан знає як міряти температуру за допомогою DS18B20 ? ну або іншим способом.
Далі один термометр треба заізолювати (я попросив у дружини використаний пробник від духів, туди корпус TO-92 якраз гарно влазить) обмотитати тонким шаром тканини (рекомендують батіст, я обмотав звичайною марлею) та опустити кінець тканини у воду (я використав пластикову коробочку з-під ліків, у кришці якої прорізав отвіт і в нього вставив кінець марлі)
далі все це діло поставив від вентилятор від кулєра - потрібен невеликий вітерець. напругу на кулєр дав +5В, щоб менше гудів.

А далі вимірявши дві температури (сухого і водогого) розрахував індекс елемента в таблиці, вийняв значення - це і буде вологість. Таблиця - психрометрична, взята звідси. Звісно в пам’ять процесора завантажена не вся таблиця а тільки її шматок від +15*С до +35*С по сухому термометру.

таблиця була переформатована, відповідні рядки склеєні. получився одномірний масив типу char. шматок програми для розрахунку індекса для avg-gcc наступний
[code]
if(ti[1]>=ti[3])
{
th=(ti[1]-ti[3])>>3; // індекс рядка
if(th!=0)
{
th--; // зкорегувати індекс рядка
th*=24;
th+= (ti[1]>>4)-15;

hyhro=eeprom_read_byte(psihro+th);
}
else // якщо різниця між показами сухого і вологого рівна 0 тоді
hyhro=100; // вологість рівня 100
}
else // якщо різниця між показами сухого і вологого рівна 0 тоді
hyhro=-1; // невираховується
[/code]
тут
ti[1] - покази сухого термометра
ti[3] - покази вологого
значення ті, які віддає DS18B20 без перерахунку ( не ділені на 16)
th - тимчасові змінна для розрахунку власне тут в кінці буде необхідний індекс

у цьому розрахунку мені дещо не подобається. Я не імітував всіх можливих варіантів але при деякій комбінації воно скаче на сусідній рядок по психрометричній таблиці, а мало б скакати по колонках. В глибокий аналіз щоб виявити і скорешувати цей глюк я не вдавався, поки що воно мене влаштовує.

PS: приблизно раз на два дні потрібно доливати воду, як забуду і вона висохне то показує -1
__________________
В державі недержавною мовою має право розмовляти лише гість, невільник чи окупант.


Востаннє редагував vanessa: 12.02.2009 о 14:39..
vanessa поза форумом   Відповісти з цитуванням
Ці 2 користувач(ів) сказали Дякую vanessa за це повідомлення:
Lestat (28.02.2010), Starcomputer (12.02.2009)


Share/Bookmark

 


Тут присутні: 1 (учасників - 0 , гостей - 1)
 

Ваші права у розділі
Ви не можете створювати теми
Ви не можете писати дописи
Ви не можете долучати файли
Ви не можете редагувати дописи

BB-код є Увімк.
Усмішки Увімк.
[IMG] код Увімк.
HTML код Вимк.

Швидкий перехід


Часовий пояс GMT +3. Поточний час: 08:05.


vBulletin 3.8.7 ; Copyright © 2000-2025 Jelsoft Enterprises Limited
Переклад: © Віталій Стопчанський, 2004-2010
(с)Бешлега Олександр Анатолійович, 2002-2025. Використання матеріалів сайту без посилання на джерело заборонено.
Дякуємо за ліцензійну версію форума компанію Барбус, представника торгової марки Sera в Україні.


no new posts