Elektroda.pl
Elektroda.pl
X
Computer ControlsComputer Controls
Proszę, dodaj wyjątek dla 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 13569 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.
    O autorze
    kolgreen
    Poziom 15  
    Offline 
    kolgreen napisał 261 postów o ocenie 217, pomógł 11 razy. Jest z nami od 2007 roku.
  • Computer ControlsComputer Controls
  • #2
    dondu
    Moderator Mikrokontrolery Projektowanie
    Witam.
    Fajnie, tylko po co załączasz rozmieszczenie elementów na PCB oraz PCB do wydruku, skoro nie załączasz schematu? :)
  • Computer ControlsComputer Controls
  • #3
    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
  • #4
    dondu
    Moderator Mikrokontrolery Projektowanie
    W jakim języku pisałeś program?
  • #6
    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
    barti879
    Poziom 18  
    Bardzo fajny projekt. Udostępnisz program w formie tekstowej czy tylko hex?
  • #9
    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
    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
    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
    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
    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
    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
    virus91
    Poziom 17  
    Jak wygląda sprawa z oświetleniem? Tzn. bez przyciemniania/rozjaśniania?
  • #16
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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