Ќапример TDA7294

–адио от >—хемы >÷ифровые устройства >Ѕытова€ техника >

“еги статьи: ƒобавить тег

ќчередной термостат на Tiny2313 и DS18B20

јвтор: — ј«ќ„Ќ» 
ќпубликовано 16.01.2017.
—оздано при помощи  ото–ед.

 атегорически приветствую всех  отов, а заодно и поздравлю с Ќовым 2017 годом. 

“акже хочу выразить благодарность котам за посто€нную помощь в реализации идей: ARV, Z_h_e, Albert_V, pyzhman, Kavka, oleg110592 и другим, кого не упом€нул...

Ќаконец-то и € решил опубликовать на любимом сайте свое творение, долго не решалс€, но подобных термостатов было собрано уже штук 6 и все исправно труд€тс€ в течение года. ¬се они включают/выключают различные вентил€торы дл€ охлаждени€ при достижении "верхней" температуры. 

 ак это работает.

—обственно о чем речь. «аказали мне как-то изобрести простенький термостат (даже проще - термометр) и собрал € его ради интереса из того, что было под руками, а также в учебных цел€х (распотрошить протокол 1-Wire).

“ермостат очень простой и представл€ет из себ€ устройство с семисегментным четырехразр€дным индикатором. —обран на микроконтроллере ATTiny2313. ѕодключаетс€ к нему всего один внешний датчик DS18B20. ƒвум€ кнопками настраиваетс€ температура верхнего порога (во всем диапазоне температур работы датчика от -55 до +125 градусов ÷ельси€), при нажатии на любую кнопку пропадает значок градуса в правом разр€де, через некоторое врем€ (ориентировочно 30 секунд) термостат переходит в режим контрол€ температуры, а значение выставленного порога сохран€етс€ в пам€ти EEPROM.

¬ режиме контрол€ температуры отображаетс€ значок градуса в правом разр€де индикатора. ѕри достижении установленной температуры включаетс€ нагрузка (см. схему там транзистор с открытым коллектором) и на индикаторе в правом разр€де еще по€вл€етс€ дес€тична€ точка (символизирует о работе нагрузки).  огда температура упадет на пару градусов - нагрузка отключаетс€. ¬от и все! 

ќб 1-Wire.

ќписаний протокола 1-Wire в сети очень много, поэтому в него уже углубл€тьс€ не буду, скажу лишь одно дл€ начинающих, что всегда старайтесь разбить большую задачу на много маленьких. “ак и в программировании, не пытайтесь освоить все сразу (в том числе и из описани€ этого протокола, как и любого другого), разбивайте на блоки. ќбщение микроконтроллера с датчиком это не все сразу. Ёто какие-то команды и ответы на них. ј команды - это байты циферок (как и ответы). ј байты уже состо€т из битов! “ак вот! ћинимальна€ единица информации - бит - вот с чего надо начинать в изучении и написании своей библиотеки. ¬се задержки/интервалы начинаете с битов чтени€ и записи. ј если смогли записать/считать один бит, то потом уже оформл€ете дальше чтение и запись целого байта. ј потом уже просто все - передаете команду, а подпрограммы все выполн€ют. ))) Ќадеюсь, поможет. 

» сейчас мен€ может начнут пинать, но € все равно сделал по своему. ≈сли внимательно изучите исходник (а он на ассемблере с комментари€ми), то увидите, что у мен€ нет определени€ адреса датчика, как и нет подсчетов контрольных сумм. ѕоэтому и датчик в моем термостате всего один. ¬ любом случае, исходный код свободный и открытый, так что дл€ усовершенствовани€ годитс€ - дерзайте, исправл€йте и цепл€йте кучу датчиков. ))) ј можем и вместе покумекать, тогда вопросы на форум, будут интересные идеи - доработаем. 

—хема.

