Cyfrowa stacja lutownicza [DIY]

Ciągle majsterkując w moim „mini” warsztacie przy nowych gadżetach zacząłem odczuwać brak podstawowego narzędzia elektronika. Aż wstyd się przyznać … nie miałem lutownicy z prawdziwego zdarzenia. Połączenia wykonywałem niezawodną „transformatorów-ką”, jednak kiedy zbudowałem mały sterownik do lampki solarnej i przy wymianie tranzystora oderwało mi się pole lutownicze na płytce (pad) czar goryczy prysł… . Przemyślałem sprawę i postanowiłem, że nie będę wydawał dużo pieniędzy na drogi sprzęt, gdyż jestem praktycznie na starcie długiej drogi poznawania tej wspaniałej dziedziny i prosta stacja z regulacją temperatury mi wystarczy. Zaświeciła się lampka w mojej głowie i  powiedziałem… „Sam zaprojektuję sobie małym kosztem takie cacko „

Główne założenia projektu.

  •     Regulator temperatury

Podstawowym założeniem projektu była możliwość regulacji temperatury grota kolby lutowniczej w zakresie pełnej mocy grzałki. Moim wyborem była kolba z termoparą  typu K o mocy 48 W. Konstrukcja grzałki wymaga napięcia 24 V, a więc koniecznym elementem projektu był transformator zapewniający minimalne natężenie prądu 2 A oraz napięcie 24 V (P= 2A*24V= 48W). Dużą zaletą rozwiązania jest separacja kolby od obwodu sieciowego, gdyż element ten będzie miał największą styczność z ciałem użytkownika. Do regulacji mocy (od 0 do 48W) początkowo postanowiłem wybrać układ przeznaczony do sterowania elementów grzewczych opartych na tzw. detektorze przejścia przez zero. Układ ten wykrywał by brak napięcia na przewodzie fazowym i zgłaszał mikrokontrolerowi przerwaniem INT. Procesor natychmiast zwiększył by swój licznik liczący cyklicznie od 0 do 100. Dzięki temu możliwe jest porównanie ze zmienną wartość_odchyłki i zmianę czasu załączenia triaka (regulacja przyjmuje charakter procentowy od 0-100) i to w punkcie zero co nie powodowało generowanie zakłóceń w urządzeniu.  Jednak w kolejnych krokach napotkałem kłopoty na drodze programowej, więc postanowiłem zmienić układ. Zdecydowałem się na wbudowany w mikrokontroler PWM (Pulse-Width- Modulation).

Na poniższym rysunku przedstawiony jest schemat regulatora:

Na wyprowadzenie uC PORTD.2 jest podany sygnał prostokątny o odpowiednim współczynniku wypełnienia przy czym stan niski powoduje włączenie transoptora. Powoduje to otwarcie tranzystora MOSFET, tak więc na grzałkę trafia napięcie z popularnej konstrukcji zasilacza z mostkiem, kondensatorem i stabilizatorem rodziny LM7824. W moim projekcie wykorzystuję LM78S24, który ma 2A i do chwili obecnie spełnia swoją funkcję. Jest również możliwe aby układ prawidłowo funkcjonował bez stabilizatora, gdyż przeprowadzałem takie testy. Umożliwia to duża bezwładność elementów grzejnych. W przedstawionym regulatorze to mikrokontroler może w pełni sterować impulsowo porcjami mocy dostarczonej na grzałkę kolby lutowniczej (patrz rys.2) dzięki czemu mamy pełną kontrolę nad temperaturą. W moim przypadku grzałka zostaje wysterowana sygnałem niskim, tak więc sygnał jest odwrócony w fazie. Współczynnik wypełnienia impulsu dla wartości 100% powoduje brak zasilania natomiast dla 0% oddaje pełną moc na grot kolby.

Największą wadą rozwiązania jest nagrzewanie się tranzystora mocy oraz stabilizatora aczkolwiek to nie jest wielki problem po zamontowaniu nawet niewielkiego radiatora. Dużą zaletą dla mnie jest brak ograniczeń w programie (PWM pracuje bez ingerencji w program, gdyż jest to osobny blok) dla pozostałych modułów, a także prostota układu. Na plus uznaje również bardzo dobre efekty regulacji temperatury +/- 2°C.

·         Pomiar temperatury

Wbudowana  w kolbę lutowniczą termopara wraz ze wzrostem temperatury generuje bardzo małe napięcie (ok. kilka mV) na końcówkach styków metali będących w bezpośrednim kontakcie. Technika umożliwiła zastosowanie różnych pierwiastków i uzyskanie w ten sposób liniowości, tak więc układ może w pełni służyć jako pomiar temperatury w dużym zakresie. Zastosowana przeze mnie kolba posiada termoparę typu K. Przewód łączący kolbę z obudową stacji lutowniczej ma znaczną długość dodatkowo przechodzi przez wtyczkę oraz inne przewody. Wynika z tego wiele niekorzystnych właściwości mianowicie każda termopara posiada wadę tzw. zjawiska zimnego połączenia. Powoduje to powstawanie niewielkich napięć pasożytniczych na połączeniach, czyli każde złącze zachowuje się jak termopara wprowadzając zakłócenia. Również niekorzystnym elementem jest niezerowa rezystancja przewodów i złączy. Dlatego w moim projekcie zamiast zastosowania wzmacniacza  do podwyższenia napięcia na wyjściu ze złącz termopary i bezpośredni pomiar przez ADC mikrokontrolera postanowiłem wykorzystać układ firmy Maxim MAX6675. Moduł posiada specjalną diodę będącą czujnikiem temperatury otoczenia korygując w ten sposób wadę zimnego połączenia, a tym samym precyzyjny pomiar temperatury. Wbudowany interfejs SPI umożliwia połączenia z mikrokontrolerem  i dostarczenie 16 bitowych danych. Na rysunku nr.4 przedstawiłem układ połączeń modułu MAX6675 z procesorem.

Komunikacja zostaje nawiązana po podaniu stanu niskiego na pin CS i następuje wstrzymanie konwersji temperatury. Po podaniu sygnału zegarowego na pin SCK, tak więc na opadającym zboczu pojawiają się dane bitowe, które mikrokontroler odczytuje i wpisuje do zmiennej 16 bitowej. W ten sposób jest konwertowana temperatura grota lutownicy z napięcia do wartości liczbowej. Dla prawidłowego odczytu należy uwzględnić czas konwersji przetwornika A/C układu MAX6675, czyli ok. 0.22 s tyle powinna wynosić przerwa między pomiarami. W moim przypadku ten czas wystarczył do odpowiedniej jakości wyników w całym zakresie temperatury.

·         Regulacja, wyświetlanie danych oraz wskaźnik LED

Do komunikacji z użytkownikiem użyłem Encodera obrotowego z wbudowanym przyciskiem. Program napisałem tak aby obrót w lewo zmniejszał, a w prawo zwiększał wartość temperatury. Naciśnięcie przycisku powoduje przejście w stan SLEEP oraz uruchomienie trybu HOT, które opiszę w dalszej części. Rozwiązanie nie jest zbyt idealne głównie ze względu na skokowe ustawienie przy szybkim kręceniu nie mniej jednak można ustawić temperaturę dokładnie o 1°C. Zaletą Encodera jest znaczne uproszczenie w programie, gdyż nie jest konieczne tak jak w switch-ach użycie funkcji inteligentnego przycisku.

Do wyświetlania danych wykorzystałem bardzo popularny wyświetlacz 2*16  ze sterownikiem HD44780  pracujący w trybie czterobitowym. W górnym wierszu jest wyświetlana aktualna temperatura panująca na grocie natomiast w dolnej linie nastawiona przez użytkownika. Takie rozwiązanie zapewnia dobrą komunikację i jest stosunkowo tanie.

Jako sterownik wybrałem uC ATmega 16, który ma aż 4 porty do dyspozycji użytkownika. Postanowiłem wykorzystać ten przywilej i wymyśliłem koncepcje „wskaźnika LED”. Zbudowany z ośmiu diod świecących, które są zapalane proporcjonalnie do mocy dostarczanej na grzałkę kolby. Dla mocy 100% świecą wszystkie, a dla 0% wszystkie są wygaszone. Dzięki temu rozwiązaniu mam wizualne wskazanie intensywności nagrzewania grota.

·         Budowa sterownika z zasilaniem

Całą pracą steruje mikrokontroler z rodziny Atmel ATmega 16. Odczytuje temperaturę, a następnie porównuje z wartością nastawioną przez użytkownika. Po odpowiednim przeliczeniu ustawia wartość współczynnika wypełnienia, czyli steruje mocą grzałki. Zbudowałem go na płytce PCB i na wyprowadzeniach umieściłem goldpiny tak aby możliwy był łatwy montaż i demontaż w urządzeniu. Chytrym posunięciem z mojej strony było wykorzystanie ładowarki ze starego telefonu jako Układu zasilania dla procesora. Umieściłem ją na sterowniku za pomocą kleju na gorąco. Poniżej przedstawiam moduł na fotografii.

Po uwzględnieniu wszystkich modułów wykonałem schemat przedstawiony poniżej:

 

Budowa programu

Po wyodrębnieniu założeń do projektu oraz wykonaniu schematu elektrycznego zająłem się tworzeniem programu. Ponieważ posiadam pełną wersję programu Bascom AVR z powodzeniem wykonuje swoje projekty tym firmware.

Na początku tradycyjnie dokonałem niezbędnych konfiguracji mikrokontrolera: ustawienie częstotliwości taktowania na 16 Mhz, wartości ramki i stosu, stanów pracy portów na wejścia lub wyjścia, a także chwilowych ich stanów (przed pętlą główną). W kolejnym kroku zadeklarowałem wszystkie wymagane zmienne. Następnie zająłem się konfiguracją podłączonego do procesora wyświetlacza ze sterownikiem HD44780 do pracy w trybie czterobitowym oraz timera 2 jako generatora sygnału prostokątnego mianowicie PWM do regulatora mocy grzałki. Timer 1 został przeze mnie ustawiony tak aby umożliwić prawidłowy pomiar temperatury z układu MAX6675 tj. co 0.2 s jednostki czasu. Dalej wykorzystałem aliasy aby pozmieniać sobie niektóre porty mikrokontrolera na przyjaźniejsze nazwy. Początkiem startu pracy stacji jest komunikat powitalny z nazwą projektu. W pętli głównej wykorzystałem obsługę encodera oraz pełną regulację temperatury grota tak więc jest kontrolowana na bierząco. Procedurę obsługi przerwania wykorzystałem do wyświetlania danych na wyświetlaczu. Przerwania nie zakłócają pracy regulatora gdyż generator PWM działa niezależnie od programu, a ten jedynie może zmieniać wartość współczynnika wypełnienia.

Reasumując program cyklicznie sprawdza wartość różnicy temperatury nastawionej z tą panującą na grocie i od razu wybiera moc tak aby temperatury te wyrównały się. Dodatkowo co 200 ms pojawia się przerwanie w którym wykonywany jest świeży pomiar oraz aktualizacja wyniku na wyświetlaczu LCD. Według mnie efekt po „doszlifowaniu” wszystkich detali jest bardzo dobry (+/- 2 °C) natomiast samo urządzenie sprawdza się w warsztacie wzorowo. Dodatkowym komfortowym rozwiązaniem są dwa tryby, które dodałem programowo. Pierwszy z nich to SLEEP dzięki któremu możemy obniżyć temperaturę grota do 250°C podczas dłuższej przerwy w lutowaniu a tym samym zapobiec utlenianiu grota i zwiększyć jego żywotność. Aktywuje go jedno naciśnięcie przycisku. Drugą opcją jest tryb HOT umożliwiający uzyskanie wyższych temperatur (powyżej 450 °C) i możliwość wykorzystania większych kolb lutowniczych, a nawet innych układów grzewczych jak również lutowanie w bardzo niskich temperaturach. Załączany jest wybudzaniem z trybu SLEEP. Poniżej przedstawiam schemat blokowy mojego programu:

