(6 głosujących) Urządzenie to współpracuje z układami mikroprocesorowymi zawierającymi klawiaturę w formie przycisków zwieranych do masy. Układ włączony jest równolegle do klawiatury urządzenia sterowanego i po odebraniu sygnału z pilota pracującego w standardzie Rc5 powoduje wymuszenie stanu niskiego na odpowiednim przycisku. Układ którym sterujemy odbierze to jako naciśnięcie przycisku na klawiaturze. Odbiornik ten został zaprojektowany jako pilot do przedwzmacniacza cyfrowego ale po zmianie oprogramowania może działać z dowolnym innym urządzeniem. Układ działa w oparciu o mikrokontroler AT89C2051 (lub ATTiny2313) i kilka elementów pomocniczych. Zasilanie pobierane jest ze sterowanego urządzenia.
Działanie:Schemat ideowy odbiornika przedstawiony jest na rysunku poniżej: Sercem układu jest mikrokontroler U1 (AT89C4051) wraz z rezonatorem kwarcowym X1 (12MHz) i kondensatorami C1 (22pF) i C2 (22pF). Kondensator C3 (1uF) zapewnia reset procesora po włączeniu napięcia zasilania. Układ U2 (TSOP1736) jest odbiornikiem podczerwieni pracującym na częstotliwości 36KHz. Elementy R3 (220R) i C5 (100uF) stanowią obwód zasilania układu U2. Dioda D1 wraz z rezystorem ograniczającym prąd R4 (330R) służy do sygnalizowania poprawnie odebranej transmisji w kodzie Rc5. Kondensator C4 (47uF) filtruje napięcie zasilające mikrokontroler. Rezystory R1 (1k) i R2 (1k) podciągają piny P1.0 i P1.1 mikrokontrolera do plusa zasilania. Wyjścia sterujące układu (Port P1) oraz zasilanie (5V) wyprowadzone są na złącze SW_Goldpin. Budowa:Układ można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym można ściągnąć tutaj. Montaż układu jest prosty i nie powinien sprawić trudności. W pierwszej kolejności należy wlutować rezystor R1 leżący pod mikrokontrolerem. Kolejność pozostałych elementów jest dowolna. Pod procesor bezwzględnie konieczna jest podstawka, w przeciwnym wypadku nie będzie możliwe jego zaprogramowanie. Pomocą przy konstrukcji może okazać się dostępny tutaj schemat montażowy. Zamiast mikrokontrolera AT89C2051 można zastosować ATTiny2313. W takim wypadku nie należy montować rezystorów R1 i R2 oraz kondensatora C3. Rezonator kwarcowy X1 należy wymienić na 16MHz bo pod taki program był kompilowany. Dla rezonatora 12MHz jaki był w pierwotnym układzie należy zmodyfikować program (pierwszą linijkę z dyrektywą $crystal wpisując 12000000 zamiast 16000000). Ustawienia fusebitów mikrokontrolera ATTiny2313 dostępne są w rozdziale "Programowanie" Wykaz Elementów:1x Listwa Gold Pin 1x10 1x 220R 2x 22pF 1x Rezonator Kwarcowy 12MHz Programowanie:UWAGA! W przypadku korzystania z wersji programu dla AVR, podczas kompilacji w nowym bascomie linia konfiguracji RC5 powinna wyglądać następująco: Config Rc5 = Pind.2 , Wait = 2000 Mikrokontroler został zaprogramowany w wersji demo programu BASCOM 8051 firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej: '**************************** 'Konfiguracja '**************************** $crystal = 12000000 '12MHz $regfile = "89C4051.DAT" Config Rc5 = P3.2 Reset Tcon.0 'reaguje na zbocze narastajace On Int0 Odbierz_rc5 Enable Int0 Enable Interrupts Dim Odebrano As Bit Dim Komenda As Byte , Adres As Byte Dioda Alias P3.7 '**************************** 'Petla glowna '**************************** Do If Odebrano = 1 Then Odebrano = 0 If Adres = 0 Then Disable Int0 Waitms 100 Reset Dioda Select Case Komenda Case 1: 'vol+ Reset P1.7 Case 2: 'bas+ Reset P1.6 Case 3: 'treb+ Reset P1.5 Case 4: 'vol- Reset P1.3 Case 5: 'bas- Reset P1.2 Case 6: 'treb- Reset P1.1 Case 15: 'we Reset P1.0 Case 13: 'mute Reset P1.4 End Select Waitms 100 Set Dioda P1 = 255 Enable Int0 End If End If Loop End '**************************** 'Inne Etykiety '**************************** Odbierz_rc5: Getrc5(adres , Komenda) Adres = Adres And &B00011111 'zerowanie bitu 5 Odebrano = 1 Return '**************************** Poniżej przedstawione są ustawienia fusebitów mikrokontrolera ATTiny2313 (nie dotyczy AT89C2051 jaki został uzyty w pierwotnej wersji): Zdjęcia Projektu:
|
|||||||||||||||||||||||||||||||||
Re: Odbiornik
na jakim procku to zrobiłeś i jaki użyłeś do tego soft? Jeśli soft używa przerwań to nie możesz sobie pinu wejściowego Rc5 zamienić na inny. Jedynie na pin od drugiego przerwania.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
sterowanie
witam mam pytanie jak zrobić żeby trzymając jeden przycisk na wyjściu któregoś w portów pojawiał się stan wysoki, aby trzymał przekaźnik. ponieważ teraz trzymając guzk przekaźnik "cyka"
Re; Rc5
Teraz powinno zadziałać. Na porcie b.0 będzie stan niski dopóki będziesz trzymał klawisz
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
zmiana portu
witam jak zrobić żeby na PB.1 i PB.2 były na zmianę stany wysokie tzn gdy PB.1 będzie stan wysoki to na PB.2 będzie niski i gdy zmienię aby na PB.2 był był stan wysoki to PB.1 wraca na niski i tak na zmianę:) będę używał tylko tych 2 portów nic więcej nie będzie do tego podłączone
Re: Rc5
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
rc5
Witam mam pytanie czy da radę przerobić program tak że gdy z np trzymając jeden guzik n jednym z wyjść był stan wysoki gdy go puścimy będzie niski ponieważ chcę wykorzystać ten układ do bariery optycznej.
Re: Rc5
Weź kod 3 posty wyżej tylko zamień 0 z 1 przy Sbit=0 i Sbit=1.....
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam serdecznieWystarczy
Witam serdecznie
Wystarczy taki kod do odczytania kody z pilota RC5?
Re: Rc5
Tak wygląda to dobrze, jeszcze możesz w drugiej linii wyświetlić adres bo różne piloty mogą mieć różne adresy
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
WitamWykonałem płytkę do
Witam
Wykonałem płytkę do odczytu kody i u góry w pierwszej linijce pojawią się cyfry 127, a niżej 255 i chciałem sprawdzić ten pilot co niżej w linku
http://lispol.com/p/2567/Kontroler%20RGB%20z%20pilotem%20IR%2024-KEY
ale niestety nic nie reaguje
To jest mój kod
Re: Rc5
Zamiast
użyj:
Genialny patent bascoma, teraz bez tego waita działa w XMEGA a nie w ATMEGA,doczytałem się w helpie do bascoma
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Problem ze stanem portu przy trzymaniu przycisku
Witam !
Dopisałem do swojego odbiornika RC5 kody odnośnie trzymania stanu portu, tak długo jak trzymany jest przycisk pilota - niestety u mnie to nie działa jak powinno. Układ wykorzystuję jako selektor wejść do wzmacniacza, wraz z wbudowanym potencjometrem cyfrowym z Twojej strony ( żeby nie komplikować sprawy programowo, mam zbudowany potencjometr ze sterowaniem za pomocą Attiny13 ale zamiast przycisków używam portów D.0 oraz D.1 procesora Attiny2313(odbiornika RC5) do sterowania głośnością ). W wersji gdzie stan portów zmianiał się co 200ms uzyskanie minimalnej głośności powodowało że dźwięk "drgał"...stąd też plan by porty działały dokładnie jak przyciski - trzymanie VOL na pilocie to portd.x w stanie wysokim - puszczenie to '0' na porcie d.x...niestety nacisnięcie Vol+ na chwilę sprawia że głośność ciągle rośnie, vol- spada do zera - puszczenie nie zatrzymuje tych operacji... jednakże po chwilowym naciśnięciu któregoś z tych przycisków ( powiedzmy Vol+ ) mogę zatrzymać tę operację naciskając dowolny inny przycisk.
Jak pozbyć się tego problemu ??? w załączeniu kod :
Re: Pilot Rc5
Masz na odwrót stany logiczne chyba że zmieniłeś też w tiny 13. Cały czas masz wciśnięte dwa przyciski z tego co widzę a na chwilę tylko je wyłączasz, to nie za dobry pomysł. W stanie spoczynku Portd. 0 i 1 powinny być w stanie 1 a tylko na chwilę w stanie 0.
Patent z trzymaniem klawisza nie jest dobry w tym układzie o wiele lepiej będzie jak będa to impulsy, będzie działać pewniej i szybciej. Zamiast:
Trzeba napisać:
i tak we wszystkich przypadkach
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam, czy ten układ moze
Witam, czy ten układ moze pracować z serwem tak ze ile bede trzymał nacisnięty przycisk tyle bedzie sie kreciło? Czy to jest tak ze kliknieciem zalącza a drugie kliknięcie wyłącza?
Re: RC5
Oryginalny program na każde kliknięcie generuje impuls, a na trzymanie serię impulsów.... można zrobić aby sygnał po naciśnięciu trwał ileś czasu a jak się trzyma to trwał cały czas.... Poszukaj we wcześniejszych postach bo już chyba takie coś rozważaliśmy wcześniej....
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
mam takie pytanko bo zrobiłem
mam takie pytanko bo zrobiłem ten układ na płytce stykowej żeby zobaczyć jak to działa ale jak wgrałem program na attiny to zamiast wysyłać impulsy to po wciśnięciu załącza a po kolejnym wyłącza co trzeba zmienić w programie żeby było poprawnie ??
Przeanalizuj fragment kodu i
Przeanalizuj fragment kodu i popraw swój
Dzięki za pomoc :D Teraz
Dzięki za pomoc :D Teraz działa tak jak ma być :D
Problem
Witam
Otóż mam pewien problem z działaniem odbiornika. Mam pilota który nadaje w RC5 i mam w nim dwa wolne nie przypisane do układu klawisze ale niestety one nie działają.Zrobiłem sobie dekoder sygnału RC5 i jego adres tak jak innych przycisków z pilota wynosi 8 a ich komendy to 88 i 79. Na początku zbudowałem sobie oto ten włącznik http://www.elektroda.pl/rtvforum/topic1926888-0.html przy którym te przyciski działały bez problemu ale niestety sterownik miał tylko jeden kanał więc postanowiłem zrobić Pana projekt ale nie działają mi te przyciski. Czy jest na to jakaś rada??
Re: Rc5
Jak zrobiłeś dekoder sygnału Rc5? Też korzystasz z bascomowego polecenia getrc5? Standardowy kod rc5 nie obsługuje komend powyżej 63. Spróbuj skorzystać z getrc5 i zobacz jaką komendę odczytuje to polecenie po wciśnięciu klawiszy o które pytasz?
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Dekoder zrobiłem
Dekoder zrobiłem tak:
Re: RC5
Sprawdź to jeszcze raz konfigurując port tak:
Czy też komenda przyjmuje wartości > 63?
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Po takiej konfiguracji
Po takiej konfiguracji przyjmuje komendy takie jak wcześniej ale zauważyłem coś ciekawego a mianowicie gdy do odbiornika rc5 zbudowanego na attiny2313 wrzucę ten kod
po odebraniu przez procesor komendy 38 zmienia się stan diody ale po odebraniu komendy 88 nic się nie dzieje. Gdy jednak ten sam program wrzuciłem na odbiornik zbudowany na atmega8
komendą 38 jak i 88 mogę zmieniać stan diody. Czemu zatem na atmega8 działają te kody a na attiny2313 nie??
Re: Rc5
To na pewno wina bascoma, pewnie inaczej kompiluje pod tiny a inaczej pod m8 i stąd te różnice w działaniu. Jak mówiłem komenda 88 jest niestandardowa i pochodzi z rozszerzenia standardu Rc5, więc trudno się dziwić że może coś źle działać.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Ello. Mam coś
Ello.
Mam coś takiego:
W tej sytuacji układ zwiera przyciski do masy, a mi chodzi aby było na odwrót. Żeby podawał napiecie a nie zwierał do masy. Da się to zrobić?
Można zastosować tranzystor
Można zastosować tranzystor npn np. BC 547 , albo transoptor
No tak, ale miałem zamiar
No tak, ale miałem zamiar zwierać przyciski za pomocą tranzystorów, stad te pytanie zeby układ wystawiał stan wysoki przy przyciskaniu klawiszy pilota.Czemu tak? Bo mam pewien problem układ w pewnej aplikacji nie bardzo sobie radzi- nie zwiera przycisków tak jak powinien.
Re: Rc5
Bez problemu da się to zrobić:
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Przytrzymanie przycisku jeszcze raz...
Witam, chciałem wykonać taki układ do sterowania wzmacniaczem (selektor 4 wejść, sterowanie On/Off, sterowanie głośnością poprzez potencjometr z silnikiem). Wykonałem układ testowy na diodach i napisałem kod, raczej poskładałem z informacji znaleźnych na tej stronie. Mam problem z przytrzymaniem przycisku na pilocie (dotyczy vol+ i vol-). Często podczas puszczenia na wyjściu dalej utrzymuje się stan 0 i dioda świeci ciągle. Stan można zmienić wciskając na chwilę dowolny przycisk. Kod załączam poniżej. Nie wiem jak dalej pokombinować. Podobny problem zgłaszał Kolega insectteam, ale nie zostało to do końca wyjaśnione.
Pozdrawiam. Elf
Re: Rc5
polecenia:
Wstaw zaraz na końcu tego samego przejścia procedury odczytu jednego klawisza, zaraz po enable int0, a nie na początku. Powinno być lepiej
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam, czy poniższy kod
Witam, czy poniższy kod zródłowy bedzie poprawny gdy chcial bym aby pierwsze 2 porty dzialały jak uSwitch`e a reszta po załaczeniu bedzie zmieniac swój stan na wyjsciu do puki nie wcisne 2 raz?
Witam, już tak próbowałem
Witam, już tak próbowałem niestety nadal często po puszczeniu klawisza na porcie pozostaje stan 0. Może zastosować jakąś wewnętrzną pętlę po odebraniu komendy 16 i 17?
Dzięki mirley, jak wpadnie mi
Dzięki mirley, jak wpadnie mi uln2803 z powrotem do płytki testowej to będę eksperymentował dalej.
Re: Rc5
musisz jeszcze po wydaniu
Przypisać te wartości na port, czyli ponownie wykonać
Tak w sumie to uważam te zmienne za niepotrzebne bo wystarczy portem samym sterować
----------------------------------------------------------
Wartość z którą robisz or powinna być tak jak wyżej, teraz piny 0 i 1 zostaną ustwione po 200ms na 1 a pozostałe pozostaną bez zmian
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Po wpisaniu tych
Po wpisaniu tych poleceń:
występują błedy. Co moge robić nie tak?
Witam, gdy wstawię po Enable
Witam, gdy wstawię po Enable Int0:
Uzyskuję miganie diody, również przy OR bez zmiennych Volg i Volc diody na tych portach migają razem z Diodą odbioru.
Najbliżej celu jestem przy kodzie ze zmiennymi, ale pozostawienie na wyjściu 0 będzie powodowało, że potencjometr będzie "kręcił" na max lub min. Zastanawiam się czy nie zastosować potencjometru elektronicznego i impulsatora zamiast potencjometru z silnikiem.
Mirley, pisałeś że może być
Mirley, pisałeś że może być sterowanie samym portem, ale bez zmiennych bascom zasypuje błędami. Napisałem taki program:
Przytrzymanie przycisku OK...
Witam, Przytrzymanie przycisku działa kod poniżej.
Uwagi: kompiluję w Bascom ?AVR 2.0.7.5 Ważny jest parametr Wait = 2000 (w tej wersji kompilatora).
W wersjach 1 Bascoma-AVR chyba nie potrzebny (nie sprawdzałem). Nie udało mi się uruchomić tego kodu na przerwaniu, ale walczę z tym.
Pozdrawiam
Pomylka mala u góry:P
Pomylka mala u góry:P
Re: czy może być taki?
Czemu nie wgrasz i nie sprawdzisz?
Zajęło by Ci to mniej czasu niż napisanie tych dwóch postów wyżej.
Moja strona w powijakach
Przy kompilacji wyskakuje mi
Przy kompilacji wyskakuje mi błąd przy Or:
Re: Przy kompilacji wyskakuje mi błąd...
Bo w tym miejscu nie możesz napisać
Nie ma binarnej liczby &C00000011. to nie odnosi się do portu i jego nazwy a do liczby w kodzie dwójkowym.
Napisz tak:
A gwarantuję Ci że kompilator nie wywali Ci błędu.
Moja strona w powijakach
A fusebity będą takie same
A fusebity będą takie same jak do Attiny2313??
SuT i CKSL bedzie takie same
SuT i CKSL bedzie takie same lecz chodzi mi tu o BODEN?
Re: Fusy
Jeśli dobrze pamiętam boden levl odpowiada tylko za detekcję napięcia i jeśli jest niższe niż ustawione za pomocą tego parametru to procesor "ulega" resetowi. Ja zwykle boden ustawiam na włączony czyli detekcja ustawiona na 2,7V
Moja strona w powijakach
A doben enable czy disabled??
A doben enable czy disabled??
boden sory:P
boden sory:P
Re: Fusy
Ja w atmedze 8 mam ustawiona tak fusy:
Moja strona w powijakach
A reset w ATmedze8 moge
A reset w ATmedze8 moge podciągnąć do vcc rezystorem 10k?
Re: reset w ATmedze8
Nie możesz tylko powinieneś.
Moja strona w powijakach