Контролер за стълбищно осветление

напрежение

Като цяло всичко започна с факта, че моят приятел ме помоли да му направя това устройство. Тъкмо започвах да научавам за микроконтролерите STM32 и това е първият реален проект за мен - преди това се занимавах със светодиоди и бутони, но исках нещо истинско, което да ми е полезно.

Проектът все още не е завършен, ще публикувам статии веднага щом проектът е готов. В момента програмата на бредборда е готова и разработена, схемата е готова, фотомаски за печатна платка с маска и ситопечат.

Така че да започваме. Същността на контролера е проста. В долната и горната част на стълбите са монтирани сензори, които "усещат", че някой иска да се качи или слезе по стълбите. След това LED лентите, разположени под стъпалата, светват плавно и на свой ред.

Сензорът в долната част ще се намира някъде тук:

Trig

Веднага трябва да кажа, че направих снимки от стълбите, на които всичко ще работи. Къщата не е ремонтирана, съжалявам за бъркотията.

Сензорът в горната част на стълбите ще бъде тук:

осветление

Какви са самите сензори? Това са ултразвукови сензори, сонари, HC-SR04. Здравейте хора на arduino!

това

Малко описание. Тук можете да видите, че има 4 пина: Vcc, Trig, Echo, Gnd. Към Vcc свързваме + захранване, към Gnd -. Захранва се с напрежение от 5 волта, но след подаване на захранване сензорът всъщност не измерва нищо. За какво са Trig и Echo? Оказва се, че първо трябва да изпратите импулс към сензора, към Trig контакта и след това да прочетете резултата от Echo контакта. Нека да разгледаме извадка от листа с данни:

стълбищно

Тук се казва, че трябва да приложите кратък импулс с продължителност 10 μs към Trig крака. След това модулът ще изпрати 8 ултразвукови сигнала и ще получи ехо.И тогава ще даде разстоянието до обекта на стъпалото на ехо импулса, чиято продължителност ще бъде пропорционална на разстоянието до обекта. Разстоянието може да се изчисли по формулата: Разстояние (cm) = duration_echo_pulse / 58. Освен това производителят препоръчва минималният цикъл на измерване да бъде 60 ms. В неговия контролер измерването се извършва 10 пъти в секунда, това е напълно достатъчно и цикълът на измерване ще бъде 100ms. Освен това, за да се спестят крака на микроконтролера и да се опрости програмата, Trig щифтовете могат да бъдат комбинирани в един. По този начин Trig сигналите към сензорите ще бъдат изпратени едновременно:

стълбищно

Сега относно силовата част. LED лентите, разбира се, не могат да бъдат свързани директно към микроконтролера, тъй като единият крак на микроконтролера STM32F100x може да превключва максимум 20mA, а токът за лентата може да достигне малко повече от 1A на метър. Да, и напрежението на тези ленти изисква 12 / 24V (в моя случай 12V). Следователно трябва по някакъв начин да приложите напрежение към тях, без да повредите микроконтролера. Най-простото решение в случая е полеви транзистор! Управлява се по напрежение, тоест за да го отвориш е важно на какво напрежение го отваряш, а токът може да е нищожен. Нека да разгледаме схемата:

напрежение

Както можете да видите, всичко е съвсем просто. R2 е издърпване към минус захранването. Необходимо е, така че транзисторът да не "хваща" смущения отвън. Резисторът R1 по принцип също е необходим, въпреки че някои не го инсталират. Това е за защита на самия микроконтролер. Факт е, че "контролният вход" на полевия транзистор или порта има свой собствен капацитет. Когато към него се приложи управляващо напрежение, този капацитет се зарежда и провежда малък ток. За да ограничат този ток, слагат резистор R1, за да не изгори микроконтролера. Въпреки че, отново, не всеки го поставя, тъй като капацитетът на затвора е много малък.Стойностите на резистора са почти от тавана, изглежда, че няма нищо критично тук.

Нека сега да поговорим за това как да изберем транзистор за нашите цели и да, надписът IRLML2502 не е случаен тук, това са тези, които ще бъдат използвани в този проект. И така, как да изберем правилния транзистор? Изхождах от това, което предлага местният магазин, след това погледнах таблиците с данни на тези транзистори и ги избрах по този начин. Първото нещо, което ни интересува, е максималното напрежение, което транзисторът може да превключи:

контролер

Слизаме в листа с данни и намираме максималния ток:

това

Пасва. Освен това важен параметър е напрежението, при което се отваря транзисторът. Тук разглеждаме графиката:

Trig

Различните производители имат подобни графики. Основното нещо е да намерите стойностите на Vds и Id по осите. Сега ще обясня всичко. Тук има много линии, но ни трябва само една. Виждате ли стойността в горния ляв ъгъл на графиката? Това е Vgs, тоест напрежението, приложено към портата спрямо източника. Нашият микроконтролер вади 3,2-3,3 волта някъде приблизително. Търсим най-близкото напрежение в тази плоча. Добре, нека вземем 4-та стойност отдолу, така че нашата линия сред тази метла е 4-та отдолу. Освен това, на лявата ос, търсим стойността на тока, който транзисторът ще превключи. В нашия случай максимумът е някъде около 1.5A, добре, 2A с марж. Търсим пресечната точка на този ток с нашата линия, след което от пресечната точка слизаме:

напрежение

На долната ос ще получим спад на напрежението при изтичане на транзистора, т.е. колко волта ще бъдат загубени на транзистора при превключване на ток 2, при условие че е отворен с напрежение 3V. Както можете да видите, стотинка, тоест можем да кажем, че транзисторът ще се отвори напълно. Така че той ни подхожда. Страхотен!

Е, за да завършим скучната теория, схемата:

контролер

И снимка на килима на фона на устройството на макета: