Politechnika Łódzka
Projektowanie analogowych i cyfrowych układów elektronicznych
RAPORT
Sterownik ogrzewania pokojowego
Damian Żaczek 163785
Spis treści
1 Cel i założenia projektu .................................................................3
2 Schemat blokowy..........................................................................3
3 Dobór elementów .........................................................................4
4 Schemat elektryczny......................................................................6
5 Płytka PCB ......................................................................................11
6 Program sterujący...........................................................................12
7 Wnioski ..........................................................................................13
8 Bibliografia .....................................................................................14
1 Cel i założenia projektu
Projekt ma na celu stworzenie urządzenia odpowiedzialnego za sterowanie temperaturą w pomieszczeniu oraz za odczyt i wyświetlenie aktualnej temperatury oraz daty i godziny. Po odczycie temperatury otoczenia nastąpi możliwość zadania wyższej lub niższej temperatury co skutkuje otworzeniem lub zamknięciem elektrozaworu.
2 Schemat blokowy
Klawiatura wraz z czujnikiem temperatury posłużą do wczytywania danych wejściowych. Dane z czujnika zostaną wyświetlone na wyświetlaczu LCD. Klawiatura umożliwi zmianę temperatury zadanej, wynikiem czego będzie przepływ prądu przez moduł mocy lub jego brak w zależności od wybranej opcji.
Na ekranie zostanie również wyświetlona data i godzina za pomocą zegara czasu rzeczywistego.
Nad tymi wszystkimi operacjami będzie czuwał mikroprocesor.
3 Dobór elementów
Czujnik temperatury [1]- DS18B20- Układ firmy Dallas Semiconductors DS18B20 jest cyfrowym termometrem o programowalnej rozdzielczości. Jego podstawowe cechy to: komunikacja za pomocą interfejsu 1-wire,
-każdy odbiornik posiada unikalny 64 bitowy kod umieszczony w wewnętrznej pamięci ROM układu,
-maksymalnie uproszczony sposób odczytu temperatury,
-nie potrzebuje żadnych zewnętrznych komponentów,
-może być zasilany z linii danych,
-zasilanie od 3V do 5,5V,
-dokładność 0,5oC dla zakresu -10oC ÷ 85oC,
-możliwość ustawienia rozdzielczości od 9 do 12 bitów,
-konwersja 12 bitowego słowa – max. 750ms.
Alfanumeryczny wyświetlacz oparty na kontrolerze HD44780. 2 linie tekstu po 16 znaków o rozdzielczości 5x8 pikseli. W tym typie wyświetlacza sterować możemy zawartością tak utworzonej matrycy znakowej, jednak nie ma możliwości sterowania poszczególnymi pikselami. Do regulacji kontrastu potrzebny będzie dodatkowo potencjometr.
Zegar RTC [3]- PCF8583- Układ jest wyposażony w 256 bajtów pamięci RAM z czego część jest zarezerwowana na rejestry układu licznikowo zegarowego, natomiast część(240 bajtów) może być wykorzystana dowolnie przez użytkownika. Do podtrzymania zasilania układu PCF8583 wystarczy bateria o napięciu 1,5V.
3 przyciski jednopozycyjne. 2 do zwiększania i zmniejszania zadanej temperatury i jeden do zatwierdzania operacji.
Moduł mocy [5]- zrealizowany na tranzystorze IRF530N- podstawowe parametry:
Typ tranzystora- N-MOSFET
Polaryzacja- unipolarny
Napięcie dren-źródło- 100 V
Prąd drenu- 17 A
Moc- 79 W
Napięcie bramka źródło- 20 V
Mikroprocesor [6]- ATmega32- najważniejsze cechy: nieulotna pamięć programu i danych- 32kB pamięci programu, 1024 bajty pamięci danych EEPROM, 2kB wewnętrznej pamięci SRAM, Peryferia - 8-bitowe i 16-bitowy timery/liczniki z opcją preskalera, cztery kanały PWM, 8 × 10− bitowych przetworników ADC, interface Two-wire, programowalny Watchdog, komparator analogowy, wewnętrzny generator RC, wewnętrzne i zewnętrzne źródła przerwań, układy oszczędności energii, zasilanie 4.5−5.5V , częstotliwość pracy zegara do 16MHz, posiada cztery ośmiobitowe porty wyjścia/wejścia, w których większość pinów może pełnić również inne role takie jak wejścia sygnałów przerwań, lub wejścia przetworników ADC.
4 Schemat elektryczny
Czujnik temperatury
Układ DS18B20 połączony jest z procesorem jednoprzewodowym interfejsem 1wire. Magistrala 1wire potrzebuje zewnętrznego podciągnięcia rezystorem do zasilania.
Klawiatura
Przyciski są podłączone są odpowiednio pod porty c (2,3,4). Ponadto przy każdym przycisku dołączony jest kondensator 100nF.
Moduł mocy
Wyjście mocy zrealizowane zostało na porcie PA7 procesora. Do sterowania elektrozaworem posłużył układ z tranzystorem IRF530N wraz z zabezpieczającą diodą Schottkiego.
Zasilanie
Do zasilania posłuży zewnętrzny zasilacz o napięciu 9V bez stabilizacji napięcia podłączony do złącza vcc (zasilacz). Jako stabilizator został wykorzystany układ L7805CP.
Ekran LCD
Wyświetlacz LCD połączony jest w trybie 4-bitowym. Odpowiednio linie danych 4, 5, 6, 7 są podłączone do portu d( 3, 4, 5, 6) procesora. Linie RS- zapis komendy, R/W- odczyt/zapis, E wybór kanału do portu d( 0, 1, 2) procesora.
Do podłączenia napięcia regulującego kontrast został wykorzystany potencjometr 10kΩ. Napięcie to jest z przedziału gnd-vcc.
Zegar RTC
Zegar czasu rzeczywistego został wykonany na układzie PCF8583. Jest on wyposażony w baterię podtrzymującą zegar. Do układu dołączony został rezonator kwarcowy.
Złącze programatora
Na płytce dostępne jest także 6 pinowe złącze programatora w standardzie ISP. Jest ono zgodne z większością programatorów dostępnych na rynku.
Mikroprocesor
Schemat wyprowadzeń i wszystkich podłączonych linii dla procesora. Przycisk reset służy do sprzętowego resetowania układu.
5 Płytka PCB
Widok płytki PCB od góry. Wszystkie elementy przewlekane zostały umieszczone na górnej warstwie zaś elementy powierzchniowe na dolnej. Na dolnej warstwie są też wszystkie ścieżki oraz poligon.
6 Program sterujący
Po wybraniu rodziny procesorów i konkretnego modelu (ATmega32) dokonujemy inicjalizacji procesora i kontrolerów. W trakcie inicjalizacji wyświetlacza LCD należy podać organizacje matrycy- liczbę wierszy, liczbę znaków w wierszach, wielkość czcionki. Należy też określić, które linie IO zostały wykorzystane do podłączenia modułu.
Konfiguracja magistrali 1-wire: magistrala 1-Wire posiada zgodnie z definicją pojedynczą linię danych. Gdy urządzenie podpięte do magistrali nie transmituje/odbiera danych to musi „zwolnić” magistralę. Zwolniona magistrala czyli gotowa do użycia powinna być w stanie wysokim co zapewnia rezystor podciągający do zasilania. Utrzymanie przez co najmniej 480us stanu niskiego na magistrali powoduje wyzerowanie (reset) wszystkich komponentów slave dołączonych do magistrali.
Odczyt temperatury z DS18B20 zaczyna się od podania pinu, do którego podłączony jest czujnik oraz jego adresu. Należy również ustawić jego rozdzielczość. Następnie procesor komunikuje się z magistralą 1-wire. Resetuje przyłączony czujnik i sprawdza jego obecność. Po tych czynnościach wysyłany jest rozkaz do czujnika, by zaczął obliczać temperaturę. Gdy skończy oblicząć można przejść do odczytu i zapisu temperatury na wyświetlaczu.
Program sprawdza czy został wciśnięty przycisk zmieniający temperaturę zadaną. Jeśli tak to w zależności od tego czy przycisk ten zwiększa czy zmniejsza temperaturę podawany jest prąd na wyjście mocy co skutkuje otwarciem elektrozaworu. Temperatura otoczenia jest porównywana z temperaturą zadaną. Zrównanie się tych temperatur powoduje zamknięcie elektrozaworu..
7 Wnioski
Dzięki uczęszczaniu na zajęcia projektowania analogowych i cyfrowych układów elektronicznych łatwo jest nabyć wiele ciekawych umiejętności związanych z projektowaniem urządzeń elektronicznych- schematów elektrycznych, płytek drukowanych czy doborem układów scalonych i innych elementów. Ponadto interesującym doświadczeniem była możliwość omawiania i komentowania wszystkich projektów na forum grupy.
Układ został wykonany tylko teoretycznie z powodu braku czasu na wytrawienie płytki. Przeszedł jednak pierwsze testy na prototypowej płytce testowej EVB 4.3 v4.
8 Bibliografia
[1]- Dokumentacja cyfrowego czujnika temperatury DS18B20: http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
[2]- Dokumentacja wyświetlacz LCD:
http://www.tme.eu/pl/Document/2b46fe537a0f5e5dade492298d7862b6/RC1602D-GHY-ESX.pdf
[3]- Dokumentacja układu PCF8583:
http://www.nxp.com/documents/data_sheet/PCF8583.pdf
[4]- Dokumentacja przycisków:
http://www.tme.eu/pl/Document/dc2a9e7a0231fddecc68f157d39a4595/LSH%20series.PDF
[5]- Dokumentacja tranzystora IRF530N:
http://www.irf.com/product-info/datasheets/data/irf530n.pdf
[6] Dokumentacja procesora ATmega32:
http://www.atmel.com/images/doc2503.pdf
[7]- Mirosław Kardaś, Mikrokontrolery AVR Język C- podstawy programowania