Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

"Generator" określonej ilości wrzątku

15 Lip 2008 02:05 2042 11
  • Poziom 10  
    Witam szanownych kolegów z góry piszę, że jestem wyjątkowo początkującym elektronikiem w związku z tym proszę o wyrozumiałość. Nie chce by ktoś od razu podał Mi gotowe rozwiązanie bo chętnie bym się czegoś nauczył (rozwiązanie + wytłumaczenie bardzo miło widziane ):D

    Postawione sobie zadanie polega na zagotowaniu ~500ml wody za pomocą grzałki a następnie wyłączeniu jej i wypompowaniu gorącej wody. Rzecz ma się dziać po naciśnięciu przycisku start (układ ma zareagować tylko raz na wciśnięcie przycisku, każde kolejne ma być ignorowane - jeśli ktoś omyłkowo wciśnie start w trakcie wypompowywanie wody)

    Cewka przekaźnika jest na 12V tj. pompka
    (ze spryskiwaczy samochodowych)

    Wyprowadzenia każdej lini oznaczyłem kolejno od X1 do X11.

    Zielonym kolorem oznaczyłem pływaki które po zalaniu rozłączają styki u góry.

    układ nie powinien zadziałać gdy poziom wody nie podnosi górnego pływaka (fajnie gdyby paliła się czerwona dioda:)), wodę przestaje pompować gdy pływak na dole opada.

    Pozdrawiam i oczekuje na odpowiedź :)

    Z poważaniem Łukasz.

    "Generator" określonej ilości wrzątku
  • Pomocny dla użytkowników
    Uwaga ogólna: pompka samochodowa raczej nie nadaje się do wrzątku a poza tym także, do przepompowywania płynów spożywczych (jeżeli chcesz kawę czy herbatę tą metodą zalewać).

    Czujniki poziomu nie mogą reagować z gorącą wodą

    -------------------------------------------------------------------------------

    To tutaj trzeba zacząć od ciągu działań i przemyślenia zabezpieczeń.

    Warunki

    1. Start nie działa gdy woda jest poniżej górnego poziomu

    2. Grzałka nie działa gdy woda jest poniżej górnego poziomu (a także wyłącza się gdyby z jakiegoś powodu wody ubyło.

    3. Grzałka wyłącza się po przekroczeniu temperatury ustawionej <100 stopni (przy różnym ciśnieniu atmosferycznym woda może wrzeć w różnych temperaturach co może spowodować, że w danych warunkach woda nie osiągnie np. 100 stopni.

    4. Dodatkowe zabezpieczenie: czas grzania wody. Jeżeli woda nie osiągnie temperatury roboczej w jakimś tam czasie to następuje wyłączenie grzania i np. włączenie sygnalizacji alarmu.

    5. Zabezpieczenie pompki: limit czasu wypompowania

    6. Obwody zabezpieczające powinny być zrealizowane jak najprościej i z ominięciem np. "procesora" sterującego (jakkolwiek zrealizowanego), na wypadek jego zawieszenia się


    Stan STOP oznacza:

    1. Wyłączenie grzałki
    2. Wyłączenie pompy

    Pomiar oznacza odczytanie temperatury z termometru (lepiej użyć jakiegoś układu specjalizowanego do pomiaru temperatury, bo termistor to trzeba by skalować.


    Działanie układu:

    ; Czekanie na wciśnięcie START

    1. Czy wciśnięto START ?
    2. Jeżeli tak to idź do punktu 4
    3. Idź do punktu 1

    ; Sprawdzenie czy jest woda

    4. Czy jest woda ? (czujnik górny)
    5. Jeżeli tak to pkt 7
    6. Brak wody. Alarm. STOP

    ; Sprawdzenie sprawności grzałki
    ; polega na sprawdzeniu czy w czasie 30 sekund (lub więcej, trzeba dobrać)
    ; nastąpił wzrost temperatury wody o 10 stopni
    ;
    7. Zmierz temperaturę: Temp1=Pomiar
    8. Włącz grzałkę
    9. Odmierz 30 sekund (testowanie grzałki)
    10. Zmierz temperaturę Temp2=Pomiar
    11. Czy Temp2>Temp1+10 ?
    12. Jeżeli tak to punkt 15 (grzałka sprawna, działamy dalej)
    14. Uszkodzenie grzałki. Alarm. STOP

    ; Tu się zaczyna właściwe gotowanie wody

    15. Ustaw czas gotowania CzasG=xxx (xxx - maksymalny czas gotowania)
    16. Zmierz temperaturę: Temp1=Pomiar
    17. Czy Temp1>=Tkońcowe ?
    18. Jeżeli tak to pkt 26 (woda ugotowana, przyst. do wylewania)

    ; Sprawdzenie czy nie przekroczono czasu gotowania

    19. Czy CzasG>0 ?
    20. Jezeli tak to pkt. 22

    21. Przekroczono czas gotowania. Alarm. STOP

    ; Odmierzenie sekundy (tu jest okreslony czas oblotu pętli gotowania, będzie ciut więcej niż sekunda, bo dochodzi czas pomiaru i instrukcji
    sprawdzań).

    22. Odmierz 1 sekundę (opóźnienie)
    22. CzasG:=CzasG-1 (zmniejszenie licznika czasu gotowania)

    ; Sprawdzenie czy nam się coś z wodą w międzyczasie nie stało (wychlapała się, wyciekła, ktoś uszczknął jej zapas ;)

    21. Czy poziom wody LW=#Górny ?
    22. Jeżeli tak to pkt 16 (gotuj dalej)
    23. Zbyt niski poziom wody. Alarm. Stop

    24. Odmierz 15s (niech się chwilę pogotuje)
    25. Wyłącz grzałkę

    ; Wypompowanie wody

    26. Ustaw maksymalny czas pompowania: MaxPomp=xxx sekund
    27. Włącz pompę

    ; Pętla oczekiwania na opróźnienie naczynia grzejnego

    28. Czy wypompowane ? (czujnik dolny)
    29. Jeżeli tak to pkt 35 (koniec pracy)

    30. Odmierz 1 sekundę
    31. MaxPomp:=MaxPomp-1

    ; Sprawdzenie czy nie przekroczono czasu pompowania.

    32. Czy MaxPomp>0 ?
    33. Jeżeli tak to pkt 28

    34. Przekroczono czas pompowania. Alarm. STOP

    ; Koniec pracy

    35. Wyłącz pompę
    36. Idź do punktu 1


    "Generator" określonej ilości wrzątku

    Na upartego można jeszcze dodać kontrolę napięcia w sieci, by układ nie startował jeżeli napięcie jest za niskie (brak szansy na ugotowanie wody) :)
  • Poziom 10  
    Dziękuje za takie zainteresowanie moją skromną osobą:)

    DS18B20 do pomiaru może być?

    Czy dobrze rozumie że w miejsca S1 S3 S3 S5 mają byś tranzystory połączone z uC? Czemu mają służyć D3 C2 R3? - Pomyślałem żeby z jednej strony czujników poziomów i przycisku start przyłożyć napięcie +5V a z 2 strony do pinów uC (po zamknięciu dawały by stan wysoki na konkretny pin) na wyprowadzeniach uC podłączyć tj. narysowałeś na schemacie GRZANIE> POMPA> a na pozostałych wyprowadzeniach diody LED, które by sygnalizowały prace (grzanie, pompowanie, brak wody etc.)

    Jeśli temperatura ma korzystać z układu to w jaki sposób :

    "Obwody zabezpieczające powinny być zrealizowane jak najprościej i z ominięciem np. "procesora" sterującego"?, może po prostu jeśli WODA_G będzie zamknięty odciąć w jakiś bliżej Mi nie znany sposób dopływ prądu do cewki przekaźnika? (z pompką ten problem rozwiąże umieszczając styk, który zamknie obwód z silnikiem kiedy kubek będzie na podstawce)

    Dla kogoś znającego się na rzeczy pewnie pytania idiotyczne ale nie wiem to pytam :)

    Pozdrawiam.
  • Pomocny post
    Pomocny dla użytkowników
    superbzyku napisał:
    Dziękuje za takie zainteresowanie moją skromną osobą:)


    Cytat:
    DS18B20 do pomiaru może być?


    Może, mierzy do 125 stopni czyli ma zapas. Oczywiście będzie on montowany na zewnątrz naczynia i wypadało by porównać jego wskazanie z termometrem zanurzonym w w wodzie by zobaczyć jaka jest różnica wskazań i ewentualnie uwzględnić poprawkę.


    Cytat:
    Czy dobrze rozumie że w miejsca S1 S3 S3 S5 mają byś tranzystory połączone z uC?


    S1 - styk czujnika górnego poziomu wody (zezwala na grzanie wody i ewentualnie odcina zasilanie grzałki gdy brak wody lub jest za niski poziom. ZWARTY gdy poziom wody jest wystarczający.

    S4 - styk czujnika dolnego poziomu wody (włącza pompkę). ZWARTY gdy woda jest powyżej minimalnego poziomu.

    S3 - przycisk START

    S5 - przycisk rozwierny STOP (symuluje brak wody w naczyniu, co procesor interpretuje jako błąd i wyłącza wszystko.
    Oczywiście można go pominąć i wyłączać wszystko wyłącznikiem sieciowym.


    S2,S6 wyłącznik sieciowy (podwójny, tylko nie miałem symbolu).



    Cytat:
    Czemu mają służyć D3 C2 R3? - Pomyślałem żeby z jednej strony czujników poziomów i przycisku start przyłożyć napięcie +5V a z 2 strony do pinów uC (po zamknięciu dawały by stan wysoki na konkretny pin) na wyprowadzeniach uC podłączyć tj. narysowałeś na schemacie


    Ponieważ wybrałem zasilanie z 12V (lepiej rozdzielić zasilanie przekaźnika i reszty układu, by się jakieś cuda nie działy przy przełączaniu przekaźnika), to te elementy sprowadzają poziomy napięć z czujników do poziomów logiki 5V.

    C1,C2 wraz z rezystorami filtrują drgania styków czujników poziomu wody.

    R3 - utrzymuje poziom niski na wejściu procesora gdy przycisk START jest rozwarty. Układ wynika z tego, że czujniki podają napięcie na układ sterowania "od góry" a masa jest podawana przez tranzystory (lub np. układy Darlingtona z ULN2803)

    GRZANIE> POMPA> to są sygnały sterujące z procesora.

    Lampka L1 oczywiście musi być na 230V (np, neonówka z rezystorem) - włączona w tym miejscu pokazuje, że grzałka dostaje zasilanie.

    Cytat:
    a na pozostałych wyprowadzeniach diody LED, które by sygnalizowały prace (grzanie, pompowanie, brak wody etc.)


    To już wedle uznania.


    Cytat:
    Jeśli temperatura ma korzystać z układu to w jaki sposób :

    "Obwody zabezpieczające powinny być zrealizowane jak najprościej i z ominięciem np. "procesora" sterującego"?, może po prostu jeśli WODA_G będzie zamknięty odciąć w jakiś bliżej Mi nie znany sposób dopływ prądu do cewki przekaźnika? (z pompką ten problem rozwiąże umieszczając styk, który zamknie obwód z silnikiem kiedy kubek będzie na podstawce)


    Tu chddzi o to, że w układzie są dwa tory zabezpieczeń: sprzętowy i programowy.

    Sprzętowy polega na tym, że czujnik poziomu wody (górny) podaje zasilanie obwodu przekaźnika grzałki, dopiero wtedy procesor może włączyć ten przekaźnik. Gdyby z jakiegoś powodu ubyło wody, to czujnik poziomu wyłączy grzanie a niski sygnał WODA_G poinformuje procesor, że coś jest nie tak z poziomem wody.

    Czujnik poziomu dolny przerywa obwód zasilania pompy, na wypadek uszkodzenia procesora czy zwarcia w tranzystorze sterującym. żeby się pompa nie uszkodziła pracując na sucho.

    Dodatkowo są zabezpieczenia programowe zawarte w procesorze.

    Można tam jeszcze dodać kontrolę stanu termometru, że jak pokaże więcej niż 100 stopni albo jak temp. jest jakaś dziwna (np. ujemna) to sygnalizowana jest awaria czujnika temperatury.

    Czyli ogólnie full bajer i pełna autodiagnostyka.


    Pozdrawiam również :)
  • Poziom 10  
    No ta ja w najbliższym czasie lecę do elektronicznego po podzespoły i składam prototyp. Mógłbym prosić jeszcze tak mniejwięcej do których pinów atmega8 (ten wybrałem) Można połączyć wejścia a na które wyjścia (+ile zostani Mi wolnych na LED'y sygnalizujące) chciałbym to zaprogramować w C bo nie jest Mi obcy

    Ale nie wiem w jaki sposób odczytać stan z konkretnego pinu i ustawić stany na wyjściu ( + odczyt temp z DS18B20 bo widziałem przykładowe kody ale niestety nie rozumiem :( )

    z angielskim u mnie krucho niestety, reszte myślę że mógłbym napisać samodzielnie

    Pozdrawiam serdecznie
  • Poziom 30  
    Czy to zadanie można zrealizować na układach kombinacyjnych ? Jak to rozpisać w mapę ?
  • Poziom 10  
    Witam ponownie, po długich lekturach stwierdzam że jednak Bascom łatwiejszy a nawet bardzo łatwy :)

    "Generator" określonej ilości wrzątku swoje "dodatki" zaznaczyłem kolorem zielonym i chciałem zapytać czy tak może być oraz czy dobrze mam configi pinów?

    Config Pind.0 = Input ' WODA_D
    Config Pind.1 = Input ' WODA_G
    Config Pind.2 = Input ' start
    Config Pind.3 = Input ' czy kubek jest gotowy
    Config Pind.4 = Input ' przycisk anuluj proces!
    Config Pind.5 = Output ' pompa
    Config Pind.6 = Output ' grzałka
    Config Pinc.5 = Output ' Led - GOTUJE WODE
    Config Pinc.4 = Output ' Led - zalewam kubek
    Config Pinc.3 = Output ' Led - brak wody!
    Config Pinc.2 = Output ' Led - brak kubka!
    Config Pinc.1 = Output ' Led - zakonczono sukcesem!


    jak daje na kompilacje to już mi błędy wywala wszędzie gdzie jest pinc ;/ to sie wole zapytać niż brnąć dalej :) pozdrawiam
  • Pomocny dla użytkowników
    Diody Led są odwrotnie na schemacie i powinny mieć każda rezystor 390Ω szeregowo.
  • Poziom 31  
    Pamiętaj o określeniu typu mikrokontrolera i wartości częstotliwości taktowania np. w zakładce "Chip settings" lub poprzez dyrektywy $regfile i $crystal. Nie każdy mikrokontroler AVR ma port C ...
    Warto też użyć poleceń do "odkłócania" przycisków sterujących (podwójny warunek z opóźnieniem ok. 20ms lub polecenie DEBOUNCE).
  • Poziom 10  
    Jestem już pod koniec pisania oprogramowania atmelka :)

    Mógł by ktoś rzucić okiem na finalny schemat czy coś przeoczyłem

    "Generator" określonej ilości wrzątku


    Jakie konkretnie powinny być T1 i T2?
    Dobrze podłączyłem DS1820?
    Czy te rezystory powinny być przed LEDami czy po?

    Pozdrawiam
  • Pomocny dla użytkowników
    Diody tłumiącej przepięcia z cewki przekaźnika
    połączenia przy R1 i R2 są dziwne

    Przekaźnik raczej nie powinien zwierać Vcc z GND, bo może to spowodować "lekkie" zakłócenia w pracy układu.
  • Poziom 10  
    To Vcc i GND wstawiłem bo nie wiedziałem co tam narysować :) Generalnie chodzi o to, że będzie po prostu zamykać obwód grzałki który pominąłem.

    "Generator" określonej ilości wrzątku

    Teraz połączenia przy R1 i R2 są prawidłowe?

    W jaki sposób mogę się dowiedzieć jaki konkretnie ma być T1 i T2? / Jak to wyliczyć czy co? :|

    Dodano po 31 [minuty]:

    Dlaczego Portel pokazuje Mi błąd przy AREF (przy uC)?

    #1 Warning Unconnected Input Pin On Net NetU1_21
    Schemat1.Sch(U1-21 @1200,670)

    #3 Error Floating Input Pins On Net NetU1_21
    Pin Schemat1.Sch(U1-21 @1200,670)