Elektroda.pl
Elektroda.pl
X

Search our partners

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

Wytrawiarka na PIC16F1503 z MCP9700

tietom 02 Mar 2013 15:40 13692 31
  • Wytrawiarka na PIC16F1503 z MCP9700

    Witam.

    Chciałbym przedstawić swoją konstrukcję wytrawiarki. Od dłuższego czasu posiadam akwarium, grzałkę i napowietrzacz jednak do tej pory nie widziałem potrzeby budowania sterownika. W końcu jednak miałem dość ciągłego pilnowania temperatury trawienia postanowiłem więc zbudować sterownik.
    Na forum można znaleźć sporo konstrukcji tego typu czym ta różni się od innych?
    Moja wytrawiarka opiera się na mikrokontrolerze PIC16F1503 i termometrze MCP9700. Z innych ciekawostek to zastosowałem podwójny wyświetlacz 7 segmentowy ze wspólną anodą sterowany szeregowo przez 74LS164 co pozwoliło mi zaoszczędzić 5 wyprowadzeń mikrokontrolera.

    Pora na konkrety.

    Sterowanie PIC16F1503
    Czujnik temperatury MCP9700
    Wyświetlacz 2x7-seg wspólna anoda
    Akwarium 25cm x 35cm x 2,5cm wymiary wewnętrzne
    Grzałka 60W bez termostatu
    Pompka APR-200



    Zdjęcia przedstawiają prototyp sterownika.

    Wytrawiarka na PIC16F1503 z MCP9700 Wytrawiarka na PIC16F1503 z MCP9700 Wytrawiarka na PIC16F1503 z MCP9700

    W trakcie uruchamiania musiałem niestety wprowadzić pewne poprawki które są uwzględnione w finalnej wersji PCB. Mianowicie dodać rezystory ograniczające prąd tranzystorów i kondensatory filtrujące przy złączu termometru MCP9700, a także drobne zmiany w przebiegu ścieżek pozwalające zlikwidować większość zworek.

    Wersja finalna

    Wytrawiarka na PIC16F1503 z MCP9700 Wytrawiarka na PIC16F1503 z MCP9700Wytrawiarka na PIC16F1503 z MCP9700
    Wytrawiarka na PIC16F1503 z MCP9700

    Całość została upchnięta w obudowie typu Z6 a za zasilacz służy ładowarka USB którą w większości wypadków również można by było upchnąć w obudowie, ja jednak zdecydowałem się wyprowadzić kabel USB do podłączenia ładowarki dzięki czemu mogę wykorzystywać ją do innych celów jeśli akurat nie trawię żadnych płytek.

    Moja wytrawiarka w akcjii

    Wytrawiarka na PIC16F1503 z MCP9700 Wytrawiarka na PIC16F1503 z MCP9700

    Jak widać na zdjęciach w chwili obecnej za izolację czujnika temperatury robi opakowanie po zakreślaczu jednak planuję wymianę na rurkę szklaną, a także dodanie zaworka zwrotnego i trójnika do wężyka powietrza chociaż pompka i sterownik nie jest specjalnie narażony gdyż normalnie stoi dużo wyżej od akwarium i zdjęte zostały tylko do zdjęcia.

    Co do kosztów to nie będę czarował nie wiem dokładnie ile mnie wyniosło wszystko gdyż większość elementów posiadałem (pompka, akwarium, grzałka, prawie cała elektronika) jedynie co dokupiłem to wyświetlacz 2,5zł i obudowę 2,5zł.

    Z uwagi na to, że PIC16F1503 wymaga niższego napięcia programującego wykonałem przejściówkę do typowego programatora dla mikrokontrolerów PIC schemat poniżej.
    Wytrawiarka na PIC16F1503 z MCP9700
    Diodę zenera należy dobrać ekserymentalnie z zakresu 8,2V 9,1V.

    W załączniku zamieszczam pliki w formacie Eagla i PDF do termotransferu. Dodatkowo wsad do mikrokontrolera i źródła w C

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    tietom
    Level 13  
    Offline 
    tietom wrote 40 posts with rating 33, helped 6 times. Live in city Białystok. Been with us since 2006 year.
  • NOVATEK-ELECTRO POLSKA SP. Z O.O.NOVATEK-ELECTRO POLSKA SP. Z O.O.
  • #2
    kaka0204
    Level 28  
    Witam.
    Mała, zgrabna wytrawiarka, prosta do bólu. Sam myślę nad czymś takim. Niepokoi mnie jednak, ta kalafonia na płytce. Zmyj ją, bo nadpalona podobno może zadziałać jak rezystor, a ty masz tam wysokie napięcia.
    Pozdrawiam.
  • NOVATEK-ELECTRO POLSKA SP. Z O.O.NOVATEK-ELECTRO POLSKA SP. Z O.O.
  • #3
    tietom
    Level 13  
    Dzięki z uwagę, wiesz może czym dobrze zmywać pozostałości kalafonii i topnika?
  • #4
    User removed account
    User removed account  
  • #6
    dominik24
    Level 17  
    A dlaczego tylko połowę płytki pocynowałeś, a nie całą?
  • #7
    kaka0204
    Level 28  
    tietom wrote:
    Dzięki z uwagę, wiesz może czym dobrze zmywać pozostałości kalafonii i topnika?

    Ja zmywam najzwyklejszym rozpuszczalnikiem.
  • #8
    tietom
    Level 13  
    mieści się około 1,5l do 45*C rozgrzewa się w około 40 min

    wolałem nie cynować sekcji wysokonapięciowej
  • #9
    Galareta
    Level 22  
    Jakie przesłanki miałeś aby nie cynować części wysokonapięciowej? Jest coś co za tym przemawia?
  • #10
    tietom
    Level 13  
    Nie ma po prostu planuje pokryć tą część lakierem izolacyjnym jednak najpierw muszę usunąć resztki kalafonii no i czekać do wypłaty (brak środków na lakier)
  • #11
    dominik24
    Level 17  
    Napisz jeszcze w jaki sposób cynujesz układy,
    Ja ostatnio robiłem płytkę i za chiny nie chciało mi się pocynować, a robiłem zgodnie z instrukcją (po wytrawieniu wypolerowałem pastą Tempo, odtłuściłem i wrzuciłem do roztworu),
    Chyba że mróz zniszczył mi środek do cynowania bo całą zimę leżał w słoiku w garażu ?
  • #12
    tietom
    Level 13  
    Ja cynuję na gorąco lutownicą z szerokim grotem, trochę cyny i topnik lub kalafonia.

    Wytrawiarka na PIC16F1503 z MCP9700
  • #13
    dominik24
    Level 17  
    A nie myślałeś nad zrobieniem soldermaski ?
    Ja muszę poczytać gdzieś o tym jak dobrzeją położyć bo próbowałem już ze sposobem "wydrapywania" pól lutowniczych, ale można się domyślić jak to wygląda :)
  • #14
    tietom
    Level 13  
    Próbowałem parę razy skutek wiadomy :)
  • #15
    mazomen
    Level 15  
    Konstrukcja bardzo ładna i estetycznie obudowana ale:
    Jest to kolejna wersja wytrawiarki w której można znaleźć regulację temperatury... A czy jest ona tak naprawę do czegoś potrzebna? czy trawicie za każdym razem na innej temperaturze?
  • #16
    Jackziom
    Level 23  
    Witam!

    Jakich programów i jakiego programatora używasz do programowania?
  • #17
    emeryt2
    Level 42  
    Mam takie jedno może nie mądre pytanie: czy procesor sygnalizuje koniec wytrawiania i jak to jest zrealizowane , może na czasówce w zależności od nastawionej temperatury.
    Jeżeli nie ma takiego czegoś , to zastosowanie mikroprocesora można nazwać - przerost formy nad treścią!
  • #18
    Daniel_GSM
    Level 25  
    tietom wrote:
    Dzięki z uwagę, wiesz może czym dobrze zmywać pozostałości kalafonii i topnika?


    Można również użyć najtańszego zmywacza do paznokci - najlepiej takiego białego, śmierdzącego, który tylko zalega w sklepach bo kobiety wolą używać tych kolorowych
  • #19
    tietom
    Level 13  
    mazomen wrote:
    czy trawicie za każdym razem na innej temperaturze?


    Za każdym razem nie ale czasem trzeba bądź podkręcić bądź trochę obniżyć temperaturę, a koszt tego udogodnienia minimalny.

    Jackziom wrote:
    Jakich programów i jakiego programatora używasz do programowania?


    Programator Willem + przejściówka
    Oprogramowanie PICPgm

    emeryt2 wrote:
    Mam takie jedno może nie mądre pytanie: czy procesor sygnalizuje koniec wytrawiania i jak to jest zrealizowane , może na czasówce w zależności od nastawionej temperatury.
    Jeżeli nie ma takiego czegoś , to zastosowanie mikroprocesora można nazwać - przerost formy nad treścią!


    Pytanie na pewno jak najbardziej na miejscu. Mikrokontroler nie sygnalizuje końca wytrawiania nie widziałem takiej potrzeby. Oczywiście zawsze można zrealizować podobną konstrukcję na wzmacniaczach operacyjnych itd. ale czy to ma sens koszty op-ampów i innnych peryferii vs. mikrokontroler 4zł + 74LS164 1zł + garść kondensatorów i rezystorów
  • #20
    DiodaLed
    Level 13  
    Witam.
    Mam pewne zastrzeżenie do części elektronicznej sterującej wyświetlaczami. Czy w czasie pracy oba segmenty świecą równomiernie? Chodzi mi o moment, w którym na każdym jest inna cyfra. Problem tkwi w niewłaściwym sterowaniu tranzystorów Q1 i Q2. W układzie tym, podczas sterowania stanem niskim zaczyna przewodzić tranzystor. Jednak takie sterowanie bardzo obciąża uC, gdyż prąd potrzebny do sterowania może sięgać nawet ~80mA. Dodatkowo na rezystorach R9 i R10 pojawia się spadek napięcia, tym większy im więcej segmentów świeci. Ta sekcja powinna być przeprojektowana w następujący sposób: w miejsce R9 i R10 wstawić zwory. Między wyjściem uC a bazą tranzystorów wstawić rezystory o wartości od 4,7k do 10k. Usunąć rezystory R11 i R12, gdyż na wyjściu uC jest stan logiczny 0 lub 1 i nie ma potrzeby podciągania bazy tranzystora do + zasilania. Nawet jeśli w uC pojawi się stan, w którym wyjście będzie nie podłączone ani do + ani do masy, to i tak przez złącze baza-emiter nie popłynie prąd, co za tym idzie, tranzystor nie będzie przewodził.
    Nie jest też potrzebny rezystor R3. Można śmiało bezpośrednio połączyć wejście 2 układu IC2 z plusem zasilania. Wejścia tego układu, mają bramki CMOS, co za tym idzie, prąd przez nie praktycznie nie płynie i reagują one na poziom napięcia. Dodanie rezystora, może dodatkowo wprowadzić jakieś stany nieustalone, przy silnych zakłóceniach z zewnątrz.
    Dziękuję za uwagę, mam nadzieję, że pomogłem. Pozdrawiam.
  • #21
    dominik24
    Level 17  
    Po co wrzuciłeś rezystory R2 i R6 ?
  • #22
    DiodaLed
    Level 13  
    @dominik24
    Rezystory R2 i R6 są potrzebne do prawidłowej pracy optotriaka. Dzięki nim, wewnętrzny układ wyzwalania triaka w zerze działa właściwie. Zajrzyj do dokumentacji MOC3041.
  • #23
    tietom
    Level 13  
    Quote:
    Czy w czasie pracy oba segmenty świecą równomiernie?


    Tak świecą równomiernie
    Wytrawiarka na PIC16F1503 z MCP9700 Wytrawiarka na PIC16F1503 z MCP9700

    Quote:
    powinna być przeprojektowana w następujący sposób: w miejsce R9 i R10 wstawić zwory


    w pierwszej wersji tak było i tranzystorki się usmażyły, więc zostanę przy wersji z R9 i R10

    Quote:
    Jednak takie sterowanie bardzo obciąża uC, gdyż prąd potrzebny do sterowania może sięgać nawet ~80mA


    skąd kolega wziął tą wartość, dzięki R9 i R10 każdy z wyświetlaczy 7 segmentowych pobiera maksymalnie ~60mA, wzmocnienie prądowe ok 100 więc do wysterowania tranzystora trzeba około 600uA.
  • #24
    DiodaLed
    Level 13  
    Quote:

    skąd kolega wziął tą wartość, dzięki R9 i R10 każdy z wyświetlaczy 7 segmentowych pobiera maksymalnie ~60mA, wzmocnienie prądowe ok 100 więc do wysterowania tranzystora trzeba około 600uA.

    Prąd jaki płynie przez złącze baza-emiter to (Uzas-Ube)/R9. Zakładając, jak w tym przypadku, że tranzystor wyzwalany jest stanem niskim, czyli podając na jego bazę masę zasilania.
    Jeśli paliły ci się tranzystory, oznacza to, że najprawdopodobniej dałeś za mały rezystor (lub jego brak) przed bazą.
    Wyświetlacz świeci ci tylko dlatego, że wyjścia uC nie mają odpowiedniej wydajności prądowej, i prąd który powinien płynąć przez diody nie upływa do wejść uC.
    Aby potwierdzić moje słowa, specjalnie wykonałem symulację. Oto ona:
    Wytrawiarka na PIC16F1503 z MCP9700
    Na pierwszym z lewej układzie, jest twoja propozycja. W warunkach idealnych, widać, że dioda nie świeci, gdyż prawie cały prąd (81mA) upływa przez bazę.
    Drugi układ to sytuacja rzeczywista, w której wejście uC ma około 100 omów rezystancji, dzięki czemu jeszcze część prądu może przepłynąć przez diody, co za tym idzie, mogą one świecić. W tym wypadku nadal płynie duży prąd przez wyprowadzenia uC (~26mA).
    Trzeci przypadek, to układ jaki należy stosować. W obwodzie bazy należy użyć dość dużego rezytora. Tutaj użyłem 10k dzięki czemu prąd bazy wynosi ~430uA. Przy wzmocnieniu tylko 100 razy da nam prąd kolektora ~43mA. Można oczywiście dać trochę mniejszy rezystor np. 4,7k dzięki czemu ten prąd wzrośnie ponad dwukrotnie, co by zapewniło najbardziej optymalną pracę układu.
    Myślę, że tym wytłumaczeniem rozwiałem już twoje wszelkie wątpliwości.
  • #25
    dominik24
    Level 17  
    DiodaLed wrote:
    @dominik24
    Rezystory R2 i R6 są potrzebne do prawidłowej pracy optotriaka. Dzięki nim, wewnętrzny układ wyzwalania triaka w zerze działa właściwie. Zajrzyj do dokumentacji MOC3041.


    Dzięki kolego za odpowiedź,
    No rzeczywiście w dokumentacji jest rezystor w tym miejscu,
    Ja do tej pory kierowałem się schematami ze strony Mirley ale widocznie autor popełni tam błędy,
  • #26
    tietom
    Level 13  
    Rzeczywiście kolega DiodaLed ma rację jako, że za bardzo nie ufam symulacjom sprawdziłem to w rzeczywistym układzie

    moje rozwiązanie
    bez obciążenia

    Wytrawiarka na PIC16F1503 z MCP9700

    z obciążeniem
    Wytrawiarka na PIC16F1503 z MCP9700

    a to propozycja kolegi DiodaLed
    Wytrawiarka na PIC16F1503 z MCP9700

    Wieczorem naniosę poprawki
  • #27
    djfarad02
    Level 18  
    Leciutko przyczepię się do źródeł programu - chodzi o funkcje
    LS164_cyfra i LS164_send_byte w pliku 74ls164_7led.c
    Są tam spore fragmenty kodu, które można zastąpić zwykłymi pętlami z licznikami i danymi dla tych pętli w pamięci flash. Zmniejszyłoby to zajętość pamięci flash.
  • #28
    User removed account
    User removed account  
  • #30
    tietom
    Level 13  
    Quote:
    niepotrzebnie łączyłeś RST rejestru 74164 z procem, nie jest w ogole potrzebny do prawidłowej obsługi


    Sytuacja hipotetyczna reset 74164 niepodłączony, w skutek jakiegoś zakłócenia czy błędu programowego ginie jeden bit w transmisji i wszystkie następne po tym incydencie dane będą przekłamane co zobaczysz na wyświetlaczu.

    W moim rozwiązaniu nawet nie zauważysz tego, gdyż transmisja ma następujący przebieg najpierw reset 8 bitów transmisji, włączenie na wyświetlaczu 1 cyfry i znów od początku reset transmisja włączenie 2 cyfry.

    Quote:
    Po raz pierwszy w amatorskiej plytce widze szczeliny izolacyjne dla wysokiego napiecia. Szacun!
    Czym frezowales?


    Dzięki, a frezowałem najzwyczajniej ułamanym wiertłem i mini-wiertarką na stojaku

    Dodano po 13 [minuty]:

    djfarad02 wrote:
    Leciutko przyczepię się do źródeł programu - chodzi o funkcje
    LS164_cyfra i LS164_send_byte w pliku 74ls164_7led.c
    Są tam spore fragmenty kodu, które można zastąpić zwykłymi pętlami z licznikami i danymi dla tych pętli w pamięci flash. Zmniejszyłoby to zajętość pamięci flash.


    można by to zmienić ale po co

    Code:

    Microchip MPLAB XC8 C Compiler V1.12
    Copyright (C) 2012 Microchip Technology Inc.
    License type: Node Configuration


    Memory Summary:
        Program space        used   2CDh (   717) of   800h words   ( 35.0%)
        Data space           used    2Eh (    46) of    80h bytes   ( 35.9%)
        EEPROM space         None available
        Configuration bits   used     2h (     2) of     2h words   (100.0%)
        ID Location space    used     0h (     0) of     4h bytes   (  0.0%)

    make[2]: Leaving directory `G:/MIKROCHIP_C/Trawiarka'
    make[1]: Leaving directory `G:/MIKROCHIP_C/Trawiarka'

    BUILD SUCCESSFUL (total time: 14s)
    Loading code from G:/MIKROCHIP_C/Trawiarka/dist/HT_PIC16F54/production/Trawiarka.production.hex...
    Loading symbols from G:/MIKROCHIP_C/Trawiarka/dist/HT_PIC16F54/production/Trawiarka.production.cof...
    Loading completed

    zajęte jest raptem 35% pamięci flash