Skocz do zawartości

Podczerwień


robo1238

Pomocna odpowiedź

Witam, chciałbym się dowiedzieć jak wygląda sterowanie podczerwienią. Zastosuje procesor attiny2313 i język programowania bascom. Z programem sobie poradzę, nie wiem jednak jak odczytać kod z pilota od tv. Wiem że każdy przycisk w pilocie ma swój adres i komendę,

Zastosował bym polecenie;

If Address = 10 And Command = 107 Then

Toggle Portb.0

Proszę o pomoc, jak odczytać adres i komendę dla dowolnego przycisku w pilocie?, tak jak w tym przypadku jest, 10 i 107.

__________

Komentarz dodany przez: Treker

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

A co niby robi ten kod?

'Wyjście detektora podłącz do PIND.2
'Funkcja GETRC5 używa licznika TIMER0 i jego przerwania.
'Ustawienia licznika są zapamiętywane i odtwarzane po wykonaniu
funkcji.
'Nie dotyczy to jednak obsługi przerwań!
'ustawiamy linię wejściową dla danych RC5
Config Rc5 = Pind.2
'Procedura przerwania TIMER0 jest wstawiana automatycznie.
'Należy tylko włączyć system przerwań!
Enable Interrupts
'określamy zmienne
Dim Address As Byte , Command As Byte
Do
'teraz sprawdzamy czy jakiś klawisz pilota został naciśnięty
'Uwaga! Po włączeniu zasilania wszystkie linie portów pracują
'jako wejścia. Dlatego nie używamy tutaj instrukcji określających
'kierunki portów.
'Jeśli wymagane jest określenie kierunku końcówki portu usuń
'komentarz z poniższej linii.
'Config Pind.2 = Input
Getrc5(address , Command)
'sprawdzamy czy adres jest równy 0 (korzystamy z pilota TV)
If Address = 0 Then
'zerujemy znacznik w słowie RC5
'bit znacznika jest zmieniany podczas każdej transmisji
Command = Command And &B10111111
Print Address ; " " ; Command
End If
Loop
End
Link do komentarza
Share on other sites

W kodzie, który Ci podałem masz przecież bardzo dokładnie komentarze. Czego konkretnie nie rozumiesz?

P.S. Jeśli nie chcesz otrzymać ostrzeżenia popraw temat oraz pole "skąd" w Twoim profilu.

Link do komentarza
Share on other sites

Chciałbym sterować kilkoma urządzeniami, np. takim kodem

If Address = 10 And Command = 107 Then

Toggle Portb.0

If Address = 10 And Command = 108 Then

Toggle Portb.1

If Address = 10 And Command = 109 Then

Toggle Portb.2

Tylko jak sprawdzić np, jaką komendę ma przycisk 1, 2, 3 itd. na pilocie.

Tego nie rozumiem.

Link do komentarza
Share on other sites

Koledzy się tutaj rozwodzą nad RC5, tylko jest jeden warunek, ów pilot z TV posiadany przez autora wątku musi jeszcze nadawać w RC5, który to nie jest znowu tak popularny jakby można było myśleć.

Ja w domu sprawdzałem wszystkie piloty jakie mam (łącznie 8) i żaden nie nadje w RC5 (Nawet stary PHILIPS, a teoretycznie powinien bo to oni ten standard opracowali), albo jest to standard SONY SIRC, albo danego producenta LG, lub JVC.

Pierwszy problem jaki trzeba rozwiązać to zidentyfikować pilot i jego kod, potem dopiero można próbować cokolwiek dekodować.

Link do komentarza
Share on other sites

Właśnie niedawno znalazłem tablicę, nie wiem czy o to chodziło.

http://www.easy-soft.net.pl/artykuly/jezyk-c/dekoder-kodu-rc5

To w takim razie mam pytanie, czy takie komendy będą działać?

If Address = 10 And Command = 1 Then

Toggle Portb.0

If Address = 10 And Command = 2 Then

Toggle Portb.1

If Address = 10 And Command = 3 Then

Toggle Portb.2

Czy jeśli do portów 0,1,2 podepnę np. diody a na pilocie wcisnę 1,2,3 to diody się zapalą ?

Link do komentarza
Share on other sites

Czy jeśli do portów 0,1,2 podepnę np. diody a na pilocie wcisnę 1,2,3 to diody się zapalą ?

I tak i nie, diody zaczną migać z dość dużą częstotliwością, dopóki będziesz trzymał wciśnięty przycisk na pilocie. W momencie gdy go puścisz dioda będzie albo świecić dalej albo zgaśnie. Dlaczego tak będzie? To chyba logiczne, ponieważ dałeś zmianę stanu pinu gdy jest odbierany ten kod z pilota, a procesor będzie sprawdzał ten warunek kilka do kilkunastu milionów razy na sekundę 🙂.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.