Sari la conținut
ELFORUM - Forumul electronistilor

RECUNOASTEREA UNUI BUTON DE LA TELECOMNDA :)


klaudyux

Postări Recomandate

Asta e codu facut de mine pentru decodarea RC5, merge f. bine am folosit-o in multe aplicatii, este o secventa facuta in Proton Pic Basic, dar poate fi adaptata la alt limbaj. Variabila IRDATA va contine la iesire codul IR detectat, ea fiind o variabila pe 16 biti vom avea in Highbyte codul aparatului vizat conform RC5 (exemplu TV este 0 daca imi aduc bine aminte) si in Lowbyte codul comenzii care este pe 6 biti. Cea ce arata rutina am comparat cu o carte unde am codul fiecarei taste in parte Vol UP etc. si totu este conform RC5.RC5COD: DELAYUS 6234 ; asteapta 6234 microsecunde FOR CONTOAR = 1 TO 10 ASM BTFSC IR BSF IRDATA,0 RLF IRDATA,1 ENDASM DELAYUS 1700 ;asteapta 1700 microsecunde NEXT CONTOAR IRDATA = IRDATA >> 1 ;se roteste o pozitie la dreapta PRINT DEC3 IRDATA.HIGHBYTE,"/", DEC3 IRDATA.LOWBYTElogica e simpla, rutina de la inceput sare peste bitii de start si citeste apoi cand trebuie . Spor la treaba .

Link spre comentariu
  • Răspunsuri 33
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • klaudyux

    8

  • XAN77

    4

  • tuffguy

    3

  • vlad_2770

    3

Top autori în acest subiect

M-am chinuit si eu cu un atmega8 si nu am resuit pana acum nimik. Ultimul test a fost de genul urmator: Un TSOP35 sau cum ii zicea, reciver IR cu semnal TTL conectat la un pin al uC-ului, si un led IR conectat la alt led al uC-ului. Am programat uC-ul sa aprinda ledul IR exact la fel cum primeste semnal de la vreo telecomanda reciverul TSOP ... De reactionat reactioneaza, se aprinde frumos ledul cand apas pe butonul unei telecomenzi, in schimb am incercat sa schimb postul la TV cu ledul IR aprins de uC in ritmul semnalului de la telecomanda si nu se intampla absolut nimic ! In loc de TSOP am incercat si cu o dioda IR normala si un comparator ... tot nimic ... Aveti idee ... ce ar mai trebui sa iau in considerare (atmega l-am pus sa lucreze la 8Mhz pe osciloscop m-am utiat foarte putin ca nu mai era timp, si semnalele aparent semanau oarecum .... (cred))

Link spre comentariu

uite aici http://www.xs4all.nl/~sbp/knowledge/ir/rc5.htm despre protocoalele IR, inclusiv RC5, faza e ca codul ala din 14 biti la RC5 este modulat pe o purtatoare de 36 KHz in general, tsop-ul extrage semnalul util si da la iesire doar cei 14 biti, pe o placa de sunet pepost de osciloscop i-ai vedea destul de clar, eu am asa am facut, deaia nu poti comanda TV-ul cu un led IR comandat direct de pic, este normal .

Link spre comentariu

uite aici http://www.xs4all.nl/~sbp/knowledge/ir/rc5.htm despre protocoalele IR, inclusiv RC5, faza e ca codul ala din 14 biti la RC5 este modulat pe o purtatoare de 36 KHz in general, tsop-ul extrage semnalul util si da la iesire doar cei 14 biti, pe o placa de sunet pepost de osciloscop i-ai vedea destul de clar, eu am asa am facut, deaia nu poti comanda TV-ul cu un led IR comandat direct de pic, este normal .

Si ce-as putea sa fac ca sa mearga ?
Link spre comentariu

Mai acum marea majoritate a telecomenzilor universale sunt cu PIC-uri!!! Deci trebuie sa iti mearga cu un PIc si un led IR sa comanzi TV, DVD sau ce mai vrei tu. Am vazut 2 telecomenzi pina acum asa. Daca pic-urile nu ar fi avut protectie la citirea codului le-as fi stricat sa pot sa citesc codul!!!Deci merge sigur sa poti sa folosesti un microcontroler si un led IR sa poti sa comanzi un Tv. Ce este stupid, este faptul ca doua tlecomenzi nu au acelasi semnal de iesire la apasarea unei taste. Codul format de cei 14 biti este acelasi dar durata unui bit nu are 1.778ms nici sa o tai!! Am verificat si telecomenzi originale PHILIPS, LG si luat din bazar si nu am gasit una care sa aiba macar peste 1.750ms. Plus ca palierele nu erau egale intre ele.In link-ul data ce frumos arata ca la 0 sau 1 logic jumatate palierul de low este egal cu cel de high. Daca ai un osciloscop mai bun te poti convinge de asta. Plus ca eu nu inteleg cum de merg TV-urile cu toate telecomenzile mai ales ca diferentza intre ele este mare. Mai adaug ca am folosit TSOP 1136(asta este folosit pentru RC5-PHILIPS), TSOP1138 si TSOP 1140(asta il foloseste sony) si pe acelasi montaj daca le schimbam nici o diferentza. Ma asteptam ca atunci cind am pus in loc de TSOP1136 un TSOP1140 sa nu mearga. Dar ... a mers.As fi curios cum merge partea de decodare a unui TV. Sau daca cineva a inlocuit un TSOP1136 cu un TSOP1140 pe un TV si a mai mers sau nu.

