Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Úvod Jak asi víte, v Íránu panuje suché počasí a v mé zemi je nedostatek vody. Někdy, zvláště v létě, je vidět, že vláda škrtí vodu. Většina bytů má tedy nádrž na vodu. V našem bytě je 1 500 litrová nádrž na vodu. V našem bytě je také 12 bytových jednotek. V důsledku toho lze očekávat, že se nádrž velmi brzy vyprázdní. K nádrži je připojeno vodní čerpadlo, které přivádí vodu do budovy. Kdykoli je nádrž prázdná, čerpadlo pracuje bez vody. Tato situace způsobuje zvýšení teploty motoru a v průběhu času může způsobit poruchu čerpadla. Před nějakou dobou se nám tato porucha čerpadla podruhé stala a po otevření motoru jsme viděli, že jsou spáleny dráty cívky. Poté, co jsme vyměnili čerpadlo, abych se tomuto problému znovu vyhnul, rozhodl jsem se udělat regulátor hladiny vody. Plánoval jsem vytvořit obvod, který přeruší napájení čerpadla, kdykoli voda klesne pod spodní limit v nádrži. Čerpadlo nebude fungovat, dokud voda nevystoupí na vysokou hranici. Po překročení horního limitu obvod znovu připojí napájení. Na začátku jsem hledal přes internet, jestli nenajdu vhodný obvod. Nic vhodného jsem však nenašel. Existovalo několik indikátorů vody založených na Arduinu, ale můj problém nemohl vyřešit. V důsledku toho jsem se rozhodl navrhnout svůj regulátor hladiny vody. Balíček typu vše v jednom s jednoduchým grafickým uživatelským rozhraním pro nastavení parametrů. Také jsem se pokusil zvážit standardy EMC, abych se ujistil, že zařízení funguje v různých situacích.
Krok 1: Princip
Princip už asi znáte. Když je ultrazvukový pulzní signál vyslán směrem k objektu, je odražen objektem a ozvěna se vrátí odesílateli. Pokud vypočítáte čas ujetý ultrazvukovým impulzem, můžete zjistit vzdálenost objektu. V našem případě jde o vodu.
Všimněte si, že když zjistíte vzdálenost k vodě, vypočítáváte objem prázdného prostoru v nádrži. Chcete -li získat objem vody, musíte od celkového objemu nádrže odečíst vypočítaný objem.
Krok 2: Senzor, napájení a ovladač
Hardware
Pro senzor jsem použil vodotěsný ultrazvukový senzor JSN-SR04T. Pracovní rutina je jako HC-SR04 (echo a trig pin).
Brejle:
- Vzdálenost: 25 cm až 450 cm
- Pracovní napětí: DC 3,0-5,5V
- Pracovní proud: < 8mA
- Přesnost: ± 1 cm
- Frekvence: 40 khz
- Pracovní teplota: -20 ~ 70 ℃
Tento ovladač má určitá omezení. například: 1- JSN-SR04T nemůže měřit vzdálenost pod 25 cm, takže musíte nainstalovat senzor alespoň 25 cm nad hladinu vody. Maximální měření vzdálenosti je navíc 4,5 M. Tento senzor tedy není vhodný pro obrovské tanky. 2- přesnost tohoto senzoru je 1 cm. V důsledku toho se na základě průměru nádrže může měnit rozlišení objemu, které zařízení ukáže. 3- rychlost zvuku se může lišit v závislosti na teplotě. V důsledku toho mohou být přesnosti ovlivněny různými oblastmi. Tato omezení však pro mě nebyla zásadní a přesnost byla vhodná.
Ovladač
Použil jsem STM32F030K6T6 ARM Cortex M0 od STMicroelectronics. Specifikaci tohoto mikrokontroléru najdete zde.
Napájení
První část je převést 220V/50Hz (Iran Electricity) na 12VDC. K tomuto účelu jsem použil napájecí modul HLK-PM12 buck step down. Tento měnič AC/DC dokáže převést 90 ~ 264 VAC na 12VDC s výstupním proudem 0,25A.
Jak pravděpodobně víte, indukční zátěž na relé může způsobit několik problémů s obvodem a napájením a potíže s napájením mohou vést k nestabilitě, zejména v mikrokontroléru. Řešením je izolovat napájecí zdroje. Také musíte použít tlumící obvod na reléových kontaktech. Existuje několik způsobů, jak izolovat napájecí zdroje. Můžete například použít transformátor se dvěma výstupy. Kromě toho existují izolované převodníky DC/DC v malé velikosti, které mohou izolovat výstup od vstupu. K tomuto účelu jsem použil MINMAX MA03-12S09. Jedná se o 3W DC/DC převodník s izolací.
Krok 3: IC supervizora
Podle poznámky aplikace TI: Supervizor napětí (také známý jako resetovaný integrovaný obvod [IC]) je typ monitoru napětí, který monitoruje napájení systému. Supervizory napětí se často používají s procesory, regulátory napětí a sekvencery - obecně tam, kde je vyžadováno snímání napětí nebo proudu. Správci monitorují napěťové lišty, aby zajistili zapnutí, detekovali chyby a komunikovali s integrovanými procesory, aby zajistili zdraví systému. tuto poznámku k aplikaci najdete zde. Přestože mikrokontroléry STM32 mají vestavěné supervizory, jako je monitor napájení, použil jsem externí čip supervizora, abych zajistil, že vše bude fungovat dobře. V mém případě jsem použil TL7705 od TI. Popis tohoto IC na webových stránkách společnosti Texas Instruments můžete vidět níže: Rodina supervizorů napájecího napětí integrovaných obvodů TL77xxA je navržena speciálně pro použití jako resetovací ovladače v mikropočítačových a mikroprocesorových systémech. Supervizor napájecího napětí monitoruje pod napětím podmínky na vstupu SENSE. Během napájení se výstup RESET stane aktivním (nízkým), když VCC dosáhne hodnoty blížící se 3,6 V. V tomto okamžiku (za předpokladu, že SENSE je nad VIT+) funkce časovače zpoždění aktivuje časové zpoždění, po kterém výstupy RESET a RESET (NENÍ) neaktivní (vysoká, respektive nízká). Pokud během normálního provozu nastane stav podpětí, RESET a RESET (NE) budou aktivní.
Krok 4: Deska s plošnými spoji (PCB)
Desku plošných spojů jsem navrhl ve dvou kusech. První je LCD PCB, která je připojena k základní desce plochým kabelem. Druhá část je PCB řadiče. Na tuto desku plošných spojů jsem umístil napájecí zdroj, mikrokontrolér, ultrazvukový senzor a související součásti. A také výkonová část, kterou je relé, varistor a tlumící obvod. Jak pravděpodobně víte, mechanická relé, jako je relé, které jsem použil ve svém obvodu, se mohou rozbít, pokud vždy fungují. K překonání tohoto problému jsem použil normálně blízký kontakt (NC) relé. V normální situaci tedy relé není aktivní a normálně blízký kontakt může vést energii do čerpadla. Kdykoli voda klesne pod dolní limit, relé sepne a tím dojde k přerušení napájení. Když jsem to řekl, to je důvod, proč jsem použil tlumící obvod na NC a COM kontakty. Pokud jde o skutečnost, že čerpadlo mělo vysoký výkon, použil jsem pro něj druhé relé 220 a řídím ho relé na desce plošných spojů.
Soubory PCB, jako jsou soubory Altium PCB a Gerber, si můžete stáhnout z mého GitHubu zde.
Krok 5: Kód
Použil jsem STM32Cube IDE, což je řešení typu vše v jednom pro vývoj kódu od STMicroelectronics. Je založen na Eclipse IDE s kompilátorem GCC ARM. Má také STM32CubeMX. Více informací naleznete zde. Nejprve jsem napsal kód, který zahrnoval naši specifikaci nádrže (výška a průměr). Rozhodl jsem se to však změnit na GUI pro nastavení parametrů na základě různých specifikací.
Krok 6: Instalace na nádrž
Nakonec jsem pro něj vyrobil jednoduchou krabičku na ochranu DPS před vodou. Také jsem udělal otvor v horní části nádrže, abych na něj umístil senzor.