Самодельный гигростат с гистерезисом
Гигростат для инкубатора с гистерезисом
По правде сказать, но мне все эти термометры, термостаты, гигростаты… давно не интересны и надоели. Ну, что сделаешь? Выполняю очередную просьбу. Речь пойдет о схеме гигростата для инкубатора, о которой шел разговор в статье «Управление влажностью в домашнем инкубаторе», размещенной в рубрике «Автоматика». Одно умиляет, схему не надо переделывать.
А вот в программу внесены изменения, теперь появилась возможность выставлять в соответствии с вашими желаниями нужный гистерезис между включением увлажнителя и его выключением. Правда, сделать это можно не с помощью кнопок, а изменением соответствующего шестнадцатеричного числа в машинном коде программы. По умолчанию в программу записан гистерезис в пять процентов. Таким образом, при установленной величине влажности – 50%, сигнал управления с выхода RA1, микроконтроллера пропадет при влажности 55%, а появится и включит нагрузку при 50%. Ниже приведен скриншот окна программ Ic-prog с загруженным в ее кодом программы.
Цифра пять, выделенная красным цветом, это и есть величина гистерезиса, в данном случае пять процентов. Если, например, вам необходим гистерезис величиной десять процентов, то вместо 5, заносите на ее место А. «А» в hex-коде соответствует 10. Не забывайте, что все данные программы записываются в шестнадцатеричной системе счисления. Таким образом, по адресу 7В в этой ячейке (байте) будет записано – 300А. Если ячейка будет иметь вид – 3003, то гистерезис равен – 3%. Надеюсь понятно. Изменить гистерезис можно и непосредственно в загрузочном файле. Ниже показана нужная нам часть hex файла.
Непосредственно в hex файле нужный нам байт находится по адресу в два раза большему, чем адрес в программе Ic-prog. Там был адрес 7В, а здесь 7В х 2 = F6. И еще один нюанс, код команды (инструкции) – 30, и величина переменной – 05, поменялись местами. И так, что делаем в этом случае. Нам нужен гистерезис 6%. Меняем 05 на 06. Таким образом, мы увеличили число на единицу. Последнее число, находящееся на этой строке, состоящее из двух цифр шестнадцатеричного кода — CF, это контрольная сумма строки. Чтобы все прошло корректно, надо скорректировать и ее. Мы увеличили значение одной из ячеек данной строки на единицу, значит, на единицу мы должны уменьшить контрольную сумму. Т.е. СF – 1 = CE. Для работы с числами в шестнадцатеричной системе счисления, как нельзя лучше подходит родной, виндовский калькулятор в инженерном виде. После того, как мы произвели все необходимые действия, можно обновленный файл загружать в микроконтроллер.
еще проще — нужно сложить значения всех байтов (включая контрольную сумму), и младший байт результата должен равняться нулю».
Опубликовал: askarbin 6-07-2010, 15:47 в рубрике: «Матчасть » — «Практика программирования микроконтроллеров Atmel»
Так, в hex файле нашей программы, в первой строке сумма всех байтов равна 2+4=6, итого
контрольная сумма всегда равна 256 — 2 — 0 — 4 — 0 = 250 = $FA. В последней строке одни нули, кроме типа
данных, равного 1, — соответственно контрольная сумма равна 256 — 1 = 255 = $FF.
Надеюсь теперь вам понятно, почему увеличивая значения данных в строке, контрольную сумму надо уменьшать на такое же значение. Ниже приведен полный файл загрузки.
Скачать файл
Загрузочный файл программы:
Нужный полубайт (значение гистерезиса) выделен красным цветом.
:020000040000FA
:020000002428B2
:080008000900FF308600AE0A7A
:1000100003302E058207232816280F281D282808BC
:1000200081208600051485130513232829088120C3
:1000300086000510851705132328893086000510D2
:1000400085130517232808008B01831686012C30A1
:1000500085009F1382308100831207309F0001309A
:100060000421FF303402031D39283230B40001303E
:10007000F120223084008001840A36300402031DFE
:100080003B288510A601A201A301A401A5012830E7
:10009000B00005127630AB002130AC00AB0B4E281F
:1000A0000520AC0B4F2805160F309420851A4228E6
:1000B00014309420851E4228851A5C28851E5E28EF
:1000C000083094200310851E6828851A65280314BB
:1000D000A60DA20DA30DA40DA50DB00B5E2825083D
:1000E000B60099200B210B21C120013004212508E5
:1000F00034020318851405303407250203188510CF
:10010000422882074034793424343034193412348C
:100110000234783400341034083403344634213443
:1001200006340E347F343F34AD000000AD0B95280B
:1001300008000830AF00A701A801A901B60DA90D5C
:10014000A80DA70DAF0BA528B8283330A707A8071F
:10015000A9070330A71DA702A81DA802A91DA9026F
:100160003030A71FA702A81FA802A91FA9029E2816
:100170002808A700290E0F39A8000F30A905B601DD
:100180000800051DC628851DDC28F0280130042143
:10019000B600B50099200B210B210B210519F02881
:1001A000B50BD328B50A3508B600B4009920013044
:1001B000F120051DCD28F02801300421B600B5003E
:1001C00099200B210B210B218519F028B50F35083B
:1001D000B600B40099200130F120851DE328F028F5
:1001E00008008B1383169B008312340883169A0031
:1001F0001C1555309D00AA309D009C149C18FE28AB
:100200001C1183128B17080083169B001C141A08FC
:100210008312B40008005530AB008A30AC000330C4
:10022000AD00AB0B11290520AC0B1229AD0B122927
:020230000800C4
:02400E00503F21
:00000001FF
8 комментариев к “Самодельный гигростат с гистерезисом”
Но почему, сразу надоели все эти термометры , термостаты и гигростаты ? В полне все интересно, и даже очень хорошо может пригодится. Статья-супер, описание — класс. Я уже делал подобное для своего инкубатора. И поверте — такое устройство на процентов 40-50 , увеличивает выход птицы, и на 100 процентов уменьшает головную боль.Автору спасибо!!!!!!!!!!!!!!!!!!!
Здравствуйте.
Пытаюсь решить задачу по регуляции влажности в небольшом объеме. Ваша схема подходит полностью, однако датчик имеет слишком низкий диапазон измерений и точность. Решил использовать DTH22. Однако с этой прошивкой схема не заработала. Хотел у вас спросить, каким образом можно изменить программу, что бы вся эта схема работала с датчиком DTH22?
Привет от Людмилы! Шутка!!! Поищи на сайте, есть несколько схем с использованием 22 датчика. Внизу этой статьи есть «Читайте также:» там ссылки на гигрометры. Или вот этуwww.kondratev-v.ru/avtoma...x-ispytanij.html
Здравствуйте.
Я смотрел те схемы, но у меня очень сильные ограничения по бюджету, раз, и нет необходимости ставить дисплей и много дополнительного всего. в этой схеме все супер. достаточный функционал, достаточная простата изготовления, но точность датчика слишком мала.
Хотел запустить именно эту схему с датчиком 22. А собрав уже эту схему, сейчас она мне показывает влажность в помещении 2%. что конечно же бред. Правильно я понимаю, заменив датчик он просто не стыкуется в программе? и если так, то у меня проблема- я не умею писать программу. Сможете мне помочь в этом? Причем помощь мне нужна и в том что бы научиться напитать программы (но мне кажется обучиться этому не менее месяца уйдет), так и собственно написать саму программу)
Здравствуйте Валерий Юрьевич.
К сожалению я так и не смог решить вопрос о переходе на датчик DTH22 Можете выслать исходник программы?
В долгу не останусь. Объявление с номером вижу)
Привет, Руслан. Давай по порядку, что не выходит? И какой исходник выслать?
Не выходит только одно- подключить именно к этой схеме датчик DTH22. Как я вычитал, это будет только из-за программы. В частности из за времени опроса датчика. Хотя я могу и ошибаться что именно в этом проблема.
Но я так понимаю что вы человек занятой (а разве может быть иначе у человека с столь широким кругом интересов и автором стольких статей)
Поэтому хотел спросить именно исходный код программы для пик контроллера вот на эту схему.
Возможно имея исходник я уже смогу его подстроить и изменить на другой датчик. Но написать свою программу это для меня точно пока еще темный лес.
Привет, Руслан. Не зная языка программирования, ты даже первой строки программы прочитать не сможешь. А исходника мне не жалко.