Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 30 sty 2026, o 08:28


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 27 lip 2016, o 14:17 
Offline
Nowy

Dołączył(a): 05 lip 2016
Posty: 5
Pomógł: 0

Cześć forumowicze ;) ,
boryka się z problemem odbioru danych z pilota firmy LG. Nie mając pojęcia jakiego kodowania używa, chciałem sam do tego dojść, sprawdzając czasy trwania sygnałów niskich wysyłanych przez odbiornik oraz orientacyjną ilość bitów. W tym celu napisałem poniższy program.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Program działa b. prosto. Do pinu PB0 (ICP1 - ten reagujący na zbocza) podłączony jest odbiornik TSOP31236. Włączam 16 bitowy Timer1, który jest taktowany częstotliwością 1MHz (8MHz ATMega oraz preskaler=8). Spójrzmy na przerwanie. Widzimy, że w przypadku zbocza opadającego licznik jest zerowany. Natomiast jeśli pin wykrył zbocze narastające to:
- inkrementujemy zmienną ilość_bitów, która orientacyjnie mówi o ilości bitów przesyłanych przez pilota,
- odczytujemy wartość rejestru ICR1, który przechowuje wartość Timera1 w chwili pojawienia się zbocza, i wpisujemy tę wartość do tablicy bity, na którą jak widać nie żałowałem pamięci ;)
- ustawiamy zbocza powodujące przerwanie na przeciwne.
Na LCD wyświetlany jest napis "Zacznij pomiar" i mamy 2s na naciśnięcie przycisku na pilocie. Następnie na ekranie LCD wyświetlane są czasy stanu niskiego na odbiorniku oraz na końcu orientacyjna liczba bitów. Niestety te czasy nie odpowiadają żadnemu znanemu mi standardowi kodowania (odbierane wartości stanu niskiego są 2 : ok. 75us oraz ok. 130 us, przy czym ok. 130 us występuje na końcu i na początku, przez "środek" odbieranych danych wartość stanu niskiego wynosi ok. 75us - czyżby modulacja odległości impulsu?), a liczba bitów, czy też precyzyjnie zmian na stan niski wynosi 37-41 ( nie sprawdzałem wszystkich przycisków). I tu moja prośba: pomoże mi ktoś ustalić co to za kodowanie? Czy mam gdzieś błędy w rozumowaniu/programie? Dlaczego stany niskie są tak krótkie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lip 2016, o 07:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 maja 2013
Posty: 432
Lokalizacja: Gostyń / Poznań
Pomógł: 25

A sprawdzales z pilotrm np rc5 czy twoj program dziala na 100% ok?

_________________
Podpis...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lip 2016, o 07:47 
Offline
Nowy

Dołączył(a): 01 lip 2016
Posty: 19
Pomógł: 1

Witam. Rok temu robiłem podobny projekt - niewykorzystanymi przyciskami w pilocie do tv chciałem sterować innymi odbiornikami. Musiałem działać dwutorowo - pilota zanalizowałem programem podobnym do Twojego - zliczał czas trwania zer i jedynek i wysyłał wszystkie dane na rs. To był tv Sharpa - kodowanie - nieznane - zera i jedynki różnych długości i nie mające wspólnej wielokrotności. Więc moje procedury odczytujące robiły to tak samo - tj szukały ciągów o odpowiednich długościach.

Z drugiej strony chciałem sterować wzmacniaczem do którego nie mam pilota - okazało się że jest w internecie kilka projektów (z różnych lat) gdzie ludzie na atmegach i picach porobili analizatory i w jakimś standardzie i wrzucają kody odczytane z pilotów. Na LG pamiętam było ich sporo. Warto poszukać po konkretnym modelu kodów IR.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lip 2016, o 10:21 
Offline
Nowy

Dołączył(a): 05 lip 2016
Posty: 5
Pomógł: 0

Problem rozwiązany :)Sam w program sobie działa natomiast źródłem problemu była funkcja wyświetlająca pomiary na wyświetlaczu LCD. Otóż jako argument przyjmowała ona typ uint8_t czyli do 255, czyli z góry było ograniczenie do 255 us. Tak więc wystarczyło zmienić na uint16_t i działa. A co do samego kodowania to było to kodowanie NECowskie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO