Infrared protokoli

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
AdisB
Posts: 9
Joined: 15-07-2010, 15:07

Infrared protokoli

Post by AdisB »

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.
User avatar
trax
Administrator sajta
Administrator sajta
Posts: 3509
Joined: 08-01-2005, 18:04
Location: 75k, BA
Contact:

Re: Infrared protokoli

Post by trax »

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.
User avatar
gurko
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 241
Joined: 18-03-2011, 19:28
Location: Srednja BiH

Re: Infrared protokoli

Post by gurko »

Neznam jeli ti ovo moze pomoci

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;
}

Ovo je dio koda koji sam koristio u jednom projektu koji je kotrolisao rad DC motora preko daljinskom. Najbitnija su vremena! Time is everything! :ohno: :lol:
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.
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Infrared protokoli

Post by jazz »

Samo jedan od site-ova gdje je sve objašnjeno u vezi raznih IR protokola...

http://www.sbprojects.com/knowledge/ir/ir.htm
AdisB
Posts: 9
Joined: 15-07-2010, 15:07

Re: Infrared protokoli

Post by AdisB »

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! :ohno: :lol:
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.
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:
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.
AdisB
Posts: 9
Joined: 15-07-2010, 15:07

Re: Infrared protokoli

Post by AdisB »

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
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.
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.
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.
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Infrared protokoli

Post by jazz »

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.
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.

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
User avatar
gurko
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 241
Joined: 18-03-2011, 19:28
Location: Srednja BiH

Re: Infrared protokoli

Post by gurko »

AdisB wrote:
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! :ohno: :lol:
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.
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:
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.
Ja sam koristio Philipsov daljinski od linije. I fercerao je odlicno!
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
AdisB
Posts: 9
Joined: 15-07-2010, 15:07

Re: Infrared protokoli

Post by AdisB »

Uspio sam napisati kod koji radi savrseno. Rijec je o NEC protokolu.
User avatar
gurko
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 241
Joined: 18-03-2011, 19:28
Location: Srednja BiH

Re: Infrared protokoli

Post by gurko »

Svaka cast!!!
Post Reply