Infrared protokoli
Moderators: pedja089, stojke369, [eDo], trax
Infrared protokoli
Moze li mi neko napisati primjer koda (mikroC) za citanje tipke daljinskog upravljaca?
Dakle, kada se pritisne tipka na daljinskom upravljacu, TSOP salje nit bita prema PIC12F629 i to trebam snimiti u varijablu. Posto vec postojeci Infrared Light Dimmer radi odlicno sa svim daljinskim upravljacima koje imam, trebao bi mi isjecak iz tog koda za ocitavanje tipke (navedeno je da dimmer radi sa protokolima RC5 i NEC).
Svaki savjet je dobrodosao.
Hvala puno svima unaprijed.
Dakle, kada se pritisne tipka na daljinskom upravljacu, TSOP salje nit bita prema PIC12F629 i to trebam snimiti u varijablu. Posto vec postojeci Infrared Light Dimmer radi odlicno sa svim daljinskim upravljacima koje imam, trebao bi mi isjecak iz tog koda za ocitavanje tipke (navedeno je da dimmer radi sa protokolima RC5 i NEC).
Svaki savjet je dobrodosao.
Hvala puno svima unaprijed.
Re: Infrared protokoli
Radi on sa tim protokolima, ali taj kod sam pisao u asembleru tako da ti on nista ne znaci. Jesil pogledao na mikroe.com stranici, vjerovatno ima tamo primjer. Skoro sam gledao i imali su dosta dosta raznih primjera.
Re: Infrared protokoli
Neznam jeli ti ovo moze pomoci
Ovo je dio koda koji sam koristio u jednom projektu koji je kotrolisao rad DC motora preko daljinskom. Najbitnija su vremena! Time is everything!
Javi ako ti bude trebalo vise informacija ... Uglavnom, ovu funkciju sam pozivao u nekoj petlji i ona mije vracala kod pritisnutog tastera primljenog preko IR.
Code: Select all
/*
* Project name:
Dekodiranje RC-5 Philipsovog IR daljinskog
* Description:
Dekodiranje RC-5 Philipsovog IR daljinskog
* Test configuration:
MCU: PIC16F887
Dev.Board: EasyPIC
Oscillator: XT, 08.0000 MHz
Ext. Modules: -
* NOTES:
Header file for decoding RC-5 Philips protocol
*/
const char _F = 0x00;
unsigned short int rc_check(){
unsigned short int in_var = 0;
unsigned long k = 0;
delay_us(5778);
if (PORTB.F0 == _F) in_var = in_var + 16u;
delay_us(1778);
if (PORTB.F0 == _F) in_var = in_var + 8u;
delay_us(1778);
if (PORTB.F0 == _F) in_var = in_var + 4u;
delay_us(1778);
if (PORTB.F0 == _F) in_var = in_var + 2u;
delay_us(1778);
if (PORTB.F0 == _F) in_var = in_var + 1u;
in_var = 0;
delay_us(1778);
if (PORTB.F0 == _F) in_var = in_var + 32u;
delay_us(1778);
if (PORTB.F0 == _F) in_var = in_var + 16u;
delay_us(1778);
if (PORTB.F0 == _F) in_var = in_var + 8u;
delay_us(1778);
if (PORTB.F0 == _F) in_var = in_var + 4u;
delay_us(1778);
if (PORTB.F0 == _F) in_var = in_var + 2u;
delay_us(1778);
if (PORTB.F0 == _F) in_var = in_var + 1u;
return in_var;
}
Javi ako ti bude trebalo vise informacija ... Uglavnom, ovu funkciju sam pozivao u nekoj petlji i ona mije vracala kod pritisnutog tastera primljenog preko IR.
Re: Infrared protokoli
Samo jedan od site-ova gdje je sve objašnjeno u vezi raznih IR protokola...
http://www.sbprojects.com/knowledge/ir/ir.htm
http://www.sbprojects.com/knowledge/ir/ir.htm
Re: Infrared protokoli
Hvala. Probao sam ovaj kod, ali koju god tipku da pritisnem procita se vrijednost "20". Mozda moji daljinski upravljaci ne koriste taj protokol. Daljinski upravljaci koje koristim su:gurko wrote:Neznam jeli ti ovo moze pomoci
Ovo je dio koda koji sam koristio u jednom projektu koji je kotrolisao rad DC motora preko daljinskom. Najbitnija su vremena! Time is everything!
Javi ako ti bude trebalo vise informacija ... Uglavnom, ovu funkciju sam pozivao u nekoj petlji i ona mije vracala kod pritisnutog tastera primljenog preko IR.
1. Daljinski od satelitskog receivera "ELIT"
2. Daljinski od analognog satelitskog receivera "Strong" iz 90-ih godina.
Da li ovi daljinski upravljaci koriste NEC protokol? Posto ne rade sa ovim kodom za RC-5, a rade sa dimmerom svjetla koji podrzava RC-5 i NEC, onda bi valjda trebalo da su NEC.
Re: Infrared protokoli
Vec sam pregledao tu stranicu i odlicno je sve objasnjeno, pa sam na osnovu opisa protokola napisao kod za RC5 i NEC. Medjutim, ili se uvijek procita ista vrijednost bez obzira na tipku (vjerovatno pogresan protokol) ili se procita razlicita vrijednost za istu tipku.jazz wrote:Samo jedan od site-ova gdje je sve objašnjeno u vezi raznih IR protokola...
http://www.sbprojects.com/knowledge/ir/ir.htm
Mislim da je problem u tome sto aktivno stanje nije konstantno, nego ga cini niz impulsa, tako da je tesko uskladiti vremena citanja (zbog toga se nekad procita 0 a nekad 1). Sada imam ideju da to realizujem pomocu interrupta koji bi se omogucio za odredjene vremenske intervale. Ipak, volio bih znati kako je to izvedeno u kodu IR Light Dimmera, s obzirom da TSOP nije vezan na vanjski interrupt. Mozes li ukratko opisati princip rada, ne mora kod. Hvala puno.trax wrote:Radi on sa tim protokolima, ali taj kod sam pisao u asembleru tako da ti on nista ne znaci. Jesil pogledao na mikroe.com stranici, vjerovatno ima tamo primjer. Skoro sam gledao i imali su dosta dosta raznih primjera.
Re: Infrared protokoli
Kad sam se bavio istom tematikom, priključio sam na jedan ulazni pin uC izlaz sa TSOP-a i čitao signal tako da je uC brojio (korišten timer) duljinu intervala između 0/1 i 1/0 promjene. Niz rezultata (cijeli broj izmjerene duljine intervala) je slan računalu koje je to spremalo u log text file. Pretvaranjem tog log file u sliku, jednostavno je bilo odrediti o kojem protokolu se radi, o kojoj tipki i slično.AdisB wrote: Vec sam pregledao tu stranicu i odlicno je sve objasnjeno, pa sam na osnovu opisa protokola napisao kod za RC5 i NEC. Medjutim, ili se uvijek procita ista vrijednost bez obzira na tipku (vjerovatno pogresan protokol) ili se procita razlicita vrijednost za istu tipku.
Mislim da je problem u tome sto aktivno stanje nije konstantno, nego ga cini niz impulsa, tako da je tesko uskladiti vremena citanja (zbog toga se nekad procita 0 a nekad 1). Sada imam ideju da to realizujem pomocu interrupta koji bi se omogucio za odredjene vremenske intervale. Ipak, volio bih znati kako je to izvedeno u kodu IR Light Dimmera, s obzirom da TSOP nije vezan na vanjski interrupt. Mozes li ukratko opisati princip rada, ne mora kod. Hvala puno.
Igrao sam se sa uC, ali za dekodiranje daljinca (otkrivanje o kojem protokolu se radi) može se koristiti i samo PC, uz TSOP i nešto sitno dijelova npr. http://stuff.nekhbet.ro/2006/07/10/make ... or-pc.html
Re: Infrared protokoli
Ja sam koristio Philipsov daljinski od linije. I fercerao je odlicno!AdisB wrote:Hvala. Probao sam ovaj kod, ali koju god tipku da pritisnem procita se vrijednost "20". Mozda moji daljinski upravljaci ne koriste taj protokol. Daljinski upravljaci koje koristim su:gurko wrote:Neznam jeli ti ovo moze pomoci
Ovo je dio koda koji sam koristio u jednom projektu koji je kotrolisao rad DC motora preko daljinskom. Najbitnija su vremena! Time is everything!
Javi ako ti bude trebalo vise informacija ... Uglavnom, ovu funkciju sam pozivao u nekoj petlji i ona mije vracala kod pritisnutog tastera primljenog preko IR.
1. Daljinski od satelitskog receivera "ELIT"
2. Daljinski od analognog satelitskog receivera "Strong" iz 90-ih godina.
Da li ovi daljinski upravljaci koriste NEC protokol? Posto ne rade sa ovim kodom za RC-5, a rade sa dimmerom svjetla koji podrzava RC-5 i NEC, onda bi valjda trebalo da su NEC.
I ja sam imao problema sa prepoznavanjem tipki, ali sve dok nisam usicao sva moguca vremena, nije radio kako treba. Znam da mi je dosta pomogla ova stranica:
http://en.wikipedia.org/wiki/RC-5
Re: Infrared protokoli
Uspio sam napisati kod koji radi savrseno. Rijec je o NEC protokolu.
Re: Infrared protokoli
Svaka cast!!!