Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Altium Designer Computer ControlsAltium Designer Computer Controls
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Mini sterownik akwariowy na PIC

kolgreen 15 Apr 2014 15:31 13845 25
  • Mini sterownik akwariowy na PIC

    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 na PIC

    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 na PIC

    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 na PIC

    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 na PIC Mini sterownik akwariowy na PIC Mini sterownik akwariowy na PIC Mini sterownik akwariowy na PIC

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    kolgreen
    Level 15  
    Offline 
    kolgreen wrote 264 posts with rating 230, helped 11 times. Been with us since 2007 year.
  • Altium Designer Computer ControlsAltium Designer Computer Controls
  • #3
    kolgreen
    Level 15  
    dondu wrote:
    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 na PIC
  • Altium Designer Computer ControlsAltium Designer Computer Controls
  • #6
    wojlej
    Level 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
    Level 18  
    Bardzo fajny projekt. Udostępnisz program w formie tekstowej czy tylko hex?
  • #9
    kolgreen
    Level 15  
    Milek79 wrote:
    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 wrote:
    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 wrote:
    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 wrote:
    Bardzo fajny projekt. Udostępnisz program w formie tekstowej czy tylko hex?


    Bardzo dziękuję. Jeśli jesteś zainteresowany...
  • #10
    Karol966
    Level 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 na PIC

    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
    Level 43  
    Karol966 wrote:
    Słowo mini raczej nie pasuje do przedstawionej konstrukcji...
    Mini nie zawsze oznacza wielkość PCB, lecz ilość funkcji
    Quote:
    .... Mini sterownik akwariowy na PIC

    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
    Level 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
    Level 30  
    Freddy wrote:
    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 wrote:
    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
    Level 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
    Level 17  
    Jak wygląda sprawa z oświetleniem? Tzn. bez przyciemniania/rozjaśniania?
  • #16
    kolgreen
    Level 15  
    Bardzo dziękuję za uwagi dotyczące konstrukcji.

    Karol966 wrote:
    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 wrote:
    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 wrote:
    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 wrote:
    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 wrote:
    Ł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 wrote:
    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
    Level 30  
    kolgreen wrote:
    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.
  • #19
    kolgreen
    Level 15  
    krzysztofh wrote:
    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 na PIC

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

    Mini sterownik akwariowy na PIC

    (Triaki podłączone do AC, przekaźniki AC lub DC).
  • #21
    kolgreen
    Level 15  
    krzysztofh wrote:
    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
    Level 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
    Level 15  
    krzysztofh wrote:
    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 na PIC

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

    krzysztofh wrote:
    Wszystko nieudolnie oblane poligonem

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


    To już kolega "po bandzie" pojechał :D
  • #24
    krzysztofh
    Level 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
    Level 15  
    krzysztofh wrote:
    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 wrote:
    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 wrote:
    unika się wprowadzania masy np. pomiędzy piny MOC3063


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

    krzysztofh wrote:
    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
    Level 15  
    Układ został zmodyfikowany.

    Mini sterownik akwariowy na PIC

    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 na PIC

    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 na PIC