
Witam.
Dziś zaprezentuję Wszystkim urządzenie, służące w praktyce w mieszkaniu i jako model dydaktyczny podczas nauki programowania.
Tajemniczym pudełkiem nie jest kolejny zasilacz laboratoryjny.

(Hmm chyba powinienem wyświetlić "Elektroniczna głowica" jak w tytule)
Główne założenie było takie, jakie miał zazwyczaj MacGyver: zrobienie z niczego czegoś użytecznego

Tym czymś nieużytecznym było:
- "szuflada" CD-ROMu z odtwarzacza filmów (generalnie wszytko przydało się: dwie krańcówki, silnik wraz z przekładnia, plastiki, pręty metalowe),
- tasiemki odtwarzacza filmów,
- kawałek rury z wentylacji okapu,
- kawałek rurki (brązowa) z jakiejś podstawki czy też nóżki,
- kawałek obudowy długopisu (czerwony),
- śruba i nakrętki.
Pozostałe elementy elektryczne służące jako sterowanie:
- wyświetlacz 2x16 - do wyświetlania menu,
- ATmega8,
- stabilizator 5V - do zasilania z zasilacza zewnętrznego,
- "179050 EDB1229" - stabilizator 5V - do akumulatora o niskim poborze własnym,
- L293D - driver dla silnika,
- DS1388 - zegarek RTC,
- SFH5110-36 odbiornik podczerwieni - do sterowania pilotem z RC5 (zamiast przyciskami pod wyświetlaczem),
- 2x tranzystory (całkowite wyłączenie wyświetlacza, całkowite wyłączenie drivera),
- 3x przyciski microswitch - do sterowania (góra, dół, zatwierdź),
- drobnica (rezystory, koncentratory filtrujące),
- kwarc zegarkowy 32.768 kHz,
- przełącznik/wyłącznik,
- gniazdo zasilacza,
- gniazdo akumulatorka,
- przewody (białe sygnałowe, czerwone Vcc, żółte gnd),
- płytka uniwersalna.
Głowna zasada działa:
- wykorzystująca przekładnie ślimakowa (tzn. śrubę w nakrętkach) oraz przekładnie zębata napędzaną paskiem z silniczka CD, wciskać i popuszczać bolec zaworu grzejnikowego.
Głownie funkcje sterujące:
- ustawienie godziny i dnia tygodnia,
- wybór trybu pracy (manualny, automatyczny, stoper),
- wybór mocy grzania od P0 - P7 (gdzie P0 - całkowicie zamknięty),
- sterowanie pilotem (ustawianie wszystkiego zamiast przyciskami pod wyświetlaczem, ustawienie bezpośrednie trybu manualnego o danej mocy),
- wygaszacz LCD (w zasadzie to wyłącza zasilanie LCD),
- wyłączać drivera (czyli sterownika silniczka),
- odbiór informacji z dwóch styczników.
Opis trybów:
- manualny: czyli zastępuje ręczne wybór nastawy głowica.
- stoper: czyli zastępuje ręczne wybór nastawy głowica na ograniczony, ustawiony czas (po czasie zamknij zawór; max 3h, skok 15min).
- automatyczny: ustawanie dwóch zakresów czasowych (w danej dobie, nie nachodzących na siebie), na dzień/dni tygodnia (Pn-Ndz), o nastawie zaworu Px.
Dokładniejszy opis urządzenia
Urządzenie powstało zimą 2011/2012 roku, gdy miałem jeszcze dużo czasu wieczorami, bo nie mailem dzieci.

Długo myślałem, jak zmontować i zamontować urządzenie na zaworze i skąd wziąć elementy konstrukcji. Nie zaglądałem do takich urządzeń, więc tylko wyobraźnia kierowała mnie.

Na moje szczęście znalazłem rurkę (brązowa) z wewnętrznym rantem, idealnie pasującą na kolo zębate. Koło zębate kreci się, kręcąc rurka. Rurka kreci "motylkiem" wraz z śruba. Śruba wkręca się w 2 naprzemienne nakrętki (czerwony plastik z długopisu i dwie nakrętki).
Wkręcana śruba wpycha trzpień zaworu, czyli zamyka zawór.
Myślałem nad prostszym rozwiązaniem (bezpośrednie duże kolo zębate z śrubą, zamiast "motylka", a na trzpieniu silnika wąski wałek ślimakowy, który kręciłby koło zębate). Niestety brak elementów nie pozwolił na realizację tego pomysłu.
Mocowanie całości polega na otwarciu urządzenia (górnej pokrywy), włożeniu na trzpień zaworu kaloryfera, zakleszczenie przygotowanym pod wymiar "kowadłem". Zamkniecie pokrywy urządzenia.
Co do elektroniki - udało mi się upakować wszytko z akumulatorem do wewnątrz. Ale z uwagi na małą pojemność tego akumulatora, urządzenie działało tylko kilka godzin. Akumulator ma tylko 280mAh, stąd taki krótki czas pracy. Kombinowałem, jak tu zmniejszyć pobór prądu z akumulatora, stąd pomysł na osobny stabilizator o niskim własnym poborze, dodatkowo zarówno wyłączanie napięcia drivera, jak i LCD za pomocą tranzystora pnp.
Dopiero po czasie przyszło mi do głowy, że mogę użyć jakiegoś akumulatora, z komórki na 5V i zasilacza z komórki, by od razu lądować i zasilać wszytko. No ale "później" to już czasu nie miałem, a zasilacz 9V dawał radę.
Zastosowałem łączówki by móc wszytko łatwo rozebrać i testować.
Co do programu...
Program w całości napisany w C. Czas RTC służył do jego prezentowania w trybie auto oraz do pracy wraz z timerem T1 wewnętrznym uC, tzn. co jakiś określony interwał sprawdzałem czas i zrealizowana była odpowiednia procedura "timera" (taki softowy alarm), czy też odświeżany LCD.
Wymyśliłem sobie bufor dla LCD i wszytko, co wpisywałem na LCD, zapisywałem do bufora znaków 2x16, by moc po wyłączeniu i włączaniu napięcia LCD ponownie wyświetlić.
Wkręcanie śruby, czyli obracanie "motylkiem", polegało na zliczaniu półobrotów. Dwa półobroty to jeden stopień "mocy" nastawy. Zliczanie półobrotów polegało na sprawdzaniu napięcia ("1" logicznej) na styczniku (krańcówce przechyłowej lewo/prawo podpiętej pod 2 piny uC).
Dodatkowa druga krańcówka służyła to wyznaczenia max wkręcenia śruby, czyli początku odliczania.
Atmega8 wpierw działał z 8MHz wew RC, a potem ustawiłem na 1Mhz, by zmniejszyć pobór prądu. Trochę "mutowało" działa przez to odświeżanie LCD, gdy chodzi się po menu.
Próbowałem z trybem uśpienia ale za bardzo nie mogłem go użyć z uwagi na wykonywane działania. Na pewno kolejna wersję w takie urządzeniu użyłbym inny RTC z alarmem wbudowanym i tryby uśpienia w Atmedz8.
Chciałem się przy tym projekcie sporo nauczyć i utrwalić wiedzę programistyczną tworząc małe biblioteki, np. do obsługi kilku przycisków wraz z 3 stanami (push, release, hold) oraz zapis/odczyt danych (stringów) do pamięci ROM, za pomocą
Code: c
Code: c
Code: c
Do poprawy i pomysły na ulepszenie:
- zasilanie, zamiana na akumulator 5v z telefonu + ładowarkę z telefonu. To tylko do podtrzymania napięcia w razie braku prądu, by moc zamknąć zawór.
- oczywiście płytka drukowana, a nie "pająk".
- zastąpienie ds1388 innym RTC z wbudowanym alarmem i przez to włączenie trybu uśpienia uC.
- błędy w kodzie lub połączeniach (zdarzyło mi się kilka razy ze używając pilota zresetował się uC)
- dodanie sprawdzenia napięcia akumulatora - zamknięcie zaworu, gdy niskie napięcie.
- czujnik temperatury i reakcja na określona temp.
- ew. oklejenie grafiką.
Cena
Nie wydałem (specjalnie) ani jednej złotówki.
Szacunkowo myślę, że w ok. 60zł można by się zamknąć, bez aku i zasilacza, mając nieużyteczne graty/plastiki CD-ROM.
Tak czy inaczej, jaka to by cena nie była, to zdecydowanie nieadekwatna do wykonanej roboty i poświęconego czasu.

Załączniki (zdjęcia i filmik)
1. Schemat - niestety na kartce i wygląda jak wygląda, nie mam innego (etapami wymyślałem kolejne elementy i co do czego podłączę, wprowadzając poprawki na schemacie oraz na "płytce").
2. Zdjęcia - proces tworzenia i "końcowy" efekt.
3. Krótki filmik - przykład działania trybu manualnego.
Nie używam już tego urządzenia z uwagi na ciekawskie dzieci i konieczność prawie cały czas grzania kaloryferem, wiec jak ktoś jest chętny mogę "odstąpić" do dalszej edukacji i ulepszeń, jakie zaproponowałem.















Cool? Ranking DIY