Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik)

phanick 06 Jul 2012 20:16 16275 27
Altium Designer Computer Controls
  • Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik)
    Przedstawiam projekt termostatu do mojej wytrawiarki, opartej na Atmedze 8, termometrze cyfrowym DS18B20 oraz przekaźniku JQC-3FF.

    Motwywacja
    Wytrawiarkę udało mi się kupić na allegro, niestety przepłaciłem (zakupiłem ją od cwaniaczka, który wykonał ją niechlujnie oraz dorzucił jakąś grzałkę akwarystyczną, która niestety się nie mieściła).

    Poszukując odpowiedniej grzałki kupiłem 100 watową (od WID-POL) cienką, bez termostatu, idealnie nadającą się grzałeczkę. Niestety już kilka razy włączyłem grzałkę chcąc wytrawiać płytkę i się zamyśliłem, co skutkowało prawie zagotowaniem wytrawiacza. Postanowiłem nadać sprawie inny obrót i wykonałem termostat.

    Opis techniczny
    Termostat opiera się na mikrokontrolerze Atmega8. Nie jest to jednak zwykła atmega, tylko wersja limitowana - kiedyś dawno dawno temu przez przypadek kupiłem ją w wykonaniu SMD, a że nie potrafiłem wtedy jeszcze wykonywać PCB, postanowiłem ją przerobić na wersję DIP. Po wielu mozolnych przejściach efekt ostateczny został osiągnięty (jednak nie bez ofiar - ukruszyła się duża część wyprowadzeń).
    Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik)

    Procesorek ten długo leżał u mnie w szufladzie bezużyteczny, aż w końcu postanowiłem go wykorzystać.

    Do procesora podpięty jest termometr cyfrowy DS18B20, z którym komunikacja odbywa się po 1-Wire (protokół został zakodowany samodzielnie). Wyprowadzenie termometru zostały szczelnie zgrzane rurkami termokurczliwymi, a całość dodatkowo zalana termoglutem, co zapobiega przedostawaniu się wytrawiacza.

    Elementem wykonawczym jest przekaźnik JQC-3FF, do którego podłączona jest złączka WAGO (do podłączenia grzałki). Przekaźnik jest sterowany poprzez tranzystor NPN BC 337. Podłączona odpowiednio dioda LED świeci się, gdy grzanie jest włączone.

    Oprócz tego wykorzystany jest wyświetlacz siedmiosegmentowy dwucyfrowy (wspólna anoda). Na wyświetlaczu pokazywana jest aktualna temperatura.

    Przycisk sterujący służy do zmiany nastawionej temperatury (od 30*C do 50*C).
    Naciskanie przycisku zwiększa temperature o 1*C cyklicznie aż do przekręcenia się zakresu (z 50*C do 30*C). W momencie zmiany, wyświetlana jest nastawiona temperaturą (z kropką na końcu, dla odróżnienia od temperatury aktualnej).

    W regulacji zastosowana jest prosta histereza - wyłączenie grzałki następuję przy temperaturze nastawionej, a włączenie - przy temperaturze o 3 stopnie niższej.

    Całość zasilana jest z zasilacza 9V (obecny stabilizator 7805 zmniejsza napięcie do wymaganego). Zastosowany radiator skutecznie odprowadza z niego duży nadmiar ciepła.

    Projekt płytki
    Projekt płytki został wykonany w Eagle - w zasadzie są to dwie płytki - jedna do umieszczenia na panelu przednim (z wyświetlaczem, przyciskiem, diodą), a druga w obudowie wytrawiarki (z mikrokontrolerem) - obie jednowarstwowe.

    Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik) Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik)

    Zmuszony zostałem do wykonania pewnych komponentów samodzielnie - np. dla mojej limitowanej Atmegi, czy przekaźnika
    Jednym z mankamentów było to, że obecne w Eagle tranzystory (BC337, BC327) posiadają odwrotny układ wyprowadzeń, o czym dowiedziałem się tuż po zlutowaniu i włączeniu układu.

    Obie płytki po wykonaniu zostały połączone czternastożyłowym kablem, którego końce po zalutowaniu zalałem termoglutem, aby nic się nie oderwało.

    Oprogramowanie
    Oprogramowanie zostało napisane w środowisku VMLAB w C - zaimplementowany został protokół 1Wire. Wsad został dołączony do tego wątku. Jako pewną nowość wykorzystałem napisaną przeze mnie obsługę wyprowadzeń mikrokontrolera za pomocą makr - szerzej opisaną w tym wątku: https://www.elektroda.pl/rtvforum/topic2330270.html

    Zdjęcia wykonanego układu
    Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik) Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik) Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik) Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik) Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik) Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik) Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik) Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik) Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik)

    Przemyślenia i uwagi
    Z dziwnych powodów przekaźnik czasami włącza i wyłącza się na chwilę...

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    phanick
    Level 28  
    Offline 
    phanick wrote 2451 posts with rating 2539, helped 56 times. Live in city Warszawa. Been with us since 2007 year.
  • Altium Designer Computer Controls
  • #2
    jaglarz
    Level 23  
    Projekt fajny, ale muszę się przyczepić do lutowania układu. Nie rozumiem dlaczego nie osadziłeś układu SMD bezpośrednio na płytce?
    W tej wersji (lutowanie SMD do podstawki DIP) jest dla mnie nie do przyjęcia i ohydnie wygląda.

    Daję FAJNE

    I na czym opierasz przekonanie że to wersja "limitowana"??? Bo co??
  • Altium Designer Computer Controls
  • #4
    phanick
    Level 28  
    Dysponowałem po prostu takim procesorem, więc go tutaj użyłem :)
    Jak już pisałem - jest limitowana właśnie z tego powodu, że dawno dawno temu przerobiłem ją na DIP :)


    Polecam za to wykonywanie termotransferu na zużytej kartce samoprzylepnej (tej stronie, do której przyklejona była na klej właściwa kartka). Tutaj nic się do PCB nie przykleja i obrazek po przeniesieniu na PCB wygląda zupełnie tak, jak wcześniej na kartce. Mankamentem jest fakt, że toner drukarki do tej części kartki słabo się przykleja, więc nie dotykać po wydruku paluchami bo się rozmaże. Ważne tez, aby żaden wałek drukarki po tym wydruku nie przejeżdżał, bo też szlag wsystko trafi.
  • #5
    cacperro
    Level 13  
    To złącze to nie jest WAGO tylko ARK jeśli mnie wzrok nie myli.
    Kolejną kwestią jest fakt że projekt płytki jest do zastosowania dla Twojej Atmego-podstawki. pasowałoby chociaż aby ta Atmega SMD była dolutowana do normalnej dla Atmegi8 podstawki DIP8 (nie takiej szerokiej jak widoczna).
    Wtedy i Ty mógłbyś wykorzystać posiadany uC i w przyszłości mógłbyś go ewentualnie powielić lub chociaż ułatwić wykonanie urządzenia wg. Twojego projektu innym. A tak projekt generalnie jednorazowego użycia bo chcąc wykonać drugi musiałbyś robić drugą "limitowaną" At-inwalidkę.
    Grunt, że działa. Włączenie losowe przekaźnika może być spowodowane nieodpowiednimi wartościami R11,12. Może klucz T1 się przez to załącza.
  • #6
    Flaman11
    Level 17  
    Witam, Dołóż rezystor 10k i kondensator 100nF do linii RESET i zobacz, czy nadal występuje problem z przekaźnikiem. Dlaczego sterujesz tranzystorem T1 poprzez dzielnik napięcia zamiast jednego rezystora? Do czego podłączona jest anoda red led?
  • #7
    LordBlick
    VIP Meritorious for electroda.pl
    phanick wrote:
    Z dziwnych powodów przekaźnik czasami włącza i wyłącza się na chwilę...
    Powiedziałbym, że to algorytm termoregulacji jest tak skonstruowany, ze jest podatny na złe odczyty z czujnika.
    P.S. - Nie mogłem się powstrzymać: http://demotywatory.elektroda.pl/get_item_541_Jak_przewleka_sie_SMD_Nie.html ;)
  • #8
    phanick
    Level 28  
    Flaman11 wrote:
    Witam, Dołóż rezystor 10k i kondensator 100nF do linii RESET i zobacz, czy nadal występuje problem z przekaźnikiem. Dlaczego sterujesz tranzystorem T1 poprzez dzielnik napięcia zamiast jednego rezystora? Do czego podłączona jest anoda red led?


    Dołożę.
    To nie dzielnik, tylko podciągnięcie bazy do masy - aby ta nie wisiała w powietrzu i tranzystor był w stanie odcięcia, gdy układ jest wyłączony.
    Do niczego nie jest podłączona - po prostu miałem diody dwukolorowe i chciałem wykorzystać tylko jedną barwę (właściwie to anoda zielonej jest niepodłączona, a czerwonej jest w miejscu podłączenia zielonej).

    Dodano po 2 [minuty]:

    LordBlick wrote:
    phanick wrote:
    Z dziwnych powodów przekaźnik czasami włącza i wyłącza się na chwilę...
    Powiedziałbym, że to algorytm termoregulacji jest tak skonstruowany, ze jest podatny na złe odczyty z czujnika.
    P.S. - Nie mogłem się powstrzymać: http://demotywatory.elektroda.pl/get_item_541_Jak_przewleka_sie_SMD_Nie.html ;)

    Też myślę, że warto się przyjrzeć temu protokołowi - może czasami po prostu termometr zwraca śmieci i wtedy się na chwile coś rozłącza.

    Swoją drogą szkoda, że portal demotywatorów elektrody jest tak rzadko aktualizowany - często tam sam wpadam :)
  • #9
    SylwekK
    Level 32  
    phanick wrote:
    ...To nie dzielnik, tylko podciągnięcie bazy do masy - aby ta nie wisiała w powietrzu i tranzystor był w stanie odcięcia, gdy układ jest wyłączony...
    Takie podciąganie rezystorem do masy kompletnie nie ma sensu, bo jak dajesz stan niski na port to... masz podciągnięte do masy :) , a R11 zamiast 1k spokojnie mogłeś dać nawet 10k i też by działało, a byłby mniejszy prąd obciążający procek i jeszcze spokojnie wystarczający aby tym tranzystorem klapnąć przekaźnik.
  • #10
    phanick
    Level 28  
    Właściwie dzięki temu projektowi nauczyłem się sterować przekaźnikami, bo nigdy wcześniej tego nie robiłem.

    Co do 10 K podciągający do masy, to na wielu stronach o przekaźnikach widzę go. Chyba że ma inne zadanie, niż podciąganie, to niech mnie ktoś poprawi.
    Poza tym w momencie gdy mikrokontroler się inicjalizuje, to jednak przez chwile to wyjścia pływa.

    Co do 1K na bazie, to sugerowałem się tym schematem:

    Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik)

    http://systembus.com/110621/%5BnRF24%5Ddiyembedded2/www.sparkfun.com/tutorials/119.htm
  • #11
    Flaman11
    Level 17  
    phanick wrote:
    Poza tym w momencie gdy mikrokontroler się inicjalizuje, to jednak przez chwile to wyjścia pływa.


    Domyślnie porty mają stan 0 i są ustawione jako wyjścia, więc nic nie pływa. Możliwe że faktycznie wina jest po stronie softu, dołóż procedurkę, że przekaźnik może zmienić swój stan tylko gdy crc będzie zgodne.
  • #12
    jaglarz
    Level 23  
    phanick wrote:
    Co do 10 K podciągający do masy, to na wielu stronach o przekaźnikach widzę go.


    Uwierz że R12 jest zbędny.
  • #13
    phanick
    Level 28  
    Flaman11 wrote:
    phanick wrote:
    Poza tym w momencie gdy mikrokontroler się inicjalizuje, to jednak przez chwile to wyjścia pływa.


    Domyślnie porty mają stan 0 i są ustawione jako wyjścia, więc nic nie pływa. Możliwe że faktycznie wina jest po stronie softu, dołóż procedurkę, że przekaźnik może zmienić swój stan tylko gdy crc będzie zgodne.

    A mi się wydawało, że jako wejścia.
  • #14
    tymon_x
    Level 30  
    Flaman11 wrote:
    Domyślnie porty mają stan 0 i są ustawione jako wyjścia, więc nic nie pływa. Możliwe że faktycznie wina jest po stronie softu, dołóż procedurkę, że przekaźnik może zmienić swój stan tylko gdy crc będzie zgodne.

    Następnym razem polecam Swoje domysły poprzeć dokumentacją:
    Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik) Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik)

    jaglarz wrote:
    Uwierz że R12 jest zbędny.

    Tak samo jak kolega wyżej, zanim cpu dotrze do instrukcji konfigurujące porty, taki rezystor jest potrzebny.
  • #15
    jaglarz
    Level 23  
    Ten ewentualny impuls jest tak krótki że nie zdąży załączyć przekaźnika.
  • #16
    pogi13
    Level 14  
    Ładna konstrukcja :) pokazałeś że i w SMD można być bardzo oryginalnym :) Po przeróbkach o których koledzy wspominają, całość (także i po moich małych działaniach) powinna wyglądać mniej więcej tak? P.S nie znalazłem biblioteki przekaźnika JQC-3FF więc zamieszczam egzemplarz podobny graficznie
    Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik)
  • #18
    KGS
    Level 23  
    Witam !
    Głosując FAJNE na koncepcję układu , nie mogę się powstrzymać od skrytykowania zastosowanego przekaźnika JQC-3FF. Otóż do swojej wytrawiarki z dwoma grzałkami 150W (razem 300W) zastosowałem termostat "gotowca" NE001 Termometr cyfrowy z termostatem od -50 do 150 stopni C - z przeróbkami umożliwiającymi stabilizację temp. w zakresie 35-50 stopni C.
    Niestety był tam właśnie taki typ przekaźnika. Po pewnym czasie jego styki się po prostu skleiły - podając napięcie na grzałki cały czas. Na szczęście "w porę" zauważyłem wskazania wyświetlacza temperatury i skończyło sie tylko na zniszczeniu przez zupełne podtrawienie (w B327) trawionych PCB. wobec tego zmieniłem przekaźnik na RM82 ze stykiem zwiernym 16A lub parą styków zwiernych 2x8A. Zabezpieczyło mnie to na przyszłość przed podobnym wypadkiem. Uważam po prostu, ze przekaźniki te mają może i ładną, małą, zwartą budowę jednak nie najlepiej sobie radzą z przełączaniem obciążeń przy 230V AC. Pozdrawiam ! :D
  • #19
    phanick
    Level 28  
    KGS wrote:
    Witam !
    Głosując FAJNE na koncepcję układu , nie mogę się powstrzymać od skrytykowania zastosowanego przekaźnika JQC-3FF. Otóż do swojej wytrawiarki z dwoma grzałkami 150W (razem 300W) zastosowałem termostat "gotowca" NE001 Termometr cyfrowy z termostatem od -50 do 150 stopni C - z przeróbkami umożliwiającymi stabilizację temp. w zakresie 35-50 stopni C.
    Niestety był tam właśnie taki typ przekaźnika. Po pewnym czasie jego styki się po prostu skleiły - podając napięcie na grzałki cały czas. Na szczęście "w porę" zauważyłem wskazania wyświetlacza temperatury i skończyło sie tylko na zniszczeniu przez zupełne podtrawienie (w B327) trawionych PCB. wobec tego zmieniłem przekaźnik na RM82 ze stykiem zwiernym 16A lub parą styków zwiernych 2x8A. Zabezpieczyło mnie to na przyszłość przed podobnym wypadkiem. Uważam po prostu, ze przekaźniki te mają może i ładną, małą, zwartą budowę jednak nie najlepiej sobie radzą z przełączaniem obciążeń przy 230V AC. Pozdrawiam ! :D


    W nocie katalogowej JQC-3FF wyraźnie masz napisane:

    Max switching power: 2770VA 210W

    więc nie dziw się, że styki Ci się zespawały.
  • #20
    phanick
    Level 28  
    Wytrawiarka z zamocowaną całą elektroniką wygląda tak:

    Termostat do wytrawiarki (Atmega8, DS18B20 - termometr, JQC-3FF - przekaźnik)

    Z drugiej strony panelu znajdują się zamocowany przedstawiony sterownik + 3 gniazda 230V, do których podłączony jest zasilacz sterownika, grzałka i napowietrzacz.

    Przycisk na przodzie panelu włącza/wyłącza napowietrzacz.
  • #21
    phanick
    Level 28  
    No niestety Panowie, z bólem serca muszę stwierdzić, że wytrawiło mi DS18B20...
    Termometr przestał pokazywać temperaturę. Po rozebraniu okazało się, że jedna nóżka zmieniła kolor na miedziany i przy lekkim dotknięciu cała odpadła. Słabo zabezpieczyłem. A może powinno to być umocowane na zewnątrz akwarium, jeżeli u mnie cały czas stoi w nim wytrawiacz...
  • #22
    phanick
    Level 28  
    Udało mi się odratować termometr. Przypiłowałem delikatnie obudowę i mogłem dolutować się do półmilimetrowej pozostałości po nóżce.
    Całość zalałem teraz dokładnie termoglutem, bez żadnych termorurek. Dodatkowo zalałem też w termoglucie metalową nakrętkę, aby zwiększyć ciężar - do tej pory termometr cały czas wypływał na powierzchnię.

    Oprócz niego mam też w nim termometr rtęciowy i po tych przeróbkach muszę powiedzieć, że pokazują bardzo zgodne wyniki :)

    Dodano po 20 [minuty]:

    A co do tego, że przekaźnik włączał i wyłączał się losowo też znalazłem przyczynę.
    Problem nie leżał w przekaźniku, tylko w funkcji mierzącej (oprócz włączania/wyłączania przekaźnika na wyświetlaczu też na chwilę pojawiały się śmieci).

    Problem z mierzeniem był taki, że protokół obsługi 1Wire jest czasowo bardzo krytyczny. W programie niestety włączone są przerwania (np. do obsługi wyświetlacza siedmiosegmentowego), więc jeżeli przerwanie przyjdzie w czasie wywoływania funkcji odczytującej wartość z termometru, protokół się sypie i zamiast poprawnej temperatury, procedura otrzymuje śmieciowe wartości (np 90 stopni), stąd włączanie/wyłączanie się przekaźnika.

    Procedura obsługi termometru składa się z 3 faz:
    * wysłanie polecenia rozpoczęcia mierzenia temperatury
    * oczekiwanie na koniec mierzenia
    * odczytanie wyniku z termometru

    Na czas pierwszej i trzeciej części należało wyłączyć przerwania. Teraz wszystko działa cud-miód.
  • #23
    r06ert
    Level 25  
    Witam,

    Tak sobie przeglądałem dział DIY i wpadłem na twój projekt. Ja sam również (podobnie jak wielu innych) użytwkowników zrobiłem wytrawiarkę opartą na mikrokontrolerze ;)
    https://www.elektroda.pl/rtvforum/topic1960480.html lub na mojej stronie
    http://robertzdunek.dyndns-home.com/wytrawiarkawibracyjna.html

    Miałeś problemy z czujnikiem DS. Ja go zabezpieczyłem w ten sposób, że każdą nóżkę zaizolowałem koszulką termokurczliwą, następie wsadziłem całego DSa do większej koszulki termokurczliwej. Wlałem trochę termokleju z jednej i z drugiej strony koszulki, a następnie podgrzałem. Efekt jest taki, że czujnik działa już od kilku lat i wytrawiacz jeszcze sie do niej nie dostał. Ostatnio moja wytrawiarka ma drugi życie i służy nie mi i moim kolegom w pracy i wszystko z nią ok.

    Pozdrawiam
  • #25
    jackone
    Level 14  
    phanick wrote:
    [...]
    Co do 10 K podciągający do masy, to na wielu stronach o przekaźnikach widzę go. Chyba że ma inne zadanie, niż podciąganie, to niech mnie ktoś poprawi.
    Poza tym w momencie gdy mikrokontroler się inicjalizuje, to jednak przez chwile to wyjścia pływa.

    Co do 1K na bazie, to sugerowałem się tym schematem:
    [...]


    Co prawda stary temat ale coś dopiszę od siebie.
    Co do stabilizacji punktu pracy tranzystora kolega postąpił jak najbardziej poprawnie,
    więc nie rozumiem sugestii żeby pozbyć się tego rezystora ściągającego potencjał bazy do masy. Co do lutowania kabelkami pinów procesora to muszę przyznać, że widziałem "lepsze cuda" i brawa koledze za samozaparcie przy lutowaniu. Jedynie co mnie razi to zamocowanie modułu wyświetlacza. Mógłby się kolega lepiej postarać.
  • #26
    phanick
    Level 28  
    Wytrawiarka po roku działa nadal wzorowo. Odkąd przeniosłem czujnik tempertury z wewnątrz do zewnątrz (przyklejony na termoglucie do szyby) to skończyły się problemy z jego przetrawianiem. Co prawda pokazuje on temperaturę ok 4-5 stopni niższą, niż termometr analogowy wewnątrz, ale można to uwzględnić przy ustawianiu maksymalnej temperatury.

    Nie wylewam z niej b327 i nic nie przecieka.
  • #27
    sstasinek
    Level 12  
    Flaman11 wrote:

    Domyślnie porty mają stan 0 i są ustawione jako wyjścia, więc nic nie pływa. Możliwe że faktycznie wina jest po stronie softu, dołóż procedurkę, że przekaźnik może zmienić swój stan tylko gdy crc będzie zgodne.


    SylwekK wrote:
    Takie podciąganie rezystorem do masy kompletnie nie ma sensu, bo jak dajesz stan niski na port to... masz podciągnięte do masy :) , a R11 zamiast 1k spokojnie mogłeś dać nawet 10k i też by działało, a byłby mniejszy prąd obciążający procek i jeszcze spokojnie wystarczający aby tym tranzystorem klapnąć przekaźnik.


    itd.

    Mam wrażenie że żaden czepiający się schematu włącznie z autorem wytrawiarki nie pokusił się o lekturę "instrukcji obsługi" Atmega8 ;)

    phanick wrote:
    Poza tym w momencie gdy mikrokontroler się inicjalizuje, to jednak przez chwile to wyjścia pływa.


    Nie sądze by tranzystor bipolarny się otworzył dostatecznie nawet bez rezystora R2 tym niemniej to nie rezystor ale podpięcie NPN na wyjście może wywołać niepożądane działanie i nawet rezystor 10kOhm jej nie uratuje jakby oczekiwał autor projektu. W trybie pracy pinu jako wejście IN prąd popłynie przez pull up w AVR(20kOhm) i R1(1kOhm) taki że przez bazę przeleci ok 0.2mA więc spokojnie załączy przekaźnik. Trudno nazwać stanem nieustalonym bo wymaga ustawienia PORTu na 1 ale zanim aktywujesz DDR - przekaźnik już zadziała :D


    Trzeba pamiętać że mega ma 3 rejestry odpowiedzialne za stan wyjścia.
    1. bit PUD w rejestrze SFIOR domyślnie 0(akywuje pull upy)
    2. DDRx domyślnie 0(wyłącza bufor wyjścia)
    3. PORTx domyślnie 0(pullup jest nieaktywny, 1 go aktywuje nawet w trybie wejścia 20kOhm zwiera pin do plusa)

    Wystarczy zawsze ustawiać PUD na 1 i problem konsternacji zniknie poza tym bez pull upów zmniejszą się prądy niepotrzebnie uciekające z zasilania.
    (dla dwóch portow 16 zer x0.25mA = 8mA oszczędności!)
    Natomiast działanie które opisałem(port włącza pullup) ma pewien plus - można zarówno globalnie i lokalnie sterować pullupami.

    Idealnym tranzystorem do bezpośredniego sterowania w układzie o wspólnym napięciu(wykonawcze i zasilające procesor) jest PNP, rolę R2 odgrywa pull up, ale mimo wszystko nadal obecność rezystora R2 byłaby wskazana.
    W zasadzie... pulup moze to być jedynie zmartwieniem w specyficznych sytuacjach ale warto o nim pamiętać.