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

bascom ATmega32 - Sterownik domowy/pokojowy

piterek-23 19 Lis 2014 00:17 2292 6
  • #1 19 Lis 2014 00:17
    piterek-23
    Poziom 31  

    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:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    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ę.

    0 6
  • #3 19 Lis 2014 01:07
    elektron000
    Poziom 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

    0
  • #4 19 Lis 2014 01:12
    treker
    Poziom 25  

    elektron000 napisał:
    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.

    0
  • #5 19 Lis 2014 07:39
    piterek-23
    Poziom 31  

    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ć.

    0
  • Pomocny post
    #6 27 Lis 2014 22:12
    elektron000
    Poziom 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

    ???

    0
  • #7 29 Lis 2014 20:44
    piterek-23
    Poziom 31  

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

    SUB:
    .
    .
    .
    .
    .End SUB
    RETURN

    ???

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    elektron000 napisał:
    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

    0