- Компоненте
- Ултразвучни модул сензора
- Рад аутоматског регулатора нивоа воде
- Шема и објашњење
- Програмирање
У овом пројекту аутоматског индикатора нивоа и контролера заснован на Ардуину мерићемо ниво воде помоћу ултразвучних сензора. Основни принцип ултразвучног мерења даљине заснован је на ЕЦХО. Када се звучни таласи преносе у окружењу, они се враћају у исходиште као ЕЦХО након удара на било коју препреку. Тако да морамо израчунати време путовања оба звука, значи време одласка и време повратка у исходиште након налета на било коју препреку. И након неког израчунавања можемо добити резултат који је удаљеност. Овај концепт се користи у нашем пројекту воденог регулатора где се пумпа за воду мотора аутоматски укључује када ниво воде у резервоару постане низак. Такође можете да проверите овај једноставни круг индикатора нивоа воде за једноставнију верзију овог пројекта.
Компоненте
- Ардуино Уно
- Модул ултразвучног сензора
- ЛЦД 16к2
- Релеј 6 волт
- УЛН2003
- 7806
- ПВТ
- Бакарна жица
- Батерија од 9 волти или 12 Волтадаптор
- Повезивање жица
Ултразвучни модул сензора
Ултразвучни сензор ХЦ-СР04 користи се за мерење удаљености у распону од 2 цм до 400 цм са тачношћу од 3 мм. Модул сензора састоји се од ултразвучног предајника, пријемника и управљачког кола.
Модул ултразвучног сензора ради на природном феномену звука ЕЦХО. Да би се модул активирао, шаље се импулс за око 10ус. Након чега модул аутоматски шаље 8 циклуса ултразвучног сигнала од 40 КХз и проверава његов ехо. Сигнал након удара препреком враћа се назад и примач прима. Тако се удаљеност препреке од сензора једноставно израчунава по формули датој као
Удаљеност = (време к брзина) / 2.
Овде смо умножили производ брзине и времена са 2, јер је време укупно време потребно за достизање препреке и повратак назад. Према томе, време за постизање препреке је само половина укупног времена које је потребно.
Рад аутоматског регулатора нивоа воде
Рад на овом пројекту је врло једноставан, користили смо ултразвучни модул сензора који шаље звучне таласе у резервоар за воду и детектује рефлексију звучних таласа који је ЕЦХО. Пре свега морамо да активирамо модул ултразвучног сензора за пренос сигнала помоћу Ардуина, а затим сачекамо да примимо ЕЦХО. Ардуино очитава време између активирања и примљеног ЕЦХО. Знамо да је брзина звука око 340 м / с. тако да можемо израчунати удаљеност помоћу дате формуле:
Удаљеност = (време путовања / 2) * брзина звука
Где је брзина звука приближно 340 м у секунди.
Коришћењем ових метода добијамо удаљеност од сензора до водене површине. После ње треба израчунати ниво воде.
Сада морамо израчунати укупну дужину резервоара за воду. Како знамо дужину резервоара за воду, тада можемо израчунати ниво воде одузимајући резултујућу удаљеност ултразвука од укупне дужине резервоара. И добићемо растојање нивоа воде. Сада можемо претворити овај ниво воде у проценат воде и приказати га на ЛЦД-у. Рад комплетног пројекта индикатора нивоа воде приказан је на доњем блок дијаграму.
Шема и објашњење
Као што је приказано у доњем кругу регулатора нивоа воде, пинови окидача и „ехо” модула ултразвучног сензора директно су повезани на пин 10 и 11 ардуина. ЛЦД од 16к2 повезан је са ардуином у 4-битном режиму. Контролни пин РС, РВ и Ен су директно повезани на ардуино пин 7, ГНД и 6. А пин за податке Д4-Д7 повезан је на 5, 4, 3 и 2 ардуина, а зујало је повезано на пин 12. 6 Релеј напона је такође повезан на пину 8 ардуина преко УЛН2003 за укључивање или искључивање пумпе за мотор воде. Регулатор напона 7805 се такође користи за пружање 5 волти релеју и преосталом кругу.
У овом колу ултразвучни сензорски модул је постављен на врх канте (резервоар за воду) за демонстрацију. Овај сензорски модул очитава растојање између сензорског модула и водене површине и приказаће растојање на ЛЦД екрану са поруком „Простор воде у резервоару је:“. Значи да овде показујемо празно место удаљености или запремине воде уместо нивоа воде. Због ове функционалности овај систем можемо користити у било ком резервоару за воду. Када ниво празног воде досегне око 30 цм, Ардуино УКЉУЧУЈЕ водену пумпу покретачким релејем. А сада ће на ЛЦД-у бити приказано „ЛОВ Левел Левел“ „Мотор ОН ОН“, а ЛЕД статуса релеја ће почети да светли
Ако празан простор досегне на удаљености од око 12 цм, ардуино се ИСКЉУЧУЈЕ, а ЛЦД ће приказати „Резервоар је пун“ „Мотор искључен“. Зујалица такође оглашава неко време и ЛЕД лампица статуса релеја ће се угасити.
Програмирање
Да бисмо програмирали Ардуино за регулатор нивоа воде, прво дефинишемо све пин-ове које ћемо користити у пројекту за повезивање спољних уређаја попут релеја, ЛЦД-а, зујалице итд.
#дефине окидач 10 #дефине ецхо 11 #дефине мотор 8 #дефине зујалица 12
Затим иницијализујемо све уређаје који се користе у пројекту.
лцд.бегин (16,2); пинМоде (окидач, ИЗЛАЗ); пинМоде (ехо, ИНПУТ); пинМоде (мотор, ИЗЛАЗ); пинМоде (зујалица, ИЗЛАЗ); лцд.принт („ниво воде“); лцд.сетЦурсор (0,1); лцд.принт ("Индицатор"); кашњење (2000);
Сада иницијализујте модул ултразвучног сензора и прочитајте време слања и пријема ултразвучних таласа или звука помоћу пулсеИн (пин). Затим извршите прорачуне и прикажите резултат на ЛЦД екрану 16к2 користећи одговарајуће функције.
дигиталВрите (окидач, ВИСОКО); делаиМицросецондс (10); дигиталВрите (окидач, ЛОВ); делаиМицросецондс (2); време = пулсеИн (ехо, ХИГХ); растојање = време * 340/20000; лцд.цлеар (); лцд.принт ("Ватер Спаце Ин"); лцд.сетЦурсор (0,1); лцд.принт ("Резервоар је:"); лцд.принт (удаљеност); лцд.принт ("Цм");
Након тога проверавамо услове да ли је резервоар за воду пун или је ниво НИЗАК и предузимамо одговарајуће мере.
иф (дистанце <12 && темп == 0) {дигиталВрите (мотор, ЛОВ); дигиталВрите (зујалица, ВИСОКО); лцд.цлеар (); лцд.принт ("Резервоар за воду пун"); лцд.сетЦурсор (0,1); лцд.принт („Мотор искључен“); кашњење (2000); дигиталВрите (зујалица, ЛОВ); кашњење (3000); темп = 1; } елсе иф (дистанце <12 && темп == 1) {дигиталВрите (мотор, ЛОВ); лцд.цлеар (); лцд.принт ("Резервоар за воду пун"); лцд.сетЦурсор (0,1); лцд.принт („Мотор искључен“); кашњење (5000); }