Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterownik akwarystyczny

DawwidW 06 Cze 2011 13:13 9951 13
  • Sterownik akwarystyczny
    Witam.
    To mój pierwszy projekt, który prezentuję na forum.

    Pomysł zrobienia własnego sterownika zrodził się wraz z pomysłem założenia trochę większego akwarium (240l) niż miałem dotychczas. Akwarium miało być roślinne, tzw. High Tech. Sterownik ma za zadanie ułatwić mi utrzymanie akwarium i wyręczyć mnie w takich czynnościach, jak np. dolewanie i podmiana wody oraz dozowanie nawozów. Dodatkowo pełni funkcję termostatu, wyłącznika czasowego i utrzymuje stały poziom CO2.

    Główne funkcje sterownika:

    *Zapalanie i gaszenie światła;
    *Symulacja wschodu i zachodu słońca przez płynne zapalanie i gaszenie halogenów 12V sterowanych PWM;
    *Pomiar pH i na jego podstawie sterowanie elektrozaworem CO2;
    *Dolewanie i podmiana wody (elektrozawór i pompa wypompowująca starą wodę);
    *Dozowanie płynnych nawozów, za pomocą pompek spryskiwaczy samochodowych na 12V;
    *Pomiar temperatury i sterowanie grzałką (a w przyszłości też chłodziarką).

    Najważniejszym elementem sterownika jest mikrokontroler ATmega32. Pozostałe elementy można podzielić na kilka modułów. Sterownik zasilany jest z akumulatora UPSu (UPS zasila też pompę obiegową w akwarium) napięciem 12V. Układ LM7805 stabilizuje napięcie na poziome 5V (odpowiednie do zasilania elementów sterownika). Za wysterowanie przekaźników odpowiadają dwa ULN2803. Jako zegar zastosowałem PCF8583, który komunikuje się z ATmegą poprzez I2C. Temperaturę wody mierzy LM35DZ. Ostatnim modułem jest wzmacniacz sygnału z elektrody do pomiaru pH oparty o TL074. Schemat wzmacniacza zapożyczyłem ze Skalara. Wszystkie przekaźniki są na osobnej płytce. Załączają one oświetlenie, grzałkę, elektrozawór CO2, elektrozawór wody, pompy dozujące nawozy, itp. Na płytce modułu przekaźników znajduje się też IRF640 wraz z radiatorem z wentylatorem. Steruje on halogenami symulującymi wschód i zachód słońca.

    Sterownik projektowałem i składałem przez kilka miesięcy w wolnych chwilach. Niestety nie obyło się bez problemów. Kilku rzeczy nie przewidziałem i musiałem wprowadzić parę zmian w płytce już po jej wytrawieniu (co widać na zdjęciu spodu). Nie wiem, jaki jest dokładny koszt wykonania sterownika, bo część elementów już miałem i budowa była rozłożona w czasie, ale myślę, że za sam sterownik i moduł przekaźników nie powinno wyjść więcej niż 150-200zł.

    Pierwsze zdjęcia przedstawia panel przedni sterownika, dwa następne płytę główną od góry i dołu, a ostatnie moduł przekaźników wraz z tranzystorem IRF640.

    Schematów na razie nie wstawiam, bo nie są do końca zgodne z rzeczywistym schematem płytki (modyfikacje po wytrawieniu płytki). Jeśli ktoś będzie zainteresowany programem, to też go wstawię, ale najpierw muszę go uporządkować, bo jest trochę chaotyczny (ale działa :D )

    Sterownik akwarystyczny Sterownik akwarystyczny Sterownik akwarystyczny Sterownik akwarystyczny


    Fajne!
  • #2 06 Cze 2011 15:20
    elektro155
    Poziom 26  

    Ładny panel przedni. W czym pisałeś program?

  • #3 06 Cze 2011 16:02
    DawwidW
    Poziom 15  

    Program napisałem w C (WinAVR). Zastosowałem gotowe, znalezione w sieci biblioteki do obsługi I2C i wyświetlacza HD44780.

  • #4 06 Cze 2011 16:47
    finch
    Poziom 20  

    Konstrukcja fajna. Mam pytanie do pomiaru pH, jakiej sondy użyłeś, i jaką masz moc tych halogenów że 18A tranzystor się tak mocno grzeje (chodzi mi o ten wiatrak)?

    Pozdrawiam,
    finch

  • #5 06 Cze 2011 16:57
    DawwidW
    Poziom 15  

    Sonda pH to tania chińska E-2627. Halogeny 2x60W i sam się dziwię, że IRF640 tak mocno się grzeje. Przy podobnej wielkości radiatorze bez wentylatora po ok 2 minutach radiator był już mocno gorący (parzył). A że nie miałem większego radiatora, który zmieścił by się w obudowie, a ten z wentylatorem leżał niepotrzebny i dobrze pasował, to go zamontowałem. Tranzystor steruje halogenami, a w nocy jasnością oświetlenia nocnego LED i wtedy wentylator się nie włącza.

  • #6 06 Cze 2011 17:09
    finch
    Poziom 20  

    A jak masz zrealizowany stopień sterujący tranzystorem i który biegun on załącza?

  • #7 06 Cze 2011 18:51
    DawwidW
    Poziom 15  

    Sterowany jest bezpośrednio z mikrokontrolera. Załącza biegun ujemny.

  • #8 06 Cze 2011 19:01
    finch
    Poziom 20  

    No i masz odpowiedź dlaczego się grzeje, jest nie dosterowany i pracuje na rezystancyjnej części charakterystyki, stąd masz grzałkę. W dokumentacji masz wszystko wyjaśnione. Będziesz musiał dołożyć jakiegoś drivera i wtedy przestanie się grzać, on pracuje raptem na pół gwizdka także nie ma opcji żeby było takie chłodzenie potrzebne.

    DawwidW napisał:
    ... a w nocy jasnością oświetlenia nocnego LED i wtedy wentylator się nie włącza.

    Sam widzisz że jak mu dasz mały prąd (LED`y) to jest zimny a przy dużym prądzie masz kłopot z ciepłem. Zadbaj o to bo upalisz mosa, ja też miałem z tym problemy.

    Pozdrawiam,
    finch

  • #9 07 Cze 2011 00:30
    Magician
    Poziom 12  

    Gratulacje konstrukcji i wykonania. Ciekawy jestem jak zrealizowałeś obróbkę odczytów z sondy ph? Jakieś uśrednianie? W jaki sposób kalibrujesz sondę?
    Dopytuje bo sam powoli zapoznaje się z kontrolerami i właśnie chcę zaprojektować zrobić sterownik akwariowy dla siebie. Jeżeli skłonny jesteś pokazać program to ja oczywiście również chętnie zerknę jak rozwiązałeś kwestie timerów i obsługę menu.

  • #10 08 Cze 2011 09:30
    Sławek-K
    Poziom 15  

    Co do sterowania IRF640 to jest to MOSFET wiec aby "pewnie" wszedł w stan nasycenia (a taki na interesuje) potrzeba podać minimum na bramkę 10V (standardowo daje się +15V). Wtedy możesz oczekiwać katalogowej rezystancji tranzystora (ok. 0,15Ω). Mnożąc tą wartość przez prąd do kwadratu oszacujesz straty tranzystora (dla prądu stałego P=R*I²), który powinien teoretycznie być letni.
    Bardzo ładnie wykonane !
    Prosimy o dołączenie schematu i kodu w [C].

  • #11 09 Cze 2011 11:50
    Joystick
    Poziom 9  

    polecam driver 4427 do tego mosfeta. Na wejście zasilania podajesz napięcie z zakresu 12V-18V (nie mniej, nie więcej raczej) Do współpracy z tym układem potrzebujesz kondensator 100nF, 4,7uF i na wyjściu układu możesz dać coś w okolicach 1nF, ale w sumie to nie musisz jeśli nie chcesz szybko przełączać mosfeta.
    Bardzo prosty układ, a na pewno tranzystor przestanie się grzać.

    Widziałem na alle*o te sondy PH, na aukcji jest napisane, że sprzedają wraz z instrukcją. Czy w instrukcji jest opisane jak nią sterować, czy szukałeś innych źródeł wiedzy?

  • #12 12 Cze 2011 23:45
    DawwidW
    Poziom 15  

    @Magician - Program wymaga jeszcze paru modyfikacji, chcę m. in. zastosować właśnie uśrednianie odczytu z sondy pH. Sonda jest kalibrowana bezpośrednio w programie, bez możliwości późniejszej kalibracji z poziomu sterownika.

    Co do kwestii timerów: Każda funkcja (np. włączenie 1 strefy oświetlenia, włączenie 2 strefy, wyłączenie 1 strefy itd.) ma przypisaną godzinę i minutę. Program przy każdym wykonaniu pętli porównuje godziny przypisane różnym funkcjom z aktualną godziną. Jeśli godzina danej funkcji jest równa aktualnej godzinie, to sprawdzana jest minuta. Jeśli minuta też jest zgodna - funkcja jest wykonywana.

    Obsługa menu: Po naciśnięciu przycisku "MENU" do zmiennej "menu" dodawane jest 1. Każdy element menu (np. ustawianie temperatury, godziny włączenia światła itp.) wykonywany jest tylko, jeśli wartość zmiennej "menu" jest zgodna z jego argumentem. Służy temu funkcja if. Do ustalania wartości (godziny, temperatury itp.) służy potencjometr, z którego napięcie mierzone jest przez ADC i odpowiednio przeliczane, w zależności od tego, jaka wartość jest aktualnie wybierana. Na wyświetlaczy w każdym elemencie menu wyświetlana jest zawsze stara i nowa wartość. Naciśnięcie klawisza "OK" zapisuje nową wartość w miejsce starej.

    @Joystick - Ja nie dostałem żadnej instrukcji. Sposób sterowania zapożyczyłem ze "Skalara".

    Finch, Sławek-K i Joystick - dzięki za pomoc z mosfetem :)

    Schemat i program wrzucę, ale muszę je najpierw uporządkować...

  • #13 14 Cze 2011 10:08
    gbd.reg
    Poziom 20  

    Dlaczego potencjometr? Już któryś raz widzę ADC + potencjometr do regulacji parametrów. Wygodniejszy jest enkoder lub choćby coś na wzór monostabilnego przełącznika trójpozycyjnego, tyle że na gałce (przekręcasz to zmniejsza lub zwiększa wartość, puścisz to wraca do pozycji środkowej), no chyba, że zastosowałeś właśnie taki system, czyli potencjometr w pozycji środkowej - wartość się nie zmienia, potencjometr wychylony (wartość większa lub mniejsza niż na środku) - zwiększanie lub zmniejszanie wartości (szybkość zależna od stopnia wychylenia).

  • #14 14 Cze 2011 23:43
    DawwidW
    Poziom 15  

    Potencjometr z 2 powodów: jest łatwiejszy w obsłudze i zajmuje tylko 1 wyprowadzenie mikrokontrolera.