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

Mini sterownik akwariowy

kolgreen 15 Kwi 2014 15:31 13437 25
  • Mini sterownik akwariowy

    Witam serdecznie.
    Przedstawiam projekt mojego autorstwa - mini sterownik akwarium (zawiera tylko najpotrzebniejsze funkcje). Układ elektroniczny nie posiada jeszcze obudowy. Szczegółowe informacje dotyczące urządzenia publikuję również na stronie internetowej projektu.

    Cele
    Celem projektu jest budowa sterownika akwariowego, którego zadaniem będzie:
    sterowanie oświetleniem - włączenie i wyłączenie o ustalonej porze,
    kontrola temperatury wody w zbiorniku i jej prezentacja na wyświetlaczu LCD,
    sterowanie grzałką celem utrzymania zadanej temperatury w zbiorniku,
    niezależne włączanie i wyłączanie dwóch urządzeń co określony interwał czasu w cyklu dobowym.

    Budowa urządzenia
    Głównym podzespołem sterownika jest mikrokontroler PIC18F4550 o mocy obliczeniowej 12 MIPS został wyposażony przez producenta w sprzętowy port USB 2.0, UART oraz magistralę I2C oraz SPI. Pracuje w przedziale napięć od 2V do 5,5V. Oddaje do dyspozycji 32KB pamięci programu typu Flash i 2048 B pamięci RAM. Posiada 10 bitowy przetwornik analogowo cyfrowy, timer 8 bitowy i trzy timery 16 bitowe.

    Mini sterownik akwariowy

    Mikrokontroler współpracuje z zegarem czasu rzeczywistego DS1307 komunikując się za
    pośrednictwem magistrali I2C.

    Zastosowałem dwa czujniki temperatury DS18B20 podłączone do jednej magistrali danych 1Wire. Jeden z czujników odczytuje temperaturę otoczenia, natomiast drugi (obudowany koszulką termokurczliwą) temperaturę wody. Z uwagi na to iż czujniki pracują na jednej szynie danych, użytkownik przy pierwszym uruchomieniu urządzenia musi zdefiniować, który z nich jest umieszczony w akwarium.

    Dwa przekaźniki HFKW 005-1ZW sterowane napięciem 5V przez tranzystory 2N3904 włączają zewnętrzne urządzenia sterowane napięciem stałym bądź zmiennym (np. podajnik żywności).

    Dwa triaki typu BTA16-6008 w obudowie TO-220 o maksymalnym obciążeniu prądem 16A i maksymalnym napięciu 600V (według noty katalogowej) są sterowane przez mikrokontroler za pośrednictwem optoizolatora MOC3063. Pełnią funkcję sterowania oświetleniem i uruchamiania grzałki.

    Mini sterownik akwariowy





    Urządzenie zostało zaprojektowane na płytce PCB o rozmiarach 111mm x 85mm, podzespoły montowane metodą THT.

    Obsługa urządzenia
    Urządzenie sterowane jest za pomocą klawiatury z trzema przyciskami (plus, zatwierdź, minus) a komunikaty wyświetlane zostają na ekranie 2x16 znaków.

    Mini sterownik akwariowy

    Z poziomu menu można dokonać nastaw urządzenia;
    - utrzymywanej temperatury,
    - włączenia/wyłączenia oświetlenia o zadanej godzinie,
    - ustawienia z jakim interwałem czasowym ma zostać uruchomiony każdy z przekaźników,
    - ustawić aktualny czas,
    - zdefiniować czujniki.

    Panel stanu urządzenia zawiera podstawowe informacje o urządzeniach zewnętrznych, aktualny czas oraz wskazania temperatury wody i otoczenia.

    Podświetlenie ekranu w dzień następuje po wejściu do menu oraz automatycznie w godzinach wieczornych i nocnych.


    Zdjęcia
    Mini sterownik akwariowy Mini sterownik akwariowy Mini sterownik akwariowy Mini sterownik akwariowy


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • TermoPasty.pl
  • #3 15 Kwi 2014 16:06
    kolgreen
    Poziom 15  

    dondu napisał:
    Witam.
    Fajnie, tylko po co załączasz rozmieszczenie elementów na PCB oraz PCB do wydruku, skoro nie załączasz schematu? :)


    Schematu w tak prostym urządzeniu nawet nie rysowałem, od razu projektowałem PCB. Nie zamieściłem natomiast w powyższej wiadomości listy podzespołów, za co przepraszam i już publikuje.

    Mini sterownik akwariowy

  • TermoPasty.pl
  • #6 15 Kwi 2014 17:49
    wojlej
    Poziom 17  

    Czy urządzenie utrzymuje temperaturę z zadaną histerezą? Można ją zmienić? Czy umieszczenie dwóch czujników temperatury w akwarium, ale w różnych miejscach i wyciąganie średniej dałoby lepsze efekty?

  • #7 15 Kwi 2014 18:15
    barti879
    Poziom 18  

    Bardzo fajny projekt. Udostępnisz program w formie tekstowej czy tylko hex?

  • #9 15 Kwi 2014 20:46
    kolgreen
    Poziom 15  

    Milek79 napisał:
    Projekt OK, ale po co używać mikrokontrolera z tak dużą ilością wyprowadzeń?


    Faktycznie mikrokontroler dość spory, jednak z 40 pinów doliczyłem się (tak na szybko) 7 pinów wolnych. Oj, byłem rozrzutny :D . Głównie chodzi też pewnie o rozmiary, ale bardzo lubię PIC18F4550, cena też bardzo akceptowalna. Zrobiłem również gniazdo dla USB - początkowo myśląc o konfiguracji przez USB (jednak przerost formy nad treścią) z poziomu programu na PC. Teraz myślę że można zrobić bootloader i wgrywać aktualizację oprogramowania mikrokontrolera przez USB a nie programatorem.

    wojlej napisał:
    Czy urządzenie utrzymuje temperaturę z zadaną histerezą? Można ją zmienić?


    Odpowiem trochę opisowo. Odczyt temperatury to zmienna typu float, natomiast nastaw temperatury to zmienna typu integer. Histereza wynosi 1 stopień. Wiem, że to bardzo mała histereza, jednak w testowanym zbiorniku ładnie utrzymuje się temperatura.
    Kontrola temperatury to mniej więcej jeden pomiar na sekundę.
    Na pewno program będę rozwijał i wprowadzę możliwość ustawienia histerezy, jednak myślę, że w akwarium znaczne wahania temperatury byłyby raczej niewskazane.

    Bardziej się zastanawiam nad opcją "temperatura dzienna", "temperatura nocna".

    wojlej napisał:
    Czy umieszczenie dwóch czujników temperatury w akwarium, ale w różnych miejscach i wyciąganie średniej dałoby lepsze efekty?


    Myślę, że w większych akwariach mogłoby to mieć sens. W sumie dość ciekawy pomysł. Jednak "na moją logikę" w małych akwariach filtr zapewnia mieszanie wody i temperatura powinna być w miarę wyrównana.

    barti879 napisał:
    Bardzo fajny projekt. Udostępnisz program w formie tekstowej czy tylko hex?


    Bardzo dziękuję. Jeśli jesteś zainteresowany...

  • #10 15 Kwi 2014 22:41
    Karol966
    Poziom 30  

    Słowo mini raczej nie pasuje do przedstawionej konstrukcji...
    Lutowanie wyświetlaczy LCD na przewodach to istny koszmar. Tym bardziej, że użyłeś wtyków, które można podłączać na różne sposoby, nie mają żadnych oznaczeń/ blokad. Jeżeli LCD musi być na przewodzie to może warto pomyśleć nad prostym adapterem? Sam wykonałem coś takiego jak na fotce (oczywiście równie dobrze może być to adapter na złącze IDC 10 pin a nie od razu na taśmę FPC)

    Mini sterownik akwariowy

    Taki adapter można na minimum 3 sposoby przystosować do wyświetlacza, można przylutować gniazdo żeńskie/ męskie (na foto są właśnie 2 różne) jak i można by nawet przylutować odpowiednio płytkę z gniazdem prosto do wyświetlacza (PCB do PCB).

  • #11 16 Kwi 2014 06:25
    Freddy
    Poziom 43  

    Karol966 napisał:
    Słowo mini raczej nie pasuje do przedstawionej konstrukcji...
    Mini nie zawsze oznacza wielkość PCB, lecz ilość funkcji
    Cytat:
    .... Mini sterownik akwariowy

    Taki adapter można na minimum 3 sposoby przystosować do wyświetlacza, można przylutować gniazdo żeńskie/ męskie (na foto są właśnie 2 różne) jak i można by nawet przylutować odpowiednio płytkę z gniazdem prosto do wyświetlacza (PCB do PCB).

    Taśma 10 do gniazda 16, to jest dopiero partactwo - żadnych oznaczeń/ blokad ...

  • #12 16 Kwi 2014 07:26
    dudi_elektr
    Poziom 13  

    [powiem to jak kolega koledze, życzliwie]
    Większość uwag które miałbym do projektu już zostały napisane. Jedynie mogę doradzić wymianę wiertła na nowe. Nie będzie podnosić miedzi wokół otworów.

    Dodatkowo: jeżeli robiłeś płytkę termotransferem i nie poprawiałeś ręcznie ścieżek mazakiem niezmywalnym, to zmniejsz temperaturę grzania papieru, albo skróć czas. Ścieżki wyjdą mniej rozmazane i takie jak na wydruku. Polecam też poprawić pady w bibliotekach kilku elementów, ponieważ ilość miedzi wokół dziury jest ekstremalnie mała i o ile w firmowych płytkach da się takie spokojnie lutować, to w domowym wykonaniu najczęściej szybko odchodzą.

    Co do LCD: moim zdaniem dobrze przylutowana i zabezpieczona (np.: termoglutem) taśma IDE ze starego dysku twardego (oczywiście zmniejszony do 16, lub 10 żył) spełni w zupełności swoje zadanie. Ten wyświetlacz nie będzie pracował. Nie sądzę również, żeby często zachodziła potrzeba jego serwisowania.

  • #13 16 Kwi 2014 11:01
    Karol966
    Poziom 30  

    Freddy napisał:
    Taśma 10 do gniazda 16, to jest dopiero partactwo


    Możę faktycznie tego nie widać ale PCB jest zaprojektowane raczej pod gniazdo 10p a 16p zostaało przylutowane dla tego, że w akurat gdy robiłem zakupu w trzech różnych sklepach nie mieli takiego na stanie. Także słowo partactwo zostaw na inną okazję...

    Freddy napisał:
    Mini nie zawsze oznacza wielkość PCB, lecz ilość funkcji

    W tym przypadku trafniejsze określenie to prosty bo realizuje proste, podstawowe funkcje. Jeśli miało by zostać mini to być może w formie minimalistyczny. Wiać mamy odmienne zdanie, niech tak pozostanie bo dyskusj na ten temat prowadzić nie ma sensu.

  • #14 16 Kwi 2014 13:28
    pholat
    Poziom 9  

    Ładny projekt. Jak na mój gust za duża płytka - ale skoro ma być to rozwijany to pewnie po działającym prototypie przyjdzie minimalizacja :)
    Jakby dodać pomiar pH + np led-bar do sygnalizacji stanu pH to był by naprawdę super projekt - piny są, a w poważnym akwarium dobrze by to wyglądało.
    Wymień skrętkę na taśmę IDC - o niebo lepsze rozwiązanie. Potem można jeszcze kupić garść konektorków do zaciśnięcia za parę złotych i pracuje się zupełnie inaczej ;]

  • #15 16 Kwi 2014 13:31
    virus91
    Poziom 17  

    Jak wygląda sprawa z oświetleniem? Tzn. bez przyciemniania/rozjaśniania?

  • #16 16 Kwi 2014 17:04
    kolgreen
    Poziom 15  

    Bardzo dziękuję za uwagi dotyczące konstrukcji.

    Karol966 napisał:
    Słowo mini raczej nie pasuje do przedstawionej konstrukcji...


    Jak już powiedział Freddy, nie chodzi tu o rozmiary urządzenia, a o funkcjonalności.
    Uważam, że choć mniejsza płytka jest oczywiście możliwa do wykonania (choćby wykonana w SMD) to i tak obudowa ze względu na klawiaturę, ekran i gniazda do podłączenia urządzeń zewnętrznych narzuca minimalne rozmiary. Zatem poco się męczyć z montażem, skoro miejsca w obudowie jest wystarczająco?

    Karol966 napisał:
    Lutowanie wyświetlaczy LCD na przewodach to istny koszmar. Tym bardziej, że użyłeś wtyków, które można podłączać na różne sposoby, nie mają żadnych oznaczeń/ blokad.


    To prawda, trzeba zerknąć do "dokumentacji" żeby poprawnie podłączyć. W sumie w wersji "ostatecznej" można pokusić się o wlutowanie kabli na stałe w płytkę, ponieważ nie ma potrzeby odłączania wyświetlacza. Kabelki są miedziane (nie jakaś plecionka) trudno o ich urwanie.

    Dziękuję za zwrócenie na to uwagi - kolejna wersja na pewno będzie z jakimś bardziej estetycznym rozwiązaniem.

    Karol966 napisał:
    Jeżeli LCD musi być na przewodzie to może warto pomyśleć nad prostym adapterem? Sam wykonałem coś takiego jak na fotce (oczywiście równie dobrze może być to adapter na złącze IDC 10 pin a nie od razu na taśmę FPC)


    Hmm, wpinanie płytki do płytki, po to by mieć inny typ gniazda. Jakoś do mnie nie przemawiają takie "przejściówki", szczególnie w układach "produkcyjnych" (w prototypach jeszcze by uszło).

    virus91 napisał:
    bez przyciemniania/rozjaśniania?


    Niestety bez - używam żarówki energooszczędnej...
    Chciałbym zainstalować inne oświetlenie lub kupić większe akwarium już z "odpowiednim" oświetleniem (które można sterować przez PWM)...

    pholat napisał:
    Ładny projekt. Jak na mój gust za duża płytka - ale skoro ma być to rozwijany to pewnie po działającym prototypie przyjdzie minimalizacja


    Dziękuję, z całą pewnością płytę jeszcze przerobię - to pierwszy egzemplarz.

    pholat napisał:
    Jakby dodać pomiar pH


    Myślałem nad tym, by wprowadzić to już do pierwszej wersji - zrezygnowałem. Głównie ze względu na koszt sondy i to, że nigdy mi się nie przyda. Nie ma sondy - nie mogę napisać programu.

  • #17 16 Kwi 2014 23:49
    Karol966
    Poziom 30  

    kolgreen napisał:
    Hmm, wpinanie płytki do płytki, po to by mieć inny typ gniazda. Jakoś do mnie nie przemawiają takie "przejściówki", szczególnie w układach "produkcyjnych" (w prototypach jeszcze by uszło).


    Akurat w moim konkretnym przypadku właśnie w urządzeniu produkcyjnym znalazł zastosowanie ten adapter. Płytka główna jest 2stronna (tym samym dość droga w wykonaniu) i musi być umieszczona w ataki sposób, że nie znajduje się jej ani kawałek pod złączem LCD. Ten adapter pozwolił znacząco zmniejszyć koszty jak i pozwolił zachować mały rozmiar płytki głównej - wszystko zależy od sytuacji.

  • #18 17 Kwi 2014 15:46
    krzysztofh
    Poziom 29  

    Mam pytanie, w związku z tym, że nie ma schematu. Jakie napięcie jest podane na złącza niebieskie potrójne i podwójne, zlokalizowane w okolicy przekaźników i triaków?

  • #19 17 Kwi 2014 16:36
    kolgreen
    Poziom 15  

    krzysztofh napisał:
    Mam pytanie, w związku z tym, że nie ma schematu. Jakie napięcie jest podane na złącza niebieskie potrójne i podwójne, zlokalizowane w okolicy przekaźników i triaków?


    Na złącza nie jest podawane napięcie. Mają one włączać i wyłączać obwód urządzenia zewnętrznego. Gniazdo oznaczyłem literami A i B.
    Uproszczony schemat:

    Mini sterownik akwariowy

    Podłączenie urządzeń zewnętrznych:

    Mini sterownik akwariowy

    (Triaki podłączone do AC, przekaźniki AC lub DC).

  • #20 17 Kwi 2014 20:28
    krzysztofh
    Poziom 29  

    OK, może źle się zrozumieliśmy. Chodziło mi o to jakie napięcie panuje na tych złączach? Czy może 230AC?

  • #21 18 Kwi 2014 05:00
    kolgreen
    Poziom 15  

    krzysztofh napisał:
    OK, może źle się zrozumieliśmy. Chodziło mi o to jakie napięcie panuje na tych złączach? Czy może 230AC?


    Zgodnie z danymi katalogowymi przekaźnik ma znamionowy prąd styków: 20A/16VDC.

    Triak typu BTA16-6008 można maksymalne obciążyć prądem 16A o napięciu 600V
    (nie wiem czy ścieżka na PCB by to wytrzymała). Obecnie układ działa sterując 230AC.
    Triak jest odseparowany od mikrokontrolera układem MOC3063, jego napięcie przebicia wynosi 7,5 kV, posiada synchronizację przejścia przez ''0''.

  • #22 18 Kwi 2014 08:38
    krzysztofh
    Poziom 29  

    Popatrz kolego na swój projekt PCB. To, że użyte elementy, mają odpowiedni zapad napięciowy to jedno, ale tu przede wszystkim kłaniają się zasady poprawnego projektowania obwodów.
    Nie dość, że brak właściwych odstępów izolacyjnych od części wysokonapięciowej, to jeszcze to wszystko nieudolnie oblane poligonem.
    Jakość druku słaba, więc tym bardziej należało zadbać o odpowiednie odległości pomiędzy ścieżkami.
    A wszystko, na dodatek, pracuje w pobliżu środowiska wodnego, jakim jest akwarium.

  • #23 18 Kwi 2014 11:06
    kolgreen
    Poziom 15  

    krzysztofh napisał:
    Nie dość, że brak właściwych odstępów izolacyjnych od części wysokonapięciowej, to jeszcze to wszystko nieudolnie oblane poligonem.
    Jakość druku słaba, więc tym bardziej należało zadbać o odpowiednie odległości pomiędzy ścieżkami.


    Przyjmuje się, że odległości pomiędzy ścieżkami dla 230V powinny być 1.2mm.
    Jednak zerknijmy na obudowę triaka TO-220 przystosowanego do pracy z napięciami wyższymi od 230V.

    Mini sterownik akwariowy

    Odległość między wyprowadzeniami wynosi 1,15 mm...
    Polecam "Lakier 70", którego odporność na przebicia wynosi 5kV.

    krzysztofh napisał:
    Wszystko nieudolnie oblane poligonem

    krzysztofh napisał:
    A wszystko, na dodatek, pracuje w pobliżu środowiska wodnego, jakim jest akwarium.


    To już kolega "po bandzie" pojechał :D

  • #24 18 Kwi 2014 12:16
    krzysztofh
    Poziom 29  

    Nóżki triaka można tak rozmieścić aby zachować właściwą izolację.
    Po co kolego te wolne "placki" na PCB niczym nie związane z masą? Jaki jest ich cel?
    Przy prawidłowym projektowaniu unika się wprowadzania masy np. pomiędzy piny MOC3063.
    Dla bezpieczeństwa nie stosuje się poligonu w częściach płytki, gdzie występuje napięcie sieciowe.
    Czasem pomaga poprawienie ustawienia elementów. Np. gdyby triaki obrócić o 90°, byłoby zdecydowanie lepiej poprowadzić ścieżki.

  • #25 18 Kwi 2014 15:32
    kolgreen
    Poziom 15  

    krzysztofh napisał:
    Po co kolego te wolne "placki" na PCB niczym nie związane z masą? Jaki jest ich cel?


    Między innymi szybszy proces wytrawiania. Nie jest to przecież układ pracujący z wysokimi częstotliwościami.

    krzysztofh napisał:
    gdyby triaki obrócić o 90°, byłoby zdecydowanie lepiej poprowadzić ścieżki.


    Jednak jest jeszcze radiator i dwa rezystory, rozmiar płytki byłby wtedy większy.

    krzysztofh napisał:
    unika się wprowadzania masy np. pomiędzy piny MOC3063


    Rzeczywiście można ścieżkę poprowadzić pod R16, R19.

    krzysztofh napisał:
    Nóżki triaka można tak rozmieścić aby zachować właściwą izolację.


    Przy obecnym ustawieniu triaków trudno o wysunięcie nóżki w przód lub tył, niewiele też by to dało.
    Dziękuję za zwrócenie uwagi na ten region, w nowej wersji postaram się to rozwiązać lepiej.

  • #26 26 Lip 2014 13:58
    kolgreen
    Poziom 15  

    Układ został zmodyfikowany.

    Mini sterownik akwariowy

    1. Transformator zamontowałem na płycie PCB. Wcześniej był umieszczony w obudowie urządzenia, podłączenie grzałki lub oświetlenia wymagało użycia kostki, podłączenie do płytki było również mało intuicyjne.

    2. Zmiana w projekcie PCB - między innymi małe poprawienie separacji między obwodami wysokiego i niskiego napięcia.

    3. Zmiana mikrokontrolera z PIC18F4550 na PIC16F877A. Związane to było między innymi z rezygnacją z USB. Niestety RC4 i RC5 mogą tylko pracować w trybie wejścia gdy zostanie wyłączone USB ( Disable USB control and configuration in PIC18f4550 ).

    4. Klawiatura sterująca została podłączona do jednego z kanałów przetwornika analogowo cyfrowego (zastąpienie czterech kabli - dwoma).

    5. Przeprojektowanie PCB umożliwiło wyprowadzenie na płycie głównej trzech kanałów przetwornika analogowo cyfrowego (jeden zarezerwowany do obsługi klawiatury). Istnieje możliwość podłączenia sondy PH.

    6. Rezygnacja z portu USB, w razie potrzeby jest UART.

    7. Triaki zostały podłączone do PWM mikrokontrolera, jest możliwość płynnego sterowania oświetleniem i grzałką. Niestety na chwilę obecną w akwarium mam świetlówkę energooszczędną - sterowanie PWM niezaimplementowałem.

    8. Rezygnacja z odczytu temperatury pomieszczenia. Czujnik był na płycie PCB urządzenia i jego wskazania odbiegały od rzeczywistej temperatury w pomieszczeniu.

    9. Złącze programatora zgodne z ICSP - możliwość wpięcia PicProg3 (programowania i zasilania układu wprost z programatora). Wcześniejsze wyprowadzenie było przystosowane do programatora z dość osobliwym standardem wyprowadzeń...

    Załączniki zawierają rozmieszczenie elementów oraz projekt PCB.

    Mini sterownik akwariowy

    Najbardziej aktualną wersję wsadu dla mikrokontrolera, spis podzespołów itp. umieszczam na stronie z pełnym opisem układu - sterownik akwariowy v2.0.

    Będę wdzięczny za wszelkie sugestie dotyczące budowy, rozszerzenia możliwości układu itp. Już teraz wiem, że: wypada wbudować zabezpieczenia (warystor, bezpiecznik).
    Zastanawia mnie następujące zjawisko: żarówka energooszczędna podłączona do układu ma skłonność do migania. Dzieje się to w losowych odstępach czasu, trwa ułamek sekundy... Czy ktoś z forumowiczów ma pomysł jak to rozwiązać i co jest tego powodem?
    Mini sterownik akwariowy