»так, вот схема (сильно не серчайте, устройство было вообще без схемы, а схема уже потом создавалась, как модель в ѕротеусе, тем более по своей природе коты ленивы и € тоже):

 ак видите, сама схема не отличаетс€ каким-либо разнообразием и изысками, впрочем, как и большинство устройств с микроконтроллерами. ѕочему она именно така€? ј все очень просто, сначала € вз€л индикатор, потом микроконтроллер и примерил одно к другому. “ак разрабатывалась печатна€ плата. √де выводы индикатора и микроконтроллера совпали, там и получились дорожки, а значит и порты зан€ты именно эти. «аметьте также, на схеме не указаны цепи питани€, а на плате разводка под стабилизатор типа 7805 и конденсаторы. Ќасто€тельно рекомендую ставить стабилизатор в корпусе “ќ-220. Ќо если его использовать просто как термометр, то у мен€ дома он вообще питаетс€ от какой-то старой п€тивольтовой зар€дки дл€ телефона, работает без стабилизатора.

“ранзистор на схеме любой. Ќа плате разведен под корпус типа SOT-23, т.е. маленький поверхностный. –екомендую туда поставить вообще какой-нибудь полевой типа IRLML0030. ¬се силовые цепи по моей задумке внешние и управл€ютс€ через реле. 

 стати, в архивах есть и модель ѕротеуса, где можно все понажимать (не забудьте указать микроконтроллеру файл с прошивкой). 

 ак это реализовано.


—начала, конечно делаем Ћ”“ и травим. (–исунок платы в —принтЋайауте прилагаетс€)

 

ƒл€ эксперимента € на первый образец ставил стабилизатор типа 78L05, но его мало, т.к. индикаторы довольно много жрут. ѕочему и советую поставить помощнее. —лева на плате видны штырьки - это дл€ подключени€ питани€ и нагрузки. —права три штырька дл€ подключени€ самого датчика температуры, а снизу дл€ подключени€ кнопок! (всегда свер€йтесь со схемой). “акже на фотографии видны провода - это припа€н программатор, в конце, конечно, все они убираютс€. 

ѕрошитый термостат сразу начинает показывать температуру окружающей среды. ¬нимание, если датчик не подключен, то он всегда будет показывать -1 градус ÷ельси€ (по умолчанию). ))))

ƒавайте теперь запихаем это чудо-юдо в какой-нибудь корпус! ¬едь, хоть какое-то устройство у  ота должно быть в корпусе. )

ѕереднее дымчатое стекло вз€л от какого-то принтера сломанного.

ћалость шлифанем и чуток заполируем. 

 

Ќу и покрасим подход€щей краской из баллона, предварительно заклеив переднюю панель мал€рным скотчем.

√отово! –езультат см. выше. 

≈сли кто-то захочет помен€ть разводку платы - пожалуйста, тогда можно применить микроконтроллер в любом корпусе. »ндикатор, который использовал € называетс€ KEM5461AG (общий катод). Ѕыли и зеленого и красного и желтого цвета. —оответственно программа под них и создавалась. ” кого будут другие индикаторы по разводке ног и по общим анодам - плату и прошивку правьте сами. “ем более, € даже призываю к этому. Ќе следует тупо повтор€ть конструкцию - это не по-кошачьи. –езисторы в анодах индикатора на свое усмотрение, у мен€ сто€т 100 ќм (кстати, на схеме они не показаны, а на плате есть). »ндикаци€ динамическа€, поэтому 100 ќм в самый раз. –езистор в базе транзистора тоже зависит от того транзистора, который вы будете использовать. ƒл€ бипол€рного пойдет в районе 1 кќм или больше. ƒл€ полевого в районе 200 ќм. » еще рекомендую базу (затвор) прит€нуть к земле каким-нибудь резистором в районе 10 кќм (на схеме и плате его нет). 

≈сли у вас получилась длинна€ лини€ до датчика температуры и термометр плохо работает, попробуйте уменьшить сопротивление R1. 

Ќадеюсь кому-нибудь да пригодитс€ в образовательных цел€х. 

¬се вопросы как всегда в форум. 


‘айлы:
 леим стеклышко
ѕлата
јрхив с прошивкой и исходником


¬се вопросы в ‘орум.




 ак вам эта стать€?

«аработало ли это устройство у вас?

39 11 6
2 1 0