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.

bascom ATmega32 - Sterownik domowy/pokojowy

piterek-23 19 Nov 2014 00:17 2790 6
  • #1
    piterek-23
    Level 33  
    Panowie, Panie potrzebuję pomocy bo siedzę i siedzę i nie mogę sobie dać rady z kodem BASCOM. Jestem początkujący, a raczej raczkujący w AVR, programowaniu itd. :(

    Próbuję zbudować sterownik do pokoju który ma wykonywać:
    -sterowanie światłem (8x)
    -sterowanie piecem/kotłem gazowym (temperatura noc i dzień-dwie różne temperatury)
    -każdy przycisk ma dwie funkcje (krótkie i długie naciśnięcie)

    Chciałbym sterować tym poprzez:
    -przyciski (8x)
    -pilot rc5
    -RS485

    Mój sterownik składa się z:
    -ATmega32
    -kwarce: 11.0592 i zegarkowy
    -TSOP1736
    -MAX485
    -LCD 4x20
    -DS1307
    -DS18B20
    -ULN2803
    -buzzer
    -przekaźniki (9x)
    -przyciski (narazie micro switch, a docelowo dotykowe)

    LCD ma wyświetlać:
    -godzinę
    -datę
    -dzień tygodnia
    -temperaturę
    -stan pieca (włączony/wyłączony)
    -czy piec grzeje czy nie

    Ustawienia zegara chciałbym ustawiać poprzez pilota, ale nie wiem jak zrobić jakieś menu ustawień itp.



    Może pokarzę swój kod:
    Code: basic4gl
    Log in, to see the code


    Mój sterownik prawie działa, prawie bo:
    -pierwszy znak na wyświetlaczu mi przygasa/mruga
    -nie wiem jak zrealizować odczyt pilota rc5.
    -temperatura co jakiś czas zmienia się na (0, 355, 85, -25 stopni) zmieniałem już DS18B20 na inny
    -nie wiem jak zrealizować menu ustawień zegara poprzez pilota.

    Proszę o pomoc. Z góry bardzo dziękuję.
  • #3
    elektron000
    Level 11  
    Witam,

    BASCOM swego czasu był bardzo dobrze opisany w EdW (Elektronika dla Wszystkich)
    Na płytach CD były kolejne odcinki szczegółowych opisów kolejnych tematów z 80C2051.
    Bardzo dobre instrukcje i ćwiczenia z przykładami. Obsługa Timerów, LCD, RS232, I2C, RC5, ............itd

    Potem była chyba "przesiadka" na AVR-y, ale jak mnie pamięć nie myli - to radzę zacząć od tamtych "kursów" z 80C2051 a potem będzie łatwiej opanować AVR-y

    Nawet chyba mam to wszystko w *.pdf -ach. Mogę to podesłać,
    ale jeśli chodzi Ci o gotowy program - z braku czasu - niewykonalne.

    Jak się nie mylę - na stronie EdW oraz na stronie EP (Elektronika Praktyczna) też są chyba dostępne te pliki

    Mam w tej chwili np. plik o obsłudze magistrali I2C - ale jak tu się "podpina PDF-y" - jeszcze nie umiem.

    Pozdrawiam
    Wiesław
  • #4
    treker
    Level 25  
    elektron000 wrote:
    jak mnie pamięć nie myli - to radzę zacząć od tamtych "kursów" z 80C2051 a potem będzie łatwiej opanować AVR-y


    Tylko po co zaczynać o starych procesorów i od powoli wymierającego języka? Bascom od zawsze miał "swoje wady", teraz jest wypierany przez Arduino. Znajdziesz wiele aktualnych kursów w sieci.
  • #5
    piterek-23
    Level 33  
    Pomału zbieram kasę na książkę Kolegi Kardaś i chcę zacząć uczyć się języka C.

    Teraz bardziej mi chodzi o pomoc z moim kodem jak go poprawić, aby było lepiej, dobrze.
    Teraz jak dołożę obsługę rc5-getrc5-to wszystko mi przestaje działać. Jak wrzucę program tylko do obsługi pilota na uC, aby wyświetlał adres i komendę na LCD to wszystko jest OK.
    Mój kod zrobił się już dość duży i moje umiejętności są zbyt małe, aby nad nim zapanować.
  • Helpful post
    #6
    elektron000
    Level 11  
    ..."Tylko po co zaczynać o starych procesorów i od powoli wymierającego języka?"....

    A czy ktoś o to pyta?

    Jeśli chodzi o pomoc - to trudna sprawa.
    Piszesz "Mój kod zrobił się już dość duży i moje umiejętności są zbyt małe, aby nad nim zapanować"

    I chyba tu jest problem,
    zacznij pisać "od początku", zacznij od obsługi "pojedynczych składników".

    Zapisuj kolejno każdy rozwiązany "etap" jako kolejny plik (wystarczy w nazwie "Numer kolejny" i zmiana tego numeru po każdej udanej "sekwencji".) W ten sposób jest łatwiej zapanować nad pojedynczymi blokami programu, a potem skupić się nad łączeniem ich w program główny wykorzystując "podprogramy", "przerwania" ......

    Uważam, że taka metoda jest dobra nie tylko dla Bascom-a czy innego języka, ale również tak "na co dzień"

    "Pomoc" w takim programie jest raczej równoznaczna z napisaniem go od początku. A to jest masa pracy prób i testów, potem poprawki, próby, testy, poprawki,próby ........

    Myślę, że gdyby do pisania takiego programu usiadło dziesięciu programistów, każdy napisałby inaczej swój kod - a wszystkie ich sterowniki mogłyby pracować identycznie.

    Moja rada - "Spróbuj od nowa, spróbuj jeszcze (nie)raz, ........"

    Powodzenia.

    Dodano po 18 [minuty]:

    Sorry, ale czy w AVR Bascom to już są niepotrzebne w komendach "zwroty" typu

    SUB:
    .
    .
    .
    .
    .End SUB
    RETURN

    ???
  • #7
    piterek-23
    Level 33  
    elektron000 wrote:
    Sorry, ale czy w AVR Bascom to już są niepotrzebne w komendach "zwroty" typu

    SUB:
    .
    .
    .
    .
    .End SUB
    RETURN

    ???

    Code: basic4gl
    Log in, to see the code

    elektron000 wrote:
    Moja rada - "Spróbuj od nowa, spróbuj jeszcze (nie)raz, ........"

    To jest dobra rada ;)
    Mój program już działa, robi wszystko co sobie założyłem. Ba! nawet więcej niż na początku chciałem ;)
    bascom ATmega32 - Sterownik domowy/pokojowy