logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Bascom]Sterowanie piecem grzewczym.Czasowka - 2 przekazniki

wojno 05 Paź 2005 20:52 12042 25
  • #1 1875779
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    witam chcialbym zrobic czasowke na 2 przekazniki zeby sie wlaczalo czo chwile na okreslony czas, ale chcialbym zeby ten czas mozna bylo sobie zmieniac z klawisza np na 10 sekund

    kod dziala pieknie podaje na 3 sekundy stan wyskoki potem czeka i znowu podaje stan niski na 3 sekundy i tak caly czas, ale teraz chcialbym zmienic czas z klawisza nie wiem jak zmodernizowac ten kod porsze po pomoc

    ------------------------------------
    out_1 Alias P1.5

    Do

    Set out_1
    Wait 3
    Reset out_1
    Wait 3
    Loop


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

    pozdrawiam i dziekuje
    Moderowany przez Light-I:

    3. W temacie wiadomości należy dokładnie zawrzeć całą istotę wysyłanych informacji. Gwarantuje to łatwe wyszukiwanie i czytelne przeglądanie przez osoby zainteresowane. Nie akceptujemy tematów w stylu "pomoc", "problem"
    Regulamin www.elektroda.pl znajduje się Tutaj.Bardzo proszę o logiczne i zgodne z regulaminem tytułowanie tematu. Nadużywasz słowa 'pomoc' - nie jesteś ważniejszym od innych użytkownikiem forum, każdy, kto tu zakłada nowy temat, ma z czymś istotny problem... A "pilne", "ważne", "pomoc", "Pomocy!!!", "Help!!!" działa raczej odwrotnie od twoich zamiarów - odstrasza bardziej zaawansowanych użytkowników od czytania... . Wyróżnianie tematu jest możliwe przez odpowiednie spożytkowanie punktów na tym forum. Treść tematu zmieniono na bardziej adekwatną.

  • #2 1876095
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    po pierwsze należy zdefiniować zmienne.
    następnie należy wpisać do zmiennej odpowiednia wartość
    potem należe odczekać czas zawarty w zmiennej
    wtedy musisz zrobić instrukcję warunkową krtóra będzie zmieniać zawarość zmiennej
    np
    
    config pinb.0=output
    out alias portb.0
    in1 alias pinb.6
    in2 alias pinb.7
    
    dim a as byte
    
    do
    wait a
    toggle out
    if in1=1 then incr a
    if in2=1 then decr a
    loop
    
    


    na pinb.0 podłączasz diode lub odbiornik
    a na pin.7 i 6 podłączasz swicz do plusa i rezystor(np 10k) do masy
  • #3 1880477
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    Wiec tak teraz opisze do czego jest mi to potrzebne moze wspulnie cos wymyslimy, wiec tak razem z tata skastuowalismy piec od poczatku ,ktory ma palic cala zimy bez obslugowo, dlaczego a no wlasnie dlatego ze mieszkamy w starym budownictwie i nie ma ogrzewania. A wiadomo czlowiek leniwy jest wiec z tad ten pomysl.
    Załączniki:
    • [Bascom]Sterowanie piecem grzewczym.Czasowka - 2 przekazniki piec.jpg (93.21 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #4 1880482
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    Nastepne zdjecie pokazuje podajnik wegla do pieca bedzie sie wlaczalo co jakis czas zeby wegiel dostarczyc do paleniska, sterowany MAM NADZIEJE MIKROPROCESOREM ATMEL AT89C51.
    Załączniki:
    • [Bascom]Sterowanie piecem grzewczym.Czasowka - 2 przekazniki podajnik.jpg (91.6 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #5 1880493
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    podajnik raz jeszcze
    Załączniki:
    • [Bascom]Sterowanie piecem grzewczym.Czasowka - 2 przekazniki podajnik3.jpg (71.65 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Bascom]Sterowanie piecem grzewczym.Czasowka - 2 przekazniki podajnik2.jpg (79.31 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #6 1880505
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    Palenisko na ktorym pali sie wegiel podawany przez podajnik od spodu.
    Załączniki:
    • [Bascom]Sterowanie piecem grzewczym.Czasowka - 2 przekazniki palenisko2.jpg (78.02 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Bascom]Sterowanie piecem grzewczym.Czasowka - 2 przekazniki palenisko.jpg (81.59 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #7 1880510
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    Kolejna zecza jest nawiew powietrza rowniez bedzie sterowany z mikroprocesora.
    Załączniki:
    • [Bascom]Sterowanie piecem grzewczym.Czasowka - 2 przekazniki nawiewpowietrza.jpg (74.88 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #8 1880558
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    Teraz sterowanie uklad ATMEL AT89C51
    ----------------------------------------------------
    4 mikrostyki podlaczone do portow:

    P2.4, P2.5, P2.6, P2.7

    -----------------------------------------------------
    wyswietlacz 2x16

    Db7 = P1.5 , Db6 = P1.4 , Db5 = P1.3 , Db4 = P1.2 , E = P1.1 , Rs = P1.0

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

    Progra pisze w bascom 8051
    Załączniki:
    • [Bascom]Sterowanie piecem grzewczym.Czasowka - 2 przekazniki sterowanie 3.jpg (74.69 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Bascom]Sterowanie piecem grzewczym.Czasowka - 2 przekazniki sterowanie 2.jpg (60.24 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • [Bascom]Sterowanie piecem grzewczym.Czasowka - 2 przekazniki sterowanie.jpg (73.19 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #9 1880564
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    wiec jesli macie jakies pomysly to piszcie wspulnie moze byc fajny piec :) pozdrawiam
  • #10 1881917
    msafuta
    Poziom 12  
    Posty: 6
    Pomógł: 1
    Moim zdaniem system powinien funkcjonować następująco:
    1.Wyświetlać na LCD aktualną temperaturę wody w kotle CO.
    2.Sterować silnikiem podajnika i wentylatora przy spadku temperatury o np. 2°C od temperatury zadanej i zapamiętanej w pamięci nieulotnej EEPROM.
    3.Wentylator powinien być włączany do pracy ciągłej aż do momentu osiągnięcia zadanej temperatury, natomiast podajnik paliwa nalęży załączać okresowo.
    4.Czasy pracy i przerwy podajnika oraz wartość temperatury można edytować za pomocą dwóch przycisków "góra", "dół" i LCD, a następnie zapamiętywać w EEPROM.
    5.Pamięć EEPROM jest konieczna ze względu na chwilowe zaniki napięcia zasilania. Przy restarcie procesor pobiera te wartości z pamięci.
    6.Wyłączenie awaryjne podajnika i wentylatora (wygaszenie pieca) przy przekroczeniu temperatury wody powyżej niebezpiecznej np. 90°C lub cofnięcia się płomienia do podajnika paliwa (drugi czujnik temperatury tzw. strażak).
    7.Wyłączenie pieca jeśli temperatura wody spada mimo że pracuje podajnik i wentylator (np. brak paliwa).
    8.Tryb pracy automatycznej i ręcznej. Praca ręczna przydatna będzie przy rozpalaniu pieca.
    9.Załączenie podajnika i wentylatora po określonym czasie (np. 10...20 min) na chwilę nawet wtedy gdy temperatura wody nie spada, celem nie dopuszczenia do zagaszenia paleniska w piecu.
    10.Wyświetlać na LCD oprócz aktualnej temperatury w czasie normalnej pracy pieca, fakt awaryjnego wyłączenia pieca, tryb pracy automatyczna lub ręczna, pracę podajnika, pracę wentylatora.....
    11. Co z pompą wody?
    12.Reasumując system należało by wyposażyć jeszcze w co najmniej dwa czujniki temperatury (np.DS1820) i pamięć EEPROM (np.24C01) no i odpowedni do tego program.
    Mogę pomóc. msafuta(_at_)poczta.onet.pl
    Pozdrowienia.
  • #11 1932094
    dzik84
    Poziom 17  
    Posty: 444
    Pomógł: 30
    Ocena: 17
    A ja mam do Ciebie takie pytanie
    Jak zrobiłeś te napisy na panelu i skąd masz takie przyciski ?
  • #12 1934755
    Bonmis
    Poziom 21  
    Posty: 414
    Pomógł: 36
    Ocena: 18
    Panel wygląda mi na taki jaki był w zewnętrznym modemie analogowym Motorola 3265 i podobnych :D

    Bonmis
  • #13 1947759
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    dokladnie motorola 3265 kolega sie nie mylil pozdrawiam
  • #14 1957722
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    Witam jak zrobic meni w bascomie tzn chcialbym zrobic tak ze po nacisnieciu klawisza wskoczy drugie meni na wyswietlaczu lcd i wyswietli jakis tekst po nacisnieciu klawisza wruci do poczatku.
  • #15 1958523
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    wojno napisał:
    Witam jak zrobic meni w bascomie tzn chcialbym zrobic tak ze po nacisnieciu klawisza wskoczy drugie meni na wyswietlaczu lcd i wyswietli jakis tekst po nacisnieciu klawisza wruci do poczatku.

    Czy to Cię zadowoli :?: :D
    
    ...
    Dim Nr_menu As Byte , Klucz As Bit
    Nr_menu = 0
    Do
       Cls
       Lcd Lookupstr(nr_menu , D_menu)
       On Nr_menu Gosub Menu1 , Menu2 , Menu3       'a tak możesz dla każdego menu ,
                                                     ' wywołać procedurkę
       Set Klucz
       While Klucz = 1
          Debounce Pinb.0 , 0 , Zmiana , Sub
       Wend
    Loop
    Zmiana:
       Incr Nr_menu
       If Nr_menu = 3 Then Nr_menu = 0
       Reset Klucz
    Return
    Menu1:
    Return
    Menu2:
    Return
    Menu3:
    Return
    
    D_menu:
    Data "Pierwsze menu" , "Drugie menu" , "Trzecie menu"
    

    Piotrek
  • #16 1958870
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    Dziekuje jeszcze takie pytanko czy to co napisales jest pod bascom8051 bo takiego programu uzywam pozdrawiam i dziekuje za odzew jak cos napisze to wkleje
  • #17 1958974
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    wojno napisał:
    Dziekuje jeszcze takie pytanko czy to co napisales jest pod bascom8051 bo takiego programu uzywam pozdrawiam i dziekuje za odzew jak cos napisze to wkleje

    Raczej pod BascomAVR , ale to żaden problem ;)
    
    '...
    Dim Nr_menu As Byte , Klucz As Bit
    Dim Mnu As String * 15                     'to dodać 
    Nr_menu = 0
    Do
       Cls
       Mnu= Lookupstr(nr_menu , D_menu) 'tu zmodyfikować
       Lcd Mnu                                'to również ...
    '...
          Debounce P2.0 , 0 , Zmiana , Sub  '... i bezapelacyjnie TU
       Wend
    '... reszta bez zmian ;)
    


    Piotrek
  • #18 2078102
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    Witam ponownie wrescie po dluzszej przerwie zaczynam modernizowac piec. Obecnie dziala na czasowkach i ciepelko jest, czas na sterowanie elektroniczne.

    Zmodyfikowalem sterownik i zrobilem wstepne meni ktora mialo czytac temperature z 2 czujnikow ds1820 wszysko dziala dobrze pod warunkiem ze jest podpiety jeden czujnik jak wepne drugi i zmieniam w meni to na temperaturze t1 i t2 sa takie same temperatury.

    Prawdopodobnie czyta tylko z jednego nie potrafie znalesc bledu moze ktos zerknie i wylapie szybciej niz ja.

    program do sterowania 2 czujnikami ds

    ///////////////////////////////////////////////////////////////////////////////////

    $large
    Config Lcdpin = Pin , Db7 = P1.5 , Db6 = P1.4 , Db5 = P1.3 , Db4 = P1.2 , E = P1.1 , Rs = P1.0

    Config Lcd = 16 * 2



    Deflcdchar 0 , 238 , 234 , 238 , 224 , 224 , 224 , 224 , 224
    Dim Is_device As Bit
    Dim Number(8) As Byte

    Dim T(2) As Byte
    Dim X As Byte
    Dim R As Byte
    Dim Temp As Single
    Dim Str_temp As String * 5




    Declare Sub Read_numbers
    Declare Sub Pomiar_temp
    Declare Sub Match_rom
    Declare Sub Wysw_temp
    Declare Sub 1w_reset


    Declare Sub Menu
    Declare Sub Podmenu
    Declare Sub T1
    Declare Sub T2
    Declare Sub T3

    S4 Alias P2.7
    S3 Alias P2.6
    S1 Alias P2.5
    S2 Alias P2.4

    Const Kom_0 = "STEROWANIE PIECA"
    Const Kom_1 = "WERSJA - V001"
    Const Kom_2 = "WYBIERZ MENI"
    Const Kom_3 = "| 1 | 2 | 3 | 4|"

    Const R_rom = &H33
    Const Con_t = &H44
    Const M_rom = &H55
    Const R_src = &HBE
    Const Temp_0 = "TEMP. PIECA C.O."
    Const Minus = "-"
    Const Celcj = "C"
    Const Err_1 = "Error: "
    Const Err_2 = "No Device !"


    Cursor Off




    Cls
    Home
    Lcd Kom_0
    Lowerline
    Lcd Kom_1
    Wait 2

    Cls

    Call Menu


    Sub Menu
    Cls
    Home
    Lcd Kom_2
    Lowerline
    Lcd Kom_3

    Do
    Set S1
    If S1 = 0 Then
    Call Podmenu
    End If

    Loop
    End Sub



    Sub Podmenu
    Cls
    Wait 1

    Home
    Lcd "= TEMPERATURY ="

    Lowerline
    Lcd " |T1|T2|T3|"


    Do
    Set S1
    If S1 = 0 Then
    Call T1
    End If

    Set S2
    If S2 = 0 Then
    Call T2
    End If

    Set S3
    If S3 = 0 Then
    Call T3
    End If

    Set S4
    If S4 = 0 Then
    Cls
    Call Menu
    End If


    Loop

    End Sub


    Sub T1
    Cls
    Is_device = 1
    Home
    Lcd "TEMPERATURA |T1|"
    Lowerline
    Config 1wire = P2.3

    'Cls"

    'Cursor Off
    'Lcd Kom_1
    'Wait 1
    'Cls
    'Cursor Off
    'Lcd Kom_2


    Do
    1w_reset
    If Err = 1 Then
    Is_device = 0
    Cls
    Lcd Err_1 ; Err_2
    Waitms 250
    Else
    Call Read_numbers
    Call Pomiar_temp
    Call Wysw_temp
    Set S4
    If S4 = 0 Then
    Call Menu
    End If
    End If

    Loop
    End Sub


    Sub T2
    Cls
    Is_device = 1
    Home
    Lcd "TEMPERATURA |T2|"
    Lowerline

    Config 1wire = P2.2

    End Sub


    Sub T3
    Cls
    Home
    Lcd "TEMPERATURA |T3|"
    Lowerline

    Do
    1w_reset
    If Err = 1 Then
    Is_device = 0
    Cls
    Lcd Err_1 ; Err_2
    Waitms 250
    Else
    Call Read_numbers
    Call Pomiar_temp
    Call Wysw_temp
    Set S4
    If S4 = 0 Then
    Call Menu
    End If
    End If

    Loop

    End Sub






    Sub Read_numbers
    If Is_device = 0 Then
    Cls
    Lcd Temp_0
    Is_device = 1
    End If
    1wwrite R_rom
    For R = 1 To 8
    Number(r) = 1wread()
    Next R
    End Sub


    Sub Pomiar_temp
    1w_reset
    Call Match_rom
    1wwrite Con_t
    Waitms 250
    Waitms 250
    1w_reset
    Call Match_rom
    1wwrite R_src
    T(1) = 1wread()
    T(2) = 1wread()
    1w_reset
    End Sub


    Sub Wysw_temp
    Locate 2 , 2
    If T(2) = 0 Then
    Temp = T(1) / 2
    Else
    X = 256 - T(1)
    Temp = X / 2
    Lcd Minus
    End If
    Str_temp = Fusing(temp , ###.&)
    Lcd Str_temp ; Chr(0) ; Celcj ; " "
    End Sub


    Sub 1w_reset
    1wreset
    End Sub

    Sub Match_rom
    1wwrite M_rom
    For R = 1 To 8
    1wwrite Number(r)
    If Err = 1 Then
    Is_device = 0
    Cls
    Lcd Err_1 ; R
    Wait 1
    End If
    Next R
    End Sub


    //////////////////////////////////////////////////////////////////

    przepraszam ze wszystko ale fragmenty nie oddadza wszystkiego pozdrawiam i dziekuje
  • #19 2078433
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    I od razu do rzeczy:
    a)jaka wersja bascoma ?
    b)po co Ci numery seryjne , jak masz DS-y na różnych pinach ?
    c)po co marnujesz pamięć na FUSING , jak temperaturę obliczasz bez dziesiętnych ?
    d)wielokrotny Config 1wire=xx.x nie przejdzie :(
    e)... i jeszce parę drobnostek ;)

    Piotrek
  • #20 2078506
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    dzieki za odzew

    a)wiec tak bascom to 8051 wersja 2.0.11.0
    b)chcialbym zeby to dzialalo wiec jesli nie trzeba to zapomnijmy o nr.
    c)co do FUSING masz racje zmienie przy nastepnym kompilowaniem
    d) co do e) to probowalem wszystkiego zeby tylko zadzialalo


    pozdrwiam
    i jeszcze raz dziekuje za odzew
  • #21 2099331
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    Witam nie wiem jak zrobic zeby czytal z dwoch roznych czujnikow podloczanych do innych pinow moze ktos ma jakies dobre rady pozdrawiam
  • #22 2101540
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    wojno napisał:
    Witam nie wiem jak zrobic zeby czytal z dwoch roznych czujnikow podloczanych do innych pinow moze ktos ma jakies dobre rady pozdrawiam

    Zrób tak , jak to opisano w pliku pomocy do Bascoma i/lub rzuć okiem na przykładowy plik 1wire.bas

    Piotrek
  • #23 2149982
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    Witam mam takie zapytanie mianowice zakladam ze uklad jest zrobiony i podlaczone jest do niego 3 czujniki ds1820 moje pytanie jest takie,
    czy uklad bedzie mierzyl temperature w tym samym czasie z 3 czujnikow czy tylko ta temperature z ktorego zainicjujemy czujnik. Dlaczego pytam w przyszlosci chce zrobic aby wszystkie temperatury z 3 czujnikow byly wysylane do komputera.

    pozdrawaim i prosze opinie w tej sprawie

    Łukasz
  • #24 2150653
    kaczepa
    Poziom 20  
    Posty: 238
    Pomógł: 32
    Ocena: 5
    Dla twoich czujnikow DS1820 czas pomiaru (czyli odczytu temperatury od momentu zainicjowania konversji) wynosi ok 200 ms , czyli mozesz sobie zalozyc ze PC przesle do urzadzenia zadanie wyslania danych co ok 1 sek i powinno byc ok.Mozna by pomyslec tez o nie wysylaniu danych do PC przed ukonczeniem konversji we wszystkich 3 czujnikach
    (co oznacza ze nie ma wszystkich 3 najnowszych temperatur).
    Trzeba tez na czas trwania konversji zablokowac transmisje szeregowa zeby przerwanie nie wystapilo podczas conversji temperatury w czujnikach.
  • #25 2152040
    wojno
    Poziom 12  
    Posty: 104
    Ocena: 3
    Dziekuje gdy tylko pokonam problem z podlaczeniem 2 czujnkikow do jednej magistral lub 2 czujnikow do roznych portow wtedy sproboje wyniki pomiarow wyslac do komputera

    pozdrawaim

    Łukasz
  • #26 3215380
    piotrek_15_89
    Poziom 11  
    Posty: 6
    Ocena: 2
    Witam
    ja mam piec z gotowym podajnikiem i procesorem. mieszkam 85 km od domku w którym jeest owy piec i chciałbym sterować nim przez internet tzn. chciałbym postawić obok pieca komputer z dostępem do internetu który cały czas bedzie na chodzie, połączyć piec z kumputerem i przez internet wysyłać polecenia najpierw do komputera a potem do pieca i otrzymywać informacje od pieca np. o temperaturze. Czy takie coś jest możliwe?? Nie znam się na programowaniu. Niewiem też jak podłączyć piec z komputerem oraz jak przesyłać dane. Proszę o pomoc

Podsumowanie tematu

✨ Dyskusja dotyczy sterowania piecem grzewczym za pomocą mikroprocesora Atmel AT89C51 i programowania w Bascom 8051. Głównym celem jest stworzenie czasówki sterującej dwoma przekaźnikami, z możliwością regulacji czasu załączenia za pomocą przycisków. Użytkownik opisuje działanie prostego kodu w Bascom, który załącza i wyłącza przekaźnik co 3 sekundy, ale potrzebuje rozszerzenia o zmianę czasu z klawisza. W odpowiedziach zaproponowano użycie zmiennych do przechowywania czasu, instrukcji warunkowych do zmiany wartości oraz podłączenie przycisków do portów mikrokontrolera. Przedstawiono także koncepcję rozbudowanego systemu sterowania piecem z wyświetlaczem LCD 2x16, obsługą czujników temperatury DS1820, menu na LCD oraz zapisem ustawień w pamięci EEPROM dla zachowania parametrów po zaniku zasilania. Poruszono kwestie odczytu temperatury z kilku czujników DS1820, synchronizacji pomiarów i transmisji danych do komputera. Wspomniano o wykorzystaniu przycisków do nawigacji w menu LCD oraz o problemach z implementacją obsługi wielu czujników na różnych pinach. W końcowej części pojawiło się pytanie o możliwość zdalnego sterowania piecem przez internet za pomocą komputera podłączonego do pieca, z przesyłaniem poleceń i odbiorem danych o temperaturze. Dyskusja zawiera fragmenty kodu Bascom oraz wskazówki dotyczące konfiguracji portów, obsługi przycisków i wyświetlacza LCD.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA