Spisu treści:

Ultradźwiękowy kontroler poziomu cieczy: 6 kroków (ze zdjęciami)
Ultradźwiękowy kontroler poziomu cieczy: 6 kroków (ze zdjęciami)

Wideo: Ultradźwiękowy kontroler poziomu cieczy: 6 kroków (ze zdjęciami)

Wideo: Ultradźwiękowy kontroler poziomu cieczy: 6 kroków (ze zdjęciami)
Wideo: Prosty wskaźnik poziomu wody Pod Napięciem S5E06 2024, Lipiec
Anonim
Ultradźwiękowy kontroler poziomu cieczy
Ultradźwiękowy kontroler poziomu cieczy

Wprowadzenie Jak zapewne wiecie, w Iranie jest sucha pogoda, aw moim kraju brakuje wody. Czasami, szczególnie latem, widać, że rząd odcina wodę. Tak więc większość mieszkań ma zbiornik na wodę. W naszym mieszkaniu znajduje się zbiornik o pojemności 1500 litrów, który dostarcza wodę. Ponadto w naszym mieszkaniu znajduje się 12 jednostek mieszkalnych. W rezultacie można się spodziewać, że zbiornik już wkrótce się opróżni. Do zbiornika dołączona jest pompa wodna, która dostarcza wodę do budynku. Ilekroć zbiornik jest pusty, pompa pracuje bez wody. Sytuacja ta powoduje wzrost temperatury silnika, aw tym czasie może spowodować awarię pompy. Jakiś czas temu ta awaria pompy zdarzyła się nam po raz drugi i po otwarciu silnika zobaczyliśmy, że przewody cewki są spalone. Po wymianie pompy, aby ponownie zapobiec temu problemowi, postanowiłem zrobić regulator poziomu wody. Planowałem wykonać obwód odcinający zasilanie pompy, gdy woda w zbiorniku spadnie poniżej dolnego limitu. Pompa nie będzie działać, dopóki poziom wody nie osiągnie wysokiego poziomu. Po przekroczeniu górnego limitu obwód ponownie podłączy zasilanie. Na początku szukałem w Internecie, czy mogę znaleźć odpowiedni obwód. Nie znalazłem jednak niczego odpowiedniego. Było kilka wskaźników wody opartych na Arduino, ale nie rozwiązało to mojego problemu. W rezultacie postanowiłem zaprojektować swój regulator poziomu wody. Kompleksowy pakiet z prostym graficznym interfejsem użytkownika do ustawiania parametrów. Starałem się również wziąć pod uwagę standardy EMC, aby mieć pewność, że urządzenie działa poprawnie w różnych sytuacjach.

Krok 1: Zasada

Zasada
Zasada

Prawdopodobnie znasz tę zasadę wcześniej. Gdy ultradźwiękowy sygnał impulsowy jest emitowany w kierunku obiektu, zostaje odbity od obiektu, a echo powraca do nadajnika. Jeśli obliczysz czas przebyty przez impuls ultradźwiękowy, możesz znaleźć odległość obiektu. W naszym przypadku przedmiotem jest woda.

Zauważ, że kiedy znajdziesz odległość do wody, obliczasz objętość pustej przestrzeni w zbiorniku. Aby uzyskać objętość wody, musisz odjąć obliczoną objętość od całkowitej objętości zbiornika.

Krok 2: Czujnik, zasilacz i kontroler

Czujnik, zasilacz i kontroler
Czujnik, zasilacz i kontroler
Czujnik, zasilacz i kontroler
Czujnik, zasilacz i kontroler
Czujnik, zasilacz i kontroler
Czujnik, zasilacz i kontroler
Czujnik, zasilacz i kontroler
Czujnik, zasilacz i kontroler

Sprzęt komputerowy

Do czujnika użyłem wodoodpornego czujnika ultradźwiękowego JSN-SR04T. Procedura pracy jest podobna do HC-SR04 (echo i pin wyzwalający).

Okular:

  • Odległość: od 25 cm do 450 cm
  • Napięcie robocze: DC 3.0-5.5 V
  • Prąd roboczy: <8mA
  • Dokładność: ± 1 cm
  • Częstotliwość: 40 kHz
  • Temperatura pracy:-20 ~ 70 ℃

Zauważ, że ten kontroler ma pewne ograniczenia. na przykład: 1- JSN-SR04T nie może mierzyć odległości poniżej 25 CM, więc musisz zainstalować czujnik co najmniej 25 CM nad powierzchnią wody. Ponadto maksymalny pomiar odległości to 4,5M. Więc ten czujnik nie nadaje się do dużych zbiorników. 2-dokładność wynosi 1 CM dla tego czujnika. W rezultacie, w oparciu o średnicę zbiornika, rozdzielczość objętości, którą pokaże urządzenie, może się różnić. 3-prędkość dźwięku może się różnić w zależności od temperatury. W rezultacie na dokładność mogą mieć wpływ różne regiony. Jednak te ograniczenia nie były dla mnie kluczowe, a celność była odpowiednia.

Kontroler

Użyłem STM32F030K6T6 ARM Cortex M0 od STMicroelectronics. Specyfikację tego mikrokontrolera znajdziesz tutaj.

Zasilanie

Pierwsza część to przekształcenie 220V/50Hz (Iran Electricity) na 12VDC. W tym celu wykorzystałem moduł zasilacza obniżającego napięcie HLK-PM12 buck. Ten konwerter AC/DC może konwertować 90 ~ 264 VAC na 12VDC z prądem wyjściowym 0,25A.

Jak zapewne wiesz, obciążenie indukcyjne przekaźnika może powodować kilka problemów w obwodzie i zasilaniu, a trudności w zasilaniu mogą prowadzić do niestałości, zwłaszcza w mikrokontrolerze. Rozwiązaniem jest odizolowanie zasilaczy. Ponadto musisz użyć obwodu tłumiącego na stykach przekaźnika. Istnieje kilka metod izolowania zasilaczy. Na przykład możesz użyć transformatora z dwoma wyjściami. Co więcej, istnieją izolowane konwertery DC/DC o niewielkich rozmiarach, które mogą odizolować wyjście od wejścia. Do tego celu użyłem MINMAX MA03-12S09. Jest to przetwornica DC/DC o mocy 3W z izolacją.

Krok 3: Nadzorca IC

Nadzorca IC
Nadzorca IC

Zgodnie z notatką aplikacji TI: Kontroler napięcia (znany również jako układ scalony resetowania [IC]) to rodzaj monitora napięcia, który monitoruje zasilanie systemu. Kontrolery napięcia są często używane z procesorami, regulatorami napięcia i sekwencerami – ogólnie tam, gdzie wymagane jest wykrywanie napięcia lub prądu. Nadzorcy monitorują szyny napięciowe, aby zapewnić włączenie zasilania, wykrywać usterki i komunikować się z wbudowanymi procesorami w celu zapewnienia prawidłowego funkcjonowania systemu. możesz znaleźć tę notatkę aplikacji tutaj. Chociaż mikrokontrolery STM32 mają wbudowane nadzorcy, takie jak monitor zasilania, użyłem zewnętrznego układu nadzorczego, aby upewnić się, że wszystko będzie działać poprawnie. W moim przypadku użyłem TL7705 od TI. Możesz zobaczyć opis tego układu scalonego na stronie Texas Instruments poniżej: Rodzina układów nadzorczych napięcia zasilania obwodów scalonych TL77xxA została zaprojektowana specjalnie do użytku jako kontrolery resetowania w systemach mikrokomputerowych i mikroprocesorowych. Kontroler napięcia zasilania monitoruje zasilanie pod kątem zbyt niskiego napięcia na wejściu SENSE. Podczas włączania, wyjście RESET staje się aktywne (niskie), gdy VCC osiągnie wartość zbliżoną do 3,6 V. W tym momencie (zakładając, że SENSE jest powyżej VIT+) funkcja timera opóźnienia aktywuje opóźnienie czasowe, po którym wyjścia RESET i RESET(NIE) przejść nieaktywny (odpowiednio wysoki i niski). Gdy podczas normalnej pracy wystąpi stan zbyt niskiego napięcia, RESET i RESET (NIE) stają się aktywne.

Krok 4: Płytka drukowana (PCB)

Płytka drukowana (PCB)
Płytka drukowana (PCB)
Płytka drukowana (PCB)
Płytka drukowana (PCB)
Płytka drukowana (PCB)
Płytka drukowana (PCB)
Płytka drukowana (PCB)
Płytka drukowana (PCB)

Płytkę zaprojektowałem w dwóch częściach. Pierwsza z nich to płytka drukowana LCD, która jest połączona z płytą główną za pomocą kabla taśmowego/płaskiego. Druga część to płytka drukowana kontrolera. Na tej płytce umieściłem zasilacz, mikrokontroler, czujnik ultradźwiękowy i powiązane elementy. A także część mocy, która jest przekaźnikiem, warystorem i obwodem tłumiącym. Jak zapewne wiecie przekaźniki mechaniczne takie jak przekaźnik, który zastosowałem w swoim obwodzie mogą się zepsuć jeśli zawsze działają. Aby rozwiązać ten problem, użyłem normalnie zwartego styku (NC) przekaźnika. Tak więc w normalnej sytuacji przekaźnik nie jest aktywny i normalnie zwarty styk może przewodzić zasilanie do pompy. Za każdym razem, gdy woda spadnie poniżej dolnego limitu, przekaźnik włączy się, co spowoduje odcięcie zasilania. To powiedziawszy, jest to powód, dla którego użyłem obwodu tłumiącego na stykach NC i COM. Ze względu na to, że pompa miała dużą moc, użyłem do niej drugiego przekaźnika 220 i napędzam go przekaźnikiem na PCB.

Możesz pobrać pliki PCB, takie jak pliki PCB Altium i pliki Gerber z mojego GitHub tutaj.

Krok 5: Kod

Image
Image
Instalacja na zbiorniku
Instalacja na zbiorniku

Użyłem STM32Cube IDE, które jest rozwiązaniem typu „wszystko w jednym” do tworzenia kodu od STMicroelectronics. Opiera się na środowisku Eclipse IDE z kompilatorem GCC ARM. Ponadto ma w sobie STM32CubeMX. Więcej informacji znajdziesz tutaj. Najpierw napisałem kod, który zawierał specyfikację naszego zbiornika (wysokość i średnica). Postanowiłem jednak zmienić go na GUI, aby ustawić parametry w oparciu o różne specyfikacje.

Krok 6: Instalacja na zbiorniku

Instalacja na zbiorniku
Instalacja na zbiorniku
Instalacja na zbiorniku
Instalacja na zbiorniku

W końcu zrobiłem do niego proste pudełko chroniące płytkę przed wodą. Zrobiłem też otwór w górnej części zbiornika, aby umieścić na nim czujnik.

Zalecana: