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

Atmega32 - Komunikacja RS232 Atmega a projektor - Bascom

Mc'Cart 04 Wrz 2013 13:41 2781 4
REKLAMA
  • #1 12701061
    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
  • REKLAMA
  • #2 12967403
    Mc'Cart
    Poziom 12  
    Nikt nie zna odpowiedzi na zapytanie ?
  • REKLAMA
  • #3 13157942
    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: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #4 13158931
    Ture11
    Poziom 39  
    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?
  • #5 13299777
    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.
REKLAMA