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.

Atmega32 - Komunikacja RS232 Atmega a projektor - Bascom

Mc'Cart 04 Wrz 2013 13:41 2241 4
  • #1 04 Wrz 2013 13:41
    Mc'Cart
    Poziom 12  

    Witam wszystkich,

    Projektuje układ opuszczania i podnoszenia windy do projektora jego funkcjonowanie widać w załączonym filmie.



    Postanowiłem dopisać zabezpieczenie, przed zamknięciem półki w momencie kiedy projektor jest podłączony.

    Pracą steruje Atmega 32 a projektor to Benqu W1070.

    Projektor ma wyjście RS232 i podaje dostawca listę dostępnych komend.
    Chciałbym za pomocą mojego atmega sterować włączaniem i wyłączaniem projektora tylko nie wiem za bardzo jak.

    Komenda o statudie pracy projektora to: <CR>*pow=?#<CR>

    Jak się odwołać do tego? Czy wystarczy input "<CR>*pow=?#<CR>" i dostanę zmienną ?

    Czy jak będę chciał wysłać komendę o właczeniu to będzie: "<CR>*pow=on#<CR>"

    Nie wiem jak się za to zabrać i od czego się zabrać.

    Dzięki za podpowiedzi...

    Pozdrawiam
    Mc'Cart

    0 4
  • #3 09 Sty 2014 20:15
    Mc'Cart
    Poziom 12  

    Może uda mi się rozruszać dyskusję.
    Udało mi się już uruchomić projektor przez RS, jak i go wyłączyć. Natomiast mam problemy z odebraniem danych o jego stanie.

    Poniżej pokazuję moją procedurę odbioru danych:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0
  • #4 09 Sty 2014 22:49
    Ture11
    Poziom 34  

    Cóż, czegoś takiego nigdy nie projekowałem, ale komenda print nadaje na końcu CR+LF z tego co pamiętam, i jeśli chcesz, by nadawane były tylko twoje znaki (chr(13)), to na końcu printa musisz dać średnik ";", który blokuje wysyłanie CR+LF

    Dodano po 1 [minuty]:

    Jeśli używasz wysyłania, a po oczekiwaniu 100mS dopiero sprawdzasz, czy coś siedzi, to rozumiem, że uart jest buforowany?

    0
  • #5 14 Lut 2014 08:10
    Mc'Cart
    Poziom 12  

    Sprawa rozwiązana:
    Poniższe komendy włączają i wyłączają projektor:

    Print Chr(13) ; "*pow=on#" ; Chr(13)
    Print Chr(13) ; "*pow=off#" ; Chr(13)

    Natomiast:

    Print Chr(13) ; "*pow=?#" ; Chr(13)

    Zwraca stan projektora, tylko należy zwrócić uwagę, mój projektor również dodaje echo.
    I na tym się przejechałem. Bufor na input miałem za mały i odbierałem tylko komendę którą nadałem. Po zwiększeniu bufora do 30 odbieram wpierw echo a potem odpowiedź od projektora:

    *pow=?#" tutaj jakieś 3 krzaki a po tym "*POW=ON#"

    Wystarczy wyciąć status i wszystko jasne.

    Temat uważam za zamknięty.

    0