<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=22&amp;t=4366&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-10-15T12:40:12+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=22&amp;t=4366&amp;mode</id>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2013-10-15T12:40:12+01:00</updated>
<published>2013-10-15T12:40:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=53015#p53015</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=53015#p53015"/>
<title type="html"><![CDATA[Re: Sterownik Wentylatora ATtiny13]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=53015#p53015"><![CDATA[
No fajna bajerka ... kupic mogles nowy ale ... nowy nigdy nie bedzie dzialal jak bys chcial a ten teraz tak. Zmienisz czasy wl/wyl moze dolozysz czujnik wilgotnosci i on bedzie zalaczal a moze cz. zanieczyszczen powietrza. Nowe tego nie maja ... twoj moze miec i to sie ceni <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> gratki za wytrwalosc.<br /><br />Wysłane z Tapatalk2 [url='http://tapatalk.com/m?id=10']now Free[/url]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 15 paź 2013, o 12:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matrix]]></name></author>
<updated>2013-10-04T21:23:16+01:00</updated>
<published>2013-10-04T21:23:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=51933#p51933</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=51933#p51933"/>
<title type="html"><![CDATA[Re: Sterownik Wentylatora ATtiny13]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=51933#p51933"><![CDATA[
Świetny projekt. Mi się podoba. Już od dawna noszę się z zamiarem wykonania czegoś takiego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=689">matrix</a> — 4 paź 2013, o 21:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-10-04T08:07:04+01:00</updated>
<published>2013-10-04T08:07:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=51828#p51828</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=51828#p51828"/>
<title type="html"><![CDATA[Re: Sterownik Wentylatora ATtiny13]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=51828#p51828"><![CDATA[
Mam nadzieje, że zasilacz z komórczaka też pokryłeś mocno lakierem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br /><br />Ja nie spotkałem by ładowarki były beztransformatorowe, no chyba że jakieś badziewie z chin, każdy musi i nie ma bata że nie, mieć transformator. To że one nie są na 50Hz tylko na sporo wyższe częstotliwości to inna kwestia.<br /><br />squeez jak sobie inaczej wyobrażasz galwaniczna separację od sieci zasilającej (230V) ?<br /><br />PS. Intre gratuluje samozaparcia w powstawaniu tego projektu (ja bym już dawno kupił nowy wentylator <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />).<br />PS2. Dla mnie od teraz to możesz sobie pisać o czym chcesz na czacie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<p>Statystyki: Napisane przez Gość — 4 paź 2013, o 08:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Intre]]></name></author>
<updated>2013-10-04T01:31:44+01:00</updated>
<published>2013-10-04T01:31:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=51815#p51815</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=51815#p51815"/>
<title type="html"><![CDATA[Sterownik Wentylatora ATtiny13]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4366&amp;p=51815#p51815"><![CDATA[
Jakiś czas temu zepsuł mi się w domu wentylator łazienkowy. Najprostszą rzeczą wiadomo było by kupić nowy co i pewnie by wyszło taniej licząc czas spędzony na projektowaniu, pisaniu programu, trawieniu płytki i wszystkiego co jak wiadomo wiąże się ze zrobieniem działającego urządzenia elektronicznego samemu.<br /><br />No ale pytanie czy przyjemniej i na ile cenne są walory edukacyjne przy realizacji nawet tak prostego urządzenia zwłaszcza dla początkującego amatora jakim jestem ja.<br /><br />Po krótkiej diagnozie uszkodzonego wentylatora stwierdziłem uszkodzenie jego sterownika spowodowane wilgocią jednakże sam silnik okazał się sprawny.<br />Wiadomo, można w prosty sposób zbudować taki sterownik na zwykłych elementach bez użycia mikrokontrolera.<br />Ja jednakże mając na uwadze walory edukacyjne postanowiłem więc wykorzystać zdobywaną obecnie wiedzę z książek oraz bardzo cennych poradników Mirka i zaprojektować oraz oprogramować własny sterownik  oparty o mikrokontroler AVR ATtiny13 i program napisany w języku C w środowisku Eclipse.<br /><br />Oryginalny sterownik wentylatora firmy Dospel <a href="http://www.dospel-comfort.pl/Product/product_pl.php?sc=001&amp;stge=69&amp;mc=C&amp;kind=01&amp;esk=01"  class="postlink">http://www.dospel-comfort.pl/Product/product_pl.php?sc=001&amp;stge=69&amp;mc=C&amp;kind=01&amp;esk=01</a> w tym modelu posiadał czujnik PIR załączający go na ruch i opóźniający wyłączenie go po upływie kilku minut. Ja postanowiłem jednak zrobić inaczej gdyż wentylator znajduję u mnie w rogu łazienki nad kabiną prysznicową i korzystając z niej nie załączał się gdy nie używało się prysznica. Więc pomysł reakcji na włączenie światła.  <br />Dzięki ukierunkowaniu przez kolegę SunRiver`a padło na Fotorezystor - u mnie dokładnie ten model: THT Perkin Elmer VT 93 N1, który reaguje na stan natężenia światła zmieniając swój opór. Stan tej zmiany monitoruję za pomocą ADC procesora na kanale nr. 1. Wiadomo przy zapalonym świetle wentylator się załącza a po jego zgaszeniu licznik programowy Timera0 odmierza czas ok 4-5 min i go wyłącza by dodatkowo wywietrzyć pomieszczenie po wyjściu. <br /><br />Sporym kłopotem było zasilanie procesora pierwotnie chciałem użyć zasilania bez transformatorowego ale po konsultacjach z kolegami z forum i analizie materiałów z internetu stwierdziłem że konstruowanie przez amatora takiego zasilania może skończyć się katastrofą. Zaprojektowałem więc zasilanie z malutkim transformatorem licząc na to że uda się wyciąć/dopasować plastiki zabrakło jednak 1-2 mm by obudowę zamknąć. Nie poddając się i dalszych konsultacjach finalnie zmieniłem i użyłem zasilacza od starego telefonu komórkowego, który daje napięcie 6,12V, by je zmniejszyć dałem stabilizator LDO na 3,3V.  <br /><br />Rozbieżnością odnośnie schematu jest także miejsce na podłączenie 2 diody LED, miała ona sygnalizować pracę wentylatora jednakże projektując już PCB pomyliłem się i puściłem ścieżkę zmieniając pin na pin z reset co wyklucza jego użycie bez pozbycia się funkcji programowania za pomocą ISP. Mimo sprawdzania finalnej płytki kilka razy tego nie dostrzegłem. No ale suma summarum wentylator stał się bardziej pro ekologiczny oszczędzając energię <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /> Dodatkowo przyznaję się że udało mi się jeden procesor Attiny13 zepsuć gdyż nie uważnie przełożyłem go z wentylatora do podstawki programatora, warto zwrócić uwagę i sprawdzić 2x nim włączy się zasilanie. No cóż umarł w imię nauki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />     <br /><br />Myślę że nie ma co się tu wiele rozpisywać bo szczegóły są w załączonych schematach i programie oraz fotografiach, wizualizacjach. Dodatkowo załączyłem oscylogramy filtracji zasilania dla poznania waszej opinii czy jest poprawna czy można jeszcze ją udoskonalić. <br /><br />Słowa podziękowania przy realizacji tego urządzenia należą się kolegą: rezasurmar, janeczqu oraz Antystatyczn`emu.<br />Bez ich cennych wskazówek odnośnie projektu PCB oraz programu urządzenie by raczej nie powstało. Także dziękuję serdecznie  za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />I jestem wam winy przy nadarzającej się okazji &quot;sok jabłkowy &quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Teraz przejdę do sedna, oto kod programu:<br /><br />[syntax=c]/*<br /> * PROGRAM STEROWNIKA WENTYLATORA<br /> * main.c<br /> *<br /> *  Created on: 2013-09-29<br /> *       Autor: Intre<br /> *<br /> *  Procesor: AVR Attiny13A<br /> *  Zegar wewnętrzny: 4,8 Mhz<br /> *  Ustawienie Fusebit: low 0x79; high:FF;<br /> *<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br /><br />/* ### DEFINICJA PINÓW DLA DIODY LED I WENTYLATORA ### */<br />#define LED (1&lt;&lt;PB3)                       // definicja pinu do którego podłączona dioda LED<br />#define FAN (1&lt;&lt;PB4)                       // definicja pinu do którego podłączony jest wentylator<br /><br />/* ### MAKRODEFINICJE DLA DIODY LED I WENTYLATORA ### */<br />#define LED_OFF PORTB &amp;= ~LED             // makrodefinicja wyłączenia diody LED<br />#define LED_TOG PORTB ^= LED              // makrodefinicja zmiana stanu diody LED<br /><br />#define FAN_ON PORTB |= FAN              // makrodefinicja włączenia wentylatora<br />#define FAN_OFF PORTB &amp;= ~FAN            // makrodefinicja wyłączenia wentylatora<br /><br />/* ### DEKLARACJE ZMIENNYCH ### */<br />volatile uint8_t cnt=0;                    // zmienna licznika 10ms<br />volatile uint8_t sec_flag;          // flaga tyknięcia Timera0 co 1 sekundę<br />volatile uint8_t sec;                   // licznik sekund 0-59<br />volatile uint8_t min;                      // licznik minut 0-59<br /><br />volatile uint16_t  pomiar=0;               // zmienna na potrzeby pomiaru z ADC<br /><br />volatile uint8_t fan_state;                // typ wyliczeniowy dla badania stanu wentylatora<br />enum {fan_off, fan_goes_to_off, fan_on};<br /><br />/* ### DEKLARACJE FUNKCJI  ### */<br />void fan_ster (void);                      // deklaracja funkcji zmiany stanu wentylatora odnośnie pomiaru z ADC<br /><br /><br />/* ### INICJALIZACJA ### */<br /><br />int main (void) {<br /><br />    /* ### USTAWIENIE 8-bit TIMER 0  ### */<br />//ustawienie na częstotliwości 100Hz dla zegara 4 800 000 Hz by osiągnąć czas ok 10ms<br />TCCR0A |= (1&lt;&lt;WGM01);// ustawienie trybu CTC<br />TCCR0B |= (1&lt;&lt;CS02);                // podział zegara przez preskaler = 256<br />OCR0A = 186;// dodatkowy podział zegara przez 186<br />TIMSK0 |= (1&lt;&lt;OCIE0A);// zezwolenie na przerwanie CompareMatch<br /><br /><br />/* ### INICJALIZACJA ADC  ### */<br />ADMUX = (1&lt;&lt;MUX0);                                   //Kanał ADC1 - PB2<br />ADCSRA =   (1&lt;&lt;ADEN)|(1&lt;&lt;ADPS1)|(1&lt;&lt;ADPS2);         // ustawienie preskaler`a podziału przez: 64 i włączenie pomiaru<br /><br /><br />// diody LED<br />DDRB |= LED|FAN;   // kierunki PIN i FAN jako wyjściowe<br />LED_OFF;          // wyłączenie diody LED<br />FAN_OFF;          // wyłączenie wentylatora<br /><br /><br />//włączenie przerwań<br />sei();<br /><br /><br />/* ### PĘTLA GŁÓWNA PROGRAMU ### */<br />while(1) {<br />if (sec_flag) {                      // sprawdza flagę tyknięcia sekundy<br />if(0 == sec%3) LED_TOG;             // zmień stan diody<br /><br />if(1 == sec%3) {                    //pomiar z ADC<br />  ADCSRA |=  (1&lt;&lt;ADSC);<br />      while(ADCSRA&amp;(1&lt;&lt;ADSC));<br />  pomiar=ADC;}<br /><br />        if(2 == sec%3) fan_ster();           //  włącza lub wyłacza wentylator na podstawie pomiaru z ADC<br />}<br />    sec_flag = 0;<br /><br />}<br />}<br /><br /><br />/* ### USTAWIENIE LICZNIKA SEKUND I MINUT NA TIMER 0 ### */<br />ISR(TIM0_COMPA_vect)<br />{<br />  if(++cnt&gt;99) {                         // gdy licznik ms &gt; 99 (minęła 1 sekunda)<br />  sec_flag= 1;                       // ustaw flagę tyknięcia sekundy<br />  {<br />  sec++;                             // zwiększ licznika sekund o 1<br />  if(sec&gt;59)                         // jeśli ilość sekund &gt; 59 to wyzeruj licznik sekund<br />  { sec = 0;<br />    min++;                         // zwiększ licznik minut o 1<br />  if(min&gt;59) {<br />  min = 0;                       // jeśli ilość minut &gt; 59 to wyzeruj licznik minut<br />       }<br />  }<br />  cnt = 0;                           // wyzeruj licznik setnych ms<br />  }<br />}<br />}<br /><br /><br />/* ### DEFINICJE FUNKCJI ### */<br /><br /><br />// definicja funkcji sterowania wentylatorem<br />void fan_ster (void) {<br />if (pomiar&gt;400)                                        // sprawdza warunek pomiaru, jeśli &gt;400 to włącz wentylator<br />{<br />FAN_ON;                                        // włączenie wentylatora<br />fan_state = fan_on;                            // stan wentylatora - wentylator włączony<br />}<br />if (pomiar&lt;400 &amp;&amp; fan_state == fan_on) {               // sprawdza warunek pomiaru, jeśli &lt;400 i wentylator włączony to przejdź do wyłączania<br />       fan_state = fan_goes_to_off;<br />       min = 0;                                        //  zerowanie licznika minut<br />       sec = 0;                                        //  zerowanie licznika sekund<br />   }<br />       if(fan_state == fan_goes_to_off){<br />       if(min==4){                                 // po upłynięciu ok. 4-5 minut wyłącz wentylator<br />       fan_state = fan_off;                    // stan wentylatora - wentylator wyłączony<br />       FAN_OFF;                                // wyłącz wentylator<br />       }<br />}<br />}<br /><br />/* ### KONIEC PROGRAMU ### */[/syntax]<br /><br />Myślę że opisy w nim szczegółowo wyjaśniają działanie programu i mam też nadzieję, iż jest napisany został czytelnie.<br /><br />Poniżej w załącznikach do tematu prezentuję schemat oraz zdjęcia - całość wraz ze schematami do Eagla oraz katalogiem programu z Eclipsa do pobrania w .zip.<br /><br />Nadmienię jeszcze że znajduję się tam podstawka do programatora dla ATtiny13, którą można wykorzystać do zaprogramowania procesora, testów dla tego projektu lub ewentualnie innego na tym ciekawym małym procesorze - może się komuś przyda.<br /><br />Dodatkowo jeszcze nadmienię że polakierowałem płytkę PCB sterownika oraz zasilacza z góry i z dołu lakierem PLASTIK 70 by zabezpieczyć urządzenie przed przepięciami i wilgocią. Zrezygnowałem także z radiatorów na stabilizatorze oraz triaku gdyż się nie mieściły prawidłowo pod obudową, myślę że pobory mocy nie są tam aż tak duże i wytrzymają one - na testach nie zauważyłem zbytniego nagrzewania się ich. <br /><br />Zdaję sobie sprawę że każdy projekt, program urządzenie zawsze da się zrobić lepiej - urządzenie obecnie mi działa pracuje dokładnie tak jak chciałem. Starałem się jak umiałem by było dobre, jednakże pokazując go liczę na wasze opinie, sugestie może jednak warto coś zmienić, zrobić inaczej dopracować. Jak wspomniałem nie jestem zawodowcem związanym z elektroniką a amatorem/hobbystą, który na razie się uczy. Liczę więc na waszą wyrozumiałość w ocenie tego projektu.<br /><br />Pozdrawiam Serdecznie<br />Intre<br /><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1356/031e506e94eb17d3e320a79441562049.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1356/031e506e94eb17d3e320a79441562049.jpg" alt="Obrazek" /></a><br /><a href="http://forum.atnel.pl/_obrazki/o/1356/031c228fd55f5b938a88c232a2c945c4.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1356/031c228fd55f5b938a88c232a2c945c4.jpg" alt="Obrazek" /></a><br /><a href="http://forum.atnel.pl/_obrazki/o/1356/9bc318917d34a9cdbe1acdb21204caf8.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1356/9bc318917d34a9cdbe1acdb21204caf8.jpg" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/1356/8a8ffc7c1ba48946dcf3632d85643cc2.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1356/8a8ffc7c1ba48946dcf3632d85643cc2.jpg" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/1356/d2a5af74c3d40dc0e606fe700e50ba47.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1356/d2a5af74c3d40dc0e606fe700e50ba47.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1356">Intre</a> — 4 paź 2013, o 01:31</p><hr />
]]></content>
</entry>
</feed>