Pierwsze uruchomienie :

Kiedy wszystkie „klocki” poskładałem, umieściłem moduły na swoich miejscach w obudowie nadszedł oczekiwany moment testu mojego urządzenia. Włączyłem zasilanie i obserwowałem zachowanie stacji lutowniczej. Na pierwszy rzut oka zauważyłem błąd w działaniu regulatora mocy mianowicie moc na starcie była równa 0 mimo dłużej różnicy między nastawą, a temperaturą grota. Szybko stwierdziłem, że ustawiłem odwrotnie wartość współczynnika wypełnienia (zamiast 100% było 0%). Po poprawieniu „pluskw” wszystko zaczęło śmigać. Zarówno przyciski jak i obsługa wyświetlacza działa dobrze mimo wymaganego opóźnienia dla układu MAX6675. Tak więc przystąpiłem do pierwszej próby wykorzystania. Układem testowym była płytka PCB będąca ozdobą świąteczną zawierająca elementy SMD oraz przewlekane.

Podczas wykonywania połączeń lutowniczych pojawił się kolejny poważny kłopot. Winowajcą tego stanu rzeczy była błędna korelacja danych mianowicie dla temperatury ok. 360°C miałem już pewne problem z lutowaniem, a temperatura na wyświetlaczu bardzo oscylowała nawet 10 stopni. Pierwszą myślą jaka mi przyszła na myśl to nieliniowy pomiar temperatury na grocie stąd zakłamane wyniki niemniej jednak wcześniej budowałem termometr na tym układzie i wszystko wyglądało prawidłowo w całym zakresie dla termopary. Wszystkie znaki wskazywały na to, że popełniłem fatalny błąd nie stosując zasady często wpajanej mi przez rodziców: „Co drogie to tanie”. Kupiona przeze mnie kolba chińskiej produkcji była zbyt niskiej jakości aby mój sprzęt mógł funkcjonować prawidłowo. Dlatego pogrzebałem po forach internetowych i zdecydowałem się na zakup kolby 4 razy droższej od  tej pierwszej mianowicie modelu ESD Solomon. Przerobiłem końcówkę wejściową i uruchomiłem sprzęt. Na tym koniec był koniec moich kłopotów. Krzyknąłem sam do siebie yessss i dokończyłem lutowanie choinki.

Wnioski :

Zarówno pomiar oraz regulacja temperatury dają znakomite wyniki pracy. Stacja lutownicza jest w pełni cyfrowym urządzeniem zdolnym do wykonywania połączeń lutowniczych. Każda  kolba posiadająca termoparę typu K może zostać zastosowana w moim projekcie, tak więc może posłużyć jako podgrzewacz wody dla np. akwarium, małego piecyka. Dzięki temu projektowi łyknąłem sporą dawkę wiedzy takich jak pomiar temperatury za pomocą termopar, budowy prostej regulacji PWM, obsługi portu SPI oraz encodera. Dodatkowo poprawiłem swoje zdolności manualne tzn. wykończenie i umiejscowienie w obudowie, wymiarowanie, a także tworzenia paneli przednich. Kod projektu zawiera 174 linie kodu i zajmuje tylko 16% pojemności procesora.

Koszty w stosunku do pracy urządzenia są bardzo niewielkie mianowicie największym wydatkiem była kolba, transformator zasilający oraz mikrokontroler mimo to wydatek nie przekroczył 150zł z kompletnymi materiałami.

Myślę, że udało mi się w przystępny sposób opisać mój projekt, który wykonałem. Zapraszam Cię drogi czytelniku na filmik demonstracyjny Cyfrowej stacji lutowniczej [DIY], gdzie krótko przedstawiłem możliwości urządzenia.

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *