Sterownik akwariowy v2
Sterownik akwariowy v2.0
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.
Zmiany w wersji 2.0
Sterownik jest nową wersją układu opianego w artykule “Sterownik akwariowy v1”.
Naniesione zmiany:
- transformator na płycie układu,
- zmiana ścieżek na PCB – zwiększenie separacji między obwodami wysokiego i niskiego napięcia,
- zmiana mikrokontrolera z PIC18F4550 na PIC16F877A,
- klawiatura sterująca podłączona do przetwornika analogowo cyfrowego (zastąpienie czterech kabli – dwoma),
- wyprowadzenie na płycie głównej trzech przetworników analogowo cyfrowych (jeden zarezerwowany do obsługi klawiatury),
- rezygnacja z portu USB, zastąpienie portem UART,
- możliwość użycia sprzętowego PWM do sterowania oświetleniem (płynne rozjaśnianie/ściemnianie) i grzałką,
- rezygnacja z odczytu temperatury pomieszczenia,
- złącze programatora zgodne z ICSP PicProg3.
1. Projekt PCB
Urządzenie zostało zaprojektowane z zastosowaniem podzespołów montowanych metodą przewlekaną (THT). Płyta PCB jest z jedną warstwą ścieżek, jej rozmiar wynosi 135mm na 95mm.
Rys. Projekt PCB urządzenia wraz z rozmieszczeniem podzespołów.
Rys. Płyta główna sterownika akwariowego.
2. Podzespoły urządzenia
Głównym podzespołem jest mikrokontroler PIC16F877A, sterujący przekaźnikami i triakami uruchamiającymi zewnętrzne urządzenia. Jego zadaniem jest również odczyt bieżącej temperatury z czujnika DS18B20, odczyt czasu rzeczywistego z zegara DS1307 i prezentacja danych na wyświetlaczu LCD.
Tab. Wykaz podzespołów
Oznaczenie | Wartość |
---|---|
R2,R3 | 10k |
R1, (R4), R5, R6, (R7), (R9) | 4,3k |
R8 | 4,7k |
R14, R16, R15 | 470 |
R10, R11, R12, R13 | 360 |
C1, C2 | 22pF |
C3 | 100nF |
C4 | 100uF |
C5, C6 | 470uF |
U1 | PIC16F877A (mikrokontroler) |
U2 | DS1307 (zegar czasu rzeczywistego) |
BAT | CR2032 (bateria 3,3V) |
BUZZ | HCM1005 (brzęczyk 5V) |
(montowany poza płytą) | DS18B20 (czujnik temperatury) |
U5, U6 | BTA16-6008 (triak) |
U3, U4 | MOC3061 |
U7 | LM7805 (stabilizator napięcia 5V) |
Q1, Q2, Q3 | 2N3904 (tranzystor) |
D4 | mostek prostowniczy |
D1, D2, D3 | 1N4004 (dioda prostownicza) |
HFKW 005-1ZW (przekaźnik 5V) | |
X1 | 20MHz (kwarc) |
X2 | 32,768 kHz (kwarc) |
J1, J2, J3, J4, J5, J6, J7, J8, J9, J10 | listwa kołkowa |
(montowany poza płytą) | WC1602A0 |
2.1. Złącza
Rys. Płyta główna z podłączonymi urządzeniami zewnętrznymi
Tab. Oznaczenia złącz
Oznaczenie | Funkcja |
I2C | Szeregowa magistrala danych I2C |
1W | Magistrala 1Wire do podłączenia czujnika temperatury |
ICSP | Łącze programatora mikrokontrolera ICSP |
LCD | Gniazdo wyświetlacza LCD |
Key | Gniazdo klawiatury |
R1 | Wyjście pierwszego przekaźnika, włącz/wyłącz urządzenie zewnętrzne |
R2 | Wyjście drugiego przekaźnika, włącz/wyłącz urządzenie zewnętrzne |
La | Gniazdo oświetlenia (230 VAC) |
Gr | Gniazdo grzałki (230 VAC) |
Zas | Gniazdo zasilania 230 VAC |
2.2. Mikrokontroler
Czterdziestopinowy mikrokontroler PIC16F877A o mocy obliczeniowej 5 MIPS. Został wyposażony przez producenta między innymi w PWM, magistralę I2C oraz w dziesięcio bitowy ośmiokanałowy przetwornik analogowo cyfrowy. Pracuje w przedziale napięć od 2V do 5,5V. Oddaje do dyspozycji 14KB pamięci programu typu Flash i 368 B pamięci RAM. Posiada dwa timery 8 bitowe i jeden timer 16 bitowy.
Rys. Wyprowadzenia PIC16F877A (źródło: Nota Katalogowa).
2.3. Zegar czasu rzeczywistego
Układ scalony DS1307 jest zegarem czasu rzeczywistego. Mikrokontroler odczytuje aktualny czas z zegara za pośrednictwem magistrali I2C. W przypadku zaniku zewnętrznego zasilania, zegar automatycznie przełącza się na zasilanie awaryjne z baterii 3,2V.
Rys. Zegar czasu rzeczywistego DS1307.
2.4. Czujnik temperatury
Odczyt temperatury realizowany jest za pomocą czujnika DS18B20. Komunikacja między mikrokontrolerem a czujnikiem odbywa się po magistrali 1Wire, która umożliwia jednoczesne podłączenie wielu czujników. Jeden układ zainstalowany jest na płycie modułu, czujnik temperatury wody w zbiorniku należy podłączyć do złącza 1Wire (rozdział 2.1).
Rys. Wyprowadzenia układu DS18B20
2.5. Przekaźniki
Dwa przekaźniki typu HFKW 005-1ZW sterowane napięciem 5V przez tranzystory 2N3904 włączają zewnętrzne urządzenia sterowane napięciem stałym bądź zmiennym.
2.6. Triaki
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.
Rys. Sterowanie triakiem przez optoizolator MOC3063 (źródło: Nota Katalogowa).
Triaki zostały wyposażone w chłodzenie radiatorami typu FK237 o rezystancji termalnej 21°C/W.
Rys. Radiator FK237 (źródło: Nota Katalogowa).
2.7. Wyświetlacz LCD
W urządzeniu zastosowano dwuliniowy wyświetlacz znakowy z wbudowanym podświetlaniem ekranu o oznaczeniu WC1602A0. Jest on podłączany do gniazda wyświetlacza na płycie PCB (rozdział 2.1).
Rys. Schemat podłączenia wyświetlacza LCD do portów mikrokontrolera
Tab. Wykaz połączeń wyświetlacza LCD
Wyprowadzenie wyświetlacza | DB4 | DB5 | DB6 | DB7 | E | RS | RW | GND | Ucc | Uo | A | K |
Pin wyświetlacza | 11 | 12 | 13 | 14 | 6 | 4 | 5 | 1 | 2 | 3 | 15 | 16 |
Pin gniazda wyświetlacza | 6 | 7 | 8 | 9 | 5 | 3 | 4 | 2 | 1 | 2 | 10 | 2 |
Wyprowadzenie mikrokontrolera | D4 | C5 | C4 | D3 | D5 | D7 | D6 | GND | 5V | GND | D2 | GND |
2.8. Klawiatura
Urządzenie zostało wyposażone w klawiaturę.
Tab. Funkcje przycisków
Lewy | Środkowy | Prawy | |
Funkcja w głównym menu | Przesuń w dół | Zatwierdź | Przesuń w górę |
Funkcja w wybranej funkcjonalności | Minus | Zatwierdź | Plus |
3. Obsługa urządzenia
3.1. Uruchomienie urządzenia
Podczas uruchomienia urządzenie wykrywa podłączony czujniki temperatury, podsumowując operację stosownym komunikatem na wyświetlaczu.
Pierwsze uruchomienie wymaga konfiguracji urządzenia:
- Należy ustawić żądaną temperaturę utrzymywaną poprzez automatyczne włączenie i wyłączenie grzałki. By zdefiniować temperaturę należy wejść do “Menu” a następnie wybrać opcję “Temperatura”.
- Należy podać aktualną godzinę i minuty, gdyż na podstawie zegara czasu rzeczywistego uruchamiane jest; oświetlenie, przekaźnik 1, przekaźnik 2.
- Po dokonaniu powyższych ustawień możliwe jest definiowanie czasu włączenia oświetlenia i uruchomienia przekaźników.
3.2. Menu
Wejście do “Menu” urządzenia dokonywane jest po kliknięciu “lewego” lub “prawego” przycisku klawiatury (rozdział 2.8). Przejście do kolejnych funkcji menu
3.2.1. Opuść Menu
Wybranie opcji “Opuść Menu” powoduje wyświetlenie “Panela stanu urządzenia” (rozdział 3.3).
3.2.2. Temperatura
By ustawić temperaturę, która ma być utrzymywana przez urządzenie należy wejść do “Menu” (rozdział 3.2) i wybrać opcję “Temperatura”. Następnie kliknąć przycisk “Zatwierdź”. Ustawić temperaturę poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie aktualnej nastawy dokonywane jest kliknięciem przycisku “środkowy”.
3.2.3. Włączenie oświetlenia
Automatyczne włączenie oświetlenia odbywa się o ustalonej godzinie i minucie. Po wejściu do “Menu” (rozdział 3.2) i wybraniu opcji “Wl.oswietlenie”, kliknięciu przycisku “Zatwierdź” należy ustawić godzinę i minutę poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie nastaw godzin i minut dokonywane jest kliknięciem przycisku “środkowy”.
3.2.4. Wyłączenie oświetlenia
Automatyczne wyłączenie oświetlenia odbywa się o ustalonej godzinie i minucie. Po wejściu do “Menu” (rozdział 3.2) i wybraniu opcji “Wyl.oswietlenie”, kliknięciu przycisku “Zatwierdź” należy ustawić godzinę i minutę poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie nastawy godzin a następnie minut dokonywane jest kliknięciem przycisku “środkowy”.
3.2.5. Przekaźnik 1
Automatyczne włączenie przekaźnika1 następuje z określonym interwałem czasowym podawanym w godzinach od chwili zapisania ustawienia. Po wejściu do “Menu” (rozdział 3.2) i wybraniu opcji “Przekaznik 1” poprzez kliknięcie przycisku “Zatwierdź” należy ustawić wartość interwału poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie nastawy dokonywane jest kliknięciem przycisku “środkowy”.
3.2.6. Przekaźnik 2
Automatyczne włączenie przekaźnika2 następuje z określonym interwałem czasowym podawanym w godzinach od chwili zapisania ustawienia. Po wejściu do “Menu” (rozdział 3.2) i wybraniu opcji “Przekaznik 2” poprzez kliknięcie przycisku “Zatwierdź” należy ustawić wartość interwału poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie nastawy dokonywane jest kliknięciem przycisku “środkowy”.
3.2.7. Zegar
Ustawienie zegara czasu rzeczywistego następuje poprzez wejście do “Menu” (rozdział 3.2), wybranie opcji “Zegar” i kliknięcie przycisku “Zatwierdź”. Należy ustawić godzinę i minutę poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie nastawy godzin a następnie minut dokonywane jest kliknięciem przycisku “środkowy”.
3.2.8. Reset ustawień
Reset ustawień zeruje nastawy:
- utrzymywanej temperatury,
- czasu włączenia i wyłączenia oświetlenia,
- interwał czasu włączenia przekaźników.
3.3 Panel stanu urządzenia
Panel stanu urządzenia zawiera podstawowe informacje o urządzeniach zewnętrznych, aktualny czas oraz wskazania temperatury wody.
Rys. Panel stanu urządzenia wyświetlony na ekranie LCD.
Tab. Znaczenie ikon – panel stanu urządzenia.
Ikona | Znaczenie |
Temperatura wody | |
Włączone oświetlenie | |
Włączona grzałka | |
Włączony przekaźnik | |
Aktualny czas |
4. Pliki
Pliki projektu.
- Wsad mikrokontrolera.
- Projekt PCB w formacie PDF.
- Rozmieszczenie elementów na płycie PCB w formacie PDF.
Noty katalogowe.
- PIC16F877A – mikrokontroler.
- DS1307 – zegar czasu rzeczywistego.
- DS18B20 – czujnik temperatury.
- MOC3063 – optoizolator sterujący triakiem.
- BTA16-6008 – triak sterujący zewnętrznym urządzeniem.