logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Sterowanie hydrofornią z Arduino Uno v3: dwie pompy, sprężarka, czujniki, wyświetlacz

Virus19 03 Wrz 2024 08:59 339 5
REKLAMA
  • #1 21213426
    Virus19
    Poziom 16  
    Witam,
    Proszę o pomoc w zbudowaniu urządzenia sterującego hydrofornią na podstawie Arduino Uno v3.
    Kontroler na początku będzie sterować hydrofornią składającą się z dwóch pomp głębinowych, sprężarki, czujnika ciśnienia, czujnika poziomu cieczy w zbiorniku (poziom powietrza 3 przekaźniki). Później dojdą jeszcze 3 pompy.

    Po włączeniu kontroler sprawdza sygnały z czujników, wyświetla je na wyświetlaczu i czeka na zielony przycisk start. Gdy poziom wody = brak i ciśnienie wody mniejsze niż 1 bar, uruchamia się rozruch hydroforni. Rozruch hydroforni polega na zakręceniu zasuwy dn160 z napędem 400V, uruchomieniu jednej z dwóch pomp głębinowych i napełnianiu zbiorników aż do poziomu minimum (brak wody, minimum, ok, max). Po napełnieniu do minimum wyłączają się pompa głębinowa, a uruchamia się sprężarka, która pompuje powietrze aż ciśnienie osiągnie 2.5 bara. Sprężarka się wyłącza, uruchamia się druga z pomp głębinowych i pompuje wodę aż ciśnienie osiągnie 5,2 bara. W tym momencie odkręca zasuwę do połowy, a po spadku ciśnienia do 3.5 bara uruchamia się pierwsza pompa głębinowa, a o ile ciśnienie nie zacznie rosnąć w ciągu 20 sekund, uruchamia się druga pompa. Sterownik krokami po pół obrotu reguluje zawór tak, aby ciśnienie przy włączonych dwóch pompach nie spadało, a rosło choć bardzo powoli. Pompy za każdym razem uruchamiają się na zmianę. Gdy woda osiągnie poziom max, program uruchomi sprężarkę, która będzie włączała się w zakresie ciśnienia 3.5 bara do 4.8 bara. Pompowanie powietrza zakończy się, kiedy poziom wody spadnie do poziomu ok.
    Wyświetlacz 2004 i2c
    Wyświetlacz podzielony na pół
    W każdej linijce wyświetlane dwie wartości
    P1- ON (ON/OFF) P2- ON (ON/OFF)
    Komp- (ON/OFF) U/P - ON/OFF
    Bar- **.** P/W- brak/min/ok/max
    T/Z- ON P1 **** P2**** Komp **** Licznik motogodzin

    P1 pompa 1
    P2 pompa 2
    Komp kompresor - sygnalizuje pracę kompresora
    U/P uzupełnianie powietrza - sygnalizuje punkt pracy kodu kontrolera uruchomiony tryb pompowania powietrza
    Bar- aktualne ciśnienie
    P/W poziom wody
    T/z tryb zimowy po przyciśnięciu niebieskiego przycisku
    Uruchamia się tryb zimowy - poziom wody zero, ciśnienie mniejsze niż 0.5 bar, pompy uruchamiają się jednocześnie na 10 minut co 14 dni o godzinie 1 w nocy. Sprężarka nie pracuje. Jest jeszcze przycisk stop.
    Gdy przyciśniemy start, a stan wody jest = min, a ciśnienie większe niż 1 bar, uruchamia się normalna praca.
    Jak będę miał chwilę narysuje schemat i opiszę dokładnie jakie urządzenia będą zastosowane.
    Pozdrawiam
  • REKLAMA
  • #2 21213505
    Kuniarz
    Moderator Projektowanie
    Cześć !

    Dziękuję, że posłuchałeś sugestii i zbudujesz sobie to sam. Satysfakcja gwarantowana.
    Wypisz dokładnie jakie masz:
    - czujniki poziomów wody
    - czujniki ciśnienia
    - jakieś krańcówki ?

    Trzeba się zastanowić nad trybem zimowym - jeśli co 14 dni, to albo programowo będziesz liczył czas (jest funkcja millis, ale nie wiem czy to się nie przekręci), albo dołożysz do tego zegar czasu rzeczywistego z podtrzymaniem bateryjnym.
    W pierwszym przypadku te 14 dni policzy się mniej-więcej, do tego każdy zanik napięcia wyzeruje to odliczanie. W drugim przypadku trzeba dopisać funkcje ustawiania czasu, co trochę rozbuduje menu urządzenia.

    Narysuj schemat jak będziesz miał podłączony wyświetlacz i przyciski.

    Trzeba się zastanowić nad zakłóceniami - dobre zasilanie Arduino, układy gasikowe na przekaźnikach, może SSR'y ?.
    Wejścia czujników i przycisków też dobrze dać na optoizolacjach.

    Powodzenia !
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #3 21213674
    oscil1
    Poziom 20  
    Proponuję kupić sterownik PLC z odpowidnimi układami wykonawczymi..Takie tworzenie na Arduino bez doświadczenia to próba popełnienia samobójstwa. Wysokie napięcia, projektowanie kontrolerów do hydroforni zostaw profesjonalistom.
  • REKLAMA
  • #4 21213982
    Virus19
    Poziom 16  
    Od kiedy 400 V to wysokie napięcie?
    PLC nie jest głupim pomysłem, bo do takich zadań jest stworzony, ale czemu mnie zniechęcasz?
    Prowadzę działalność związana z wykonywaniem usług elektroenergetycznych, elektroniką zajmowałem się w młodości. Więc też nie jest mi obca... chciałbym zrobić coś na mikrokontrolerze bo nigdy tego nie robilem... sterownik może być inny niż Arduino, ale ten już mam...
  • REKLAMA
  • #5 21214363
    oscil1
    Poziom 20  
    Virus19 napisał:
    chciałbym zrobić coś na mikrokontrolerze bo nigdy tego nie robilem...

    Błędy robią ludzie piszący programy 8h dziennie, stosując różne metody ułatwiające ich znajdowanie, których kod analizują koledzy z pracy aby mieć drugą opinię, stosujący rygorystyczne metody testowania.

    Virus19 napisał:
    ale czemu mnie zniechęcasz?

    Nie zniechęcam, jestem realistą. Jak chcesz pobawić się MCU to hydrofornia na pierwszy projekt to chyba za duże ryzyko.
  • #6 21233398
    miszcz310
    Poziom 24  
    Losowo trafiłem na ten temat to w sumie czemu nie dołożyć swoich 3 groszy.
    Z tego co piszesz to (z mojego punktu widzenia) największym skokiem na głęboką wodę, byłoby napisanie programu do obsługi tego wszystkiego. Jeżeli arduino to albo C++ (arduinowy), albo C po prostu.
    Ja bym proponował C z pewną gwiazdką.
    C ma taką zaletę, że podstawową składnię (od zera) jesteś w stanie opanować w jeden dzień/ jeden weekend. C jest trudne w swojej prostocie, bo implementacja "skomplikowanych" mechanizmów wymaga trochę gimnastyki intelektualnej, która zazwyczaj kończy się segmentation fault :D To jednak nie powinno nas zniechęcać!
    Zaproponowałbym również napisanie pierwszej wersji programu, który implementuje logikę Twojego sterownika tylko na komputerze PC i symulowanie zachowania układu poprzez np. wciskanie klawisza na klawiaturze np. "A" i wpisanie wartości z czujników, klik start i patrzymy co się stanie. Jeżeli wszystko ok, to tą logikę obudowujemy kodem dla sprzętu (czyjniki, wyświetlacze, klawiatury, itp) i wgrywamy do naszego arduino. Jeżeli z samą logiką programu nie jest ok, to proponuję użycie gdb (trzeba zapoznać się z dosłownie z kilkoma komendami i można bardzo skomplikowane programy debugować).
    Takie podejście ma kilka zalet. Międzyinnymi: implementacja logiki takiego sterownika jest najbardziej wymagająca dla początkującego. Kody dla tych wszystkich czujników wyświetlaczy itp. są dostępne w internecie bez problemu. Dlatego jak będziesz miał logikę to doklejenie bajerów to będzie moment jak mawia pewien majster.
    Roplanowanie tego projektu mogło by wglądać tak:
    1-2 dni nauka podstaw C
    3-5 dni tematy zaawansowane (wskaźniki ale nie przesadzajmy, tablice, podział na pliki *.h i *.c, to jest akurat może być dość skomplikowane w połączeniu ze słowem static)
    1-2 dni implementacja np. maszyny stanów - stany np.: START, ROZRUCH_OD_ZERA (Tutaj procedura jaką opisałeś, może dodałbym, jakiś timeout, że jak poziom wody w zbiorniku nie osiągnie minimum to wywał błąd pompowania i wyłącz prąd od wszystkiego), NORMALNA_PRACA (Tutaj rozumiem utrzymywanie ciśnienia w zbiorniku poprzez pompowanie wody, a nie przez sprężarkę), PANIC (nie wiem, może jak ciśnienie spadnie szybciej niż to znaczy wyciek/nieszczelność to wywal błąd, Pompowanie pustego zbiornika nie osiąga minimum przez 30min, itp).
    jakieś 7dni na testowanie i dodawanie kodu do arduino i sprawdzanie czy działa.
REKLAMA