Pierwszymi czynnościami po zmontowaniu płytki było proste sprawdzenie czy działają wszystkie elementy, przede wszystkim czy działa sterowanie serwomotoru. Wbrew pozorom najwięcej problemów na początku przysporzył mi zegar RTC komunikujący się z mikrokontrolerem za pośrednictwem magistrali I2C. Za każdym razem jak wysyłałem zapytanie o godzinę cały układ się zawieszał. Spędziłem sporo czasu kombinując w programie, szukając błędu a okazało się, że podczas trawienia płytki powstała przerwa w obwodzie podciągania magistrali rezystorami. Była ona na tyle mała, że gołym okiem całkowicie nie widoczna.
Gdy rozwiązałem ten problem i udało mi się z poziomu programu włączać, zmieniać prędkość i kierunek obrotu serwa należało wykonać sprzężenie zwrotne, tak by mikrokontroler wiedział w jakiej pozycji właśnie się znajduje.
Rys. 9 Potencjometr wieloobrotowy podłączony do sterownika.
W tym celu można zastosować tzw. enkoder absolutny, który na wyjściu wystawia odpowiedni kod binarny dla każdej pozycji lub prościej tak, jak właśnie zrobiłem zastosować wieloobrotowy potencjometr. Po trwałym połączeniu go z osią silnika każde poruszenie osią spowoduję zmianę napięcia na jego wyjściu, gdy podłączymy go jako dzielnik napięcia.
Rys. 10 Gotowy serwomotor ze sprzężeniem zwrotnym pozycji.
Potencjometr do osi należy dość trwale przymocować, w moim przypadku odwaliłem trochę partyzantkę, z którą trochę się namęczyłem. Na osi silnika zamontowane było oczywiście koło pasowe do napędu zaworu i zachodziłem w głowę jak tu wpleść potencjometr. Rozważałem nawet umieścić go obok i "pobierać" moment napędowy z paska tak jak np. z paska rozrządu w samochodzie zasila się alternator, pompę wspomagania, chłodnicy itd. Jednak wybitnie by to skomplikowało układ.
Rys. 11 Gotowy i podłączony do sterownika serwonapęd.
Znalazłem rozwiązanie troszkę inne, w pudełku z opisem kółka pasowe znalazłem kółko, które pasowało na oś potencjometru. Zdjąłem kółko pasowe z silnika i nałożyłem na pręt razem z kółkiem od potencjometru tak by były scentrowane. Na wiertarce stołowej przewierciłem i nagwintowałem dwie dziurki w kołach wzdłuż osi i wkręciłem śrubki odcinając nadmiar. Teraz po wyjęciu pręta pomocniczego w powstały element z jednej strony mogłem wkręcić oś silnika a z drugiej oś potencjometru. Dodatkowo obudowę potencjometru przymocowałem na sprężynowym połączeniu ze statyczną częścią serwa tak, by obracała się oś a nie cały potencjometr :).
Sygnał z wyjścia potencjometru wprowadziłem na wejście przetwornika analogowo-cyfrowego mikrokontrolera i próbkuję z dużą częstotliwością tak więc mikrokontroler w każdej sekundzie zna pozycję serwomotoru. Poza tym stosowanie potencjometru ma znaczącą wadę, gdyby mikrokontroler w porę nie zareagował na kończący się zakres ruchu serwa doszło by do jego uszkodzenia , co niestety i mi się przytrafiło.
Jak wyglądały pierwsze testy prezentuje poniższy film:
Film 1 Pierwszy test kontrolowanego poruszania serwonapędem.
Link bezpośredni: http://youtu.be/7jctSP9nqXI
Gdy już dopracowałem metodę pozycjonowania, zadawania pozycji i jej kontroli należało dostarczyć mikrokontrolerowi informację, w oparciu o którą miał sterować tym zaworem. Chodzi oczywiście o temperaturę w pokoju, na zewnątrz i temperaturę kaloryfera. Najprostszą metodą pomiaru w tego typu układach będzie zastosowanie cyfrowego przetwornika temperatury DS18B20. Już go w moim portalu opisywałem więc w szczegóły zagłębiał się nie będę.
Rys. 12 Sterownik z załączonymi trzema czujnikami.
Na płytce zamontowałem trzy potrójne złączki, w których są piny zasilania oraz pin magistrali transmisji danych 1-wire. Czujniki zamontowałem na przewodach tak by jeden z nich można było przymocować do kaloryfera, drugi wyprowadzić na zewnątrz a trzeci umieścić w miejscu umożliwiającym dokładny pomiar temperatury w pokoju.
Rys. 13 Przetwornik mierzący temperaturę kaloryfera.
Wszystkie te temperatury, oprócz tego że będą zastosowane w algorytmie ogrzewania, będą także wyświetlane na LCD więc układ będzie miał dodatkowe zastosowanie informacyjne.
Gdy już wszystkie elementy były gotowe w sobotni poranek zabrałem się do montażu serwa przy zaworze kaloryfera. Tu niestety spotkało mnie niezbyt miłe zaskoczenie. Kaloryfer, którym chciałem sterować miał utrudnione dojście więc przymiarki robiłem na obiekcie w drugim pokoju. Jakież było moje zdziwienie, gdy okazało się, że ten jest znacznie bardziej dosunięty do ściany :) Teraz mi wesoło, ale wtedy, gdy okazało się że serwo w tej postaci się nie nada, wesoło mi raczej nie było.
Rys. 14 Fabryczny napęd od urządzenia medycznego.
Mój napęd był stanowczo za duży więc nie pozostało mi nic innego jak zbudować coś mniejszego i o dziwo tego samego dnia pomiędzy wszystkimi innymi rzeczami, które musiałem w domu zrobić udało mi się napęd zrealizować. Zastosowałem mały silniczek z przekładnią od fabrycznego napędu stosowanego w przesłonach źródła promieniowania do leczenia chorób nowotworowych.