Link spre comentariu
Vizitator cristi7521

Pentru a modula semnalul cu 38khz trebuie sa treci semnalul ce comanda ledul printr-o poarta SI, pe una din intrari aplici semnal dreptunghiular de 38KHz, iar pe cealalta semnalul de comanda de la microcontroller.O alta metoda ar fi ca pe durata de comanda a ledului (cat timp este on)pe iesirea de comanda a microcontrollerului sa scoti semnal de tipulpinONtemporizare13microsecundepinOFFtemporizare13microcsecunde....succesCristi

Link spre comentariu

Pentru a modula semnalul cu 38khz trebuie sa treci semnalul ce comanda ledul printr-o poarta SI, pe una din intrari aplici semnal dreptunghiular de 38KHz, iar pe cealalta semnalul de comanda de la microcontroller.O alta metoda ar fi ca pe durata de comanda a ledului (cat timp este on)pe iesirea de comanda a microcontrollerului sa scoti semnal de tipulpinONtemporizare13microsecundepinOFFtemporizare13microcsecunde....succesCristi

Prima varianta merge incercata, dar face inutila prezenta microcontrolerului ... Ideea era ca daca mergea prin microcontroller, dupaia urma o incercare de memorare a semnalelor pentru anumite buotane si etc.... in cazul asta prima varianta nefiind tocmai practica. A doua varianta este interesanta ... dar intrebare: de ce 13 microsoecunde si de ce si pentru PonON si pt. PinOff?
Link spre comentariu
Vizitator cristi7521

Frecventa pulsurilor trebuie sa fie 36-40Khz, deci perioada 25-27 microsecunde. Pentru un factor de umplere de 1/2 rezulta 13 microsecunde led in conductie si 13 microsecunde led stins. Temporizarea se poate realiza cu instructiunea no operation. Daca lucrezi la frecventa mica la microcontroller trebuie sa tii cont de durata instructiunilor.Cristi

Link spre comentariu
  • 5 săptămâni mai târziu...

Salutare,

pentru ca m-am ocupat in trecut de asa ceva, iata un link pentru varianta cu Atmel:

http://www.atmel.com/dyn/resources/prod ... OC1473.PDF

 

Aplicatia este un decodor RC5 cu AT90S1200 si va pot spune ca mie mi-a mers perfect. De fapt eu em mers un pas mai departe si am realizat un dimmer pentru becuri incandescente comandat din telecomanda TV (un buton pentru UP si un buton pentru DOWN). In plus pentru ca am si o telecomanda Sony, am facut o varianta de software si pentru protocolul Control-S (Sony).

 

Spor la meshterit :),

Daniel

Link spre comentariu

Salutare,pentru ca m-am ocupat in trecut de asa ceva, iata un link pentru varianta cu Atmel:http://www.atmel.com/dyn/resources/prod ... OC1473.PDFAplicatia este un decodor RC5 cu AT90S1200 si va pot spune ca mie mi-a mers perfect. De fapt eu em mers un pas mai departe si am realizat un dimmer pentru becuri incandescente comandat din telecomanda TV (un buton pentru UP si un buton pentru DOWN). In plus pentru ca am si o telecomanda Sony, am facut o varianta de software si pentru protocolul Control-S (Sony).Spor la meshterit :),Daniel

Multam :d Desi speram ca am sa gasesc ceva cu pic (aveam programator) ma multumesc si cu varianta asta, acum vreau de la tine o schema asa cum ai folosit si tu pt aplicatia ta. Cate comenzi poate primi acest montaj ? pe mine ma intereseaza minim 4.
Link spre comentariu

Salutare,

schema folosita de mine pentru receptor este exact cea din nota de aplicatie, adica intrarea de la senzorul de tipul TSOP17xx pe pinul PD2 de la AT90S1200. Pentru aplicatia mea, dimmer bec 220V, eu am folosit o iesire pe care am simulat o intarziere fata de "zero-cros" al semnalului 50Hz al retelei de alimentare (transformat la tensiuni nepericuloase pentru montaj). Comanda triacului de dimming am facut-o optoizolat printr-un circuit de tipul MOC3021 astfel incat microcontroler-ul este imun la perturbatiile retelei. Schema circuitului o sa o pun pe un site si o sa va dau un link (sper sa gasesc cat mai repede timpul necesar) daca va intereseaza.

Revenind la nota de aplicatie Atmel, tot ceea ce trebuie sa faceti voi ca sa "interpretati" o comanda de la telecomanda este sa interceptati variabilele system si command din routina main:

"...main:        rcall detect ;Call RC5 detect routine        cpi system,SYS_ADDR ;Responds only at the specified address        brne release        andi command,0x3F ;Remove control bit        out PORTB,command        rjmp main..."
In system primiti codul telecomenzi (destinatia: TV, VCR, combina audio) si in command codul comenzi.

Dupa cum vedeti numarul de comenzi pentru un astfel de dispozitiv este limitat numai de porturile disponibile la AT90S1200.

 

Daniel

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări