
Jest to mój pierwszy projekt opisywany tutaj, pomysł zrealizowany w jeden wolny wieczór, mam nadzieję, że komuś się przyda;)
Około rok temu na allegro kupiłem tani zasilacz (max 30V, 5A), ale przeszkadzał mi w nim bardzo głośny wiatraczek, który oczywiście przy pełnym obciążeniu jest niezbędny. Zasilacz przez większość czasu używam do zasilania małych układów, które pobierają mniej niż 0.5A, ale wiatraczek oryginalnie nie ma regulatora, więc dmucha cały czas;) Rozwiązaniem problemu było albo wymienienie wiatraczka na cichą wersję, albo zrobienie regulatora - wybrałem to drugie rozwiązanie z dwóch powodów - wiatraczek jest dość mocny i zasilany 24V/100mA - znalezienie cichej wersji mogło by nie być proste, po drugie wiatraczek jest całkowicie zbędny przy małym poborze prądu (całość po godzinie pracy 5v/300mA z wyłączonym wiatraczkiem ma nie więcej niż 30 stopni).
Tak więc mając wolną chwilę i kilka elementów pod ręką zdecydowałem się zrobić regulator oparty o atmega8 i ds18b20. Wiatraczek jest sterowany zmiennym wypełnieniem przez tranzystor BC547 podłączonym do pinu OC1B. PWM pracuje przy częstotliwości 24KHz i zakresie 40-100%. ds18b20 podłączony PB0 dwoma przewodami (dodatkowo podciągnięty rezystorem 4.7K do plusa, zgodnie z zaleceniem 1wire), ustawiony na prace z rozdzielczością 10bitow i czasem konwersji 187.5ms.
Całość zmontowana w jeden wieczór w powietrzu, jak będę miał trochę czasu to pewnie przeniosę to na płytkę, by było bardziej solidne i bezpieczne;)
Soft składa się z kilku kawałków:
-biblioteka onewire.[ch] i crc8.[ch] - znalezione w sieci kawałki do obsługi 1wire i obliczania crc8 (dane z ds18b20),
-funkcję do obsługi ds18b20 - proste funkcje do znalezienia czujnika, ustawienia rozdzielczości i blokującego odczytu temperatury,
-logiki sterownika,
-dodatkowo w celach debugowych trochę informacji przesyłanych jest przez UART.
Kilka szczegółów z sposobu działania:
-poniżej temperatury 40stopni wiatraczek jest całkowicie wyłączony, powyżej 50stopni całkowicie włączony,
-prędkość wiatraczka początkowo rośnie liniowo wraz ze wzrostem temperatury, po przekroczeniu 45stopni temperatura jest całkowana, a prędkość wiatraczka systematycznie zwiększana, aby utrzymać temperaturę 45stopni,
-po przełączeniu wiatraczka z prędkości zerowej na prędkość niezerową, przez 30ms podawane jest pełne wypełnienie - ma to na celu rozkręcenie wiatraczka, aby mógł pracować już przy wypełnieniu 40% (bez tego startuje dopiero przy 60%),
-atmega8 ma sporo pamięci jak na ten projekt, więc pozwoliłem sobie użyć float-ów do obliczeń.
Schematu nie dołączam, bo myślę, że można go wywnioskować z opisu - dodatkowo zastosowałem stabilizator l317 (innego nie miałem pod ręką) ustawionego na 5v, oraz diodę zabezpieczającą przy wiatraczku.
Myślę, że koszt nie przekroczył 15zł, a spokój dla uszu podczas tworzenia innych projektów jest bezcenny:D Soft - ze względu na float-y i stdio na uart zajmuje 6KB, ale po niewielkich przeróbkach można uruchomić na większości procesów AVR.
Przy okazji mam pytanie - jak solidnie przyczepić ds18b20 do radiatora? aktualnie jest wciśnięty pod twardy przewód i się trzyma, ale myślę, że warto by go jakoś lepiej przymocować.
Tak jak napisałem - hardware na pająka raczej nie jest polecany do kopiowania, ale mam nadzieję, że software będzie bardziej przydatny:)


Cool? Ranking DIY