REKLAMA

remote_control.zip

8 kanałowe zdalne sterowanie PIC16F684/PIC16F628A - problem z czasem działania

Witam Zbudowałem zdalne sterowanie w oparciu o nadajnik na PIC16F684-I/P i odbiornik PIC16F628A-I/P ze strony http://jap.hu/electronic/codec.html i nie do końca jest dobrze. Moja konfiguracja wygląda jak poniżej... oczywiście symulacja na stronie działa jak powinna, klikając na dany przycisk CH1, itd. stany zdekodowane zachowują się poprawnie. http://saico.republika.pl/remote/configure.jpg Wybrałem system 8 kanałowy z podziałem na 4 kanały chwilowe i 4 zatrzask. Problem w tym, że czy to wciskam kanał "chwilowy" na pilocie, czy "zatrzask" pomimo ciągłego nadawania z pilota wiązki IR, odbiornik wykonuje rozkaz raptem przez około 3 sekundy, wtedy kiedy świeci dioda "valid LED" (czerwona) w odbiorniku oznaczająca odebranie kodu. To powoduje, że w trybie chwilowym zamiast występowania stanu H na wyjściu danego kanału przez czas wciśniętego klawisza aż do czasu jego zwolnienia, następuje zmiana na stan L już po około 3 sekundach od wysłania kodu. Tak samo dzieje się w trybie zatrzask z tym, że tu jest o tyle lepiej, że stan H pozostaje "zapamiętany" do czasu ponownego wciśnięcia klawisza, który przywraca stan L. Tak czy inaczej w obu przypadkach źle to funkcjonuje. Autor w międzyczasie poprawił zaświecanie diody "valid LED" bo niekiedy zaświecała co drugi raz na niektórych kanałach. Na moje mejle wysłane przed tą poprawką stanowczo twierdził, że nie miał takich sygnałów i kod a zarazem pilot i odbiornik działają tak jak powinny, sam zaś zbudował wersję 4 kanałową ON/OFF na ośmiu przyciskach w SMD jak na wideo, które umieścił na witrynie, także całkiem możliwe, że nie zweryfikował działania wersji z podziałem. Nie wydaje mi się też, żeby tu była kwestia programowania samego PICa, czy przeprowadzenia kompilacji plików ASM do HEX, bo ta jego poprawka dała rezultaty. Stąd moje pytanie, kto by się podjął poprawek w kodzie źródłowym w odbiorniku i nadajniku? Są one konieczne, bo muszę sterować potencjometr z silnikiem a w obecnej chwili jest to niemożliwe - filmy. Prawdopodobnie problem tkwi w kodzie odbiornika, podejrzewam, że w funkcji LOOP (zapętlania) lub jej braku, stąd "znikanie" dekodowania po odebraniu sygnału, który nadal jest wysyłany. Niestety nie znam się na pisaniu programów. decoder - http://saico.republika.pl/remote/s1050346.avi (10,4MB) encoder - http://saico.republika.pl/remote/s1050351.avi (5,9MB) Główny kod odbiornika mieści się w pliku "dec-043.asm" a nadajnika "enc-043.asm". Wszystkie potrzebne pliki w konfiguracji jak powyżej załączam poniżej.


Pobierz plik - link do postu
  • remote_control.zip
    • Makefile
    • irmtxv4.inc
    • README
    • irmtxv4.asm
    • 16f684.lkr
    • enc-043.asm
    • enc-043.hex


remote_control.zip > configuration.txt

Transmitter media: infrared
Transmitter channels: 8
Transmitter frequency: 38000
Receiver channels: 8
Receiver media: infrared
Receiver channel latch mask: 11110000