Ir kontrola
Moderators: pedja089, stojke369, [eDo], trax
-
- Posts: 22
- Joined: 18-12-2009, 21:21
Ir kontrola
kako sa mikrokontrolerom prepoznati signal koji salje npr: daljinac....
pratio sam temu traxov ir dimmer.hex al tamo se vise obracalo paznje na regulaciju osvjetljenja
a meni treba samo dekodiranje signala
thx....
pratio sam temu traxov ir dimmer.hex al tamo se vise obracalo paznje na regulaciju osvjetljenja
a meni treba samo dekodiranje signala
thx....
Re: Ir kontrola
nisi jedini koga to zanima....
Pročitao sam negdje na netu da daljinski od nekog uređaja podatke šalje u 7bitnom binarnom kodu,to je jedino što znam
Usput u kojem te programskom jeziku ćeš pisati program za to jer mene zanima primjer u picbasic-u?
Pročitao sam negdje na netu da daljinski od nekog uređaja podatke šalje u 7bitnom binarnom kodu,to je jedino što znam
Usput u kojem te programskom jeziku ćeš pisati program za to jer mene zanima primjer u picbasic-u?
-
- Posts: 22
- Joined: 18-12-2009, 21:21
Re: Ir kontrola
nije vazno
moze MCS
microC
microBasic
samo da nije u assambleru
moze MCS
microC
microBasic
samo da nije u assambleru
Re: Ir kontrola
Sta fali asembleru?
Imas na sajtu dosta o protokolima koji se koriste, rc5,nec itd...
Imas na sajtu dosta o protokolima koji se koriste, rc5,nec itd...
- Elektronicar
- Pravo uznapredovao :)
- Posts: 467
- Joined: 19-01-2008, 17:05
- Location: Balkan
Re: Ir kontrola
Ovo je dovoljno za pocetak.
http://www.sbprojects.com/knowledge/ir/rc5.htm" onclick="window.open(this.href);return false;
http://www.sbprojects.com/knowledge/ir/rc5.htm" onclick="window.open(this.href);return false;
Re: Ir kontrola
ajde da probam da ti malo objasnim,jer sam se i sam igrao sa tim dekodiranjem:
Pogledaj recimo ovaj RC5 protokol sto ti je elektronicar dao link.
Imas 2 start bita,1 togle bit,i onda imas 5 bitova adrese i 6 bitova komande.
Kad je bit na log 1 onda imas 889us bez signala,pa 889us signal .Kod log 0 je obrnuto.
Princip je da ti u programu cekas u petlji da signal sa tsopa(ili nekog drugog IR prijemnika) padne na log 0.
TSOP invertuje signal,tako da kad nema signala na ulazu,on na izlazu drzi log 1.
Kada padne na nulu,znas da je primio neki signal na ulazu.
Cim primis signal stavljas pauzu od 1778us.Onda gledas sta je na ulazu.Ako je log 1 onda je i taj bit bio 1.
Ako je log 0 ,onda je i taj bit bio 0.
Ja kad sam primao kod za RC5 uvek sam preskakao ta prva 3 bita,preskakao sam i 5 bitova adrese,samo sam pratio onih 6 bitova komande.
Znaci dobijes prvi put signal na ulazu,pravis pauzu od 8 puta 1778us (preskocis prvih 8 bitova) i onda ovih 6 stavljas u neku promenljivu.
Nadam se da ti je jasnije.
Pogledaj recimo ovaj RC5 protokol sto ti je elektronicar dao link.
Imas 2 start bita,1 togle bit,i onda imas 5 bitova adrese i 6 bitova komande.
Kad je bit na log 1 onda imas 889us bez signala,pa 889us signal .Kod log 0 je obrnuto.
Princip je da ti u programu cekas u petlji da signal sa tsopa(ili nekog drugog IR prijemnika) padne na log 0.
TSOP invertuje signal,tako da kad nema signala na ulazu,on na izlazu drzi log 1.
Kada padne na nulu,znas da je primio neki signal na ulazu.
Cim primis signal stavljas pauzu od 1778us.Onda gledas sta je na ulazu.Ako je log 1 onda je i taj bit bio 1.
Ako je log 0 ,onda je i taj bit bio 0.
Ja kad sam primao kod za RC5 uvek sam preskakao ta prva 3 bita,preskakao sam i 5 bitova adrese,samo sam pratio onih 6 bitova komande.
Znaci dobijes prvi put signal na ulazu,pravis pauzu od 8 puta 1778us (preskocis prvih 8 bitova) i onda ovih 6 stavljas u neku promenljivu.
Nadam se da ti je jasnije.
-
- Posts: 22
- Joined: 18-12-2009, 21:21
Re: Ir kontrola
sad je malo jasnije
al ako bi mogao staviti neki primer
hvala
al ako bi mogao staviti neki primer
hvala
Re: Ir kontrola
ja pisem u mikroC,ako ti ovo nesto znaci:
while(PORTA.F0)
for(i=0;i<8;i++) {
Delay_us(1778);
}
for(i=0;i<6,i++) {
if(PORTA.F0) x=x*2;
else x=x*2+1;
Delay_us(1778);
}
na kraju dobijas x koji je 6to bitni broj,i odgovara sestobitnom kodu naredbe sa TSOPa
Naravno,izlaz sa TSOPa je vezan na PORTA.F0
Ima i varijanta da se namesti timer na 1778us,pa da koristis interapt,tako da program moze da radi nesto drugo,a ti ovu promenljivu x menjas u interaptu kad god ti timer prebaci(overflow).
while(PORTA.F0)
for(i=0;i<8;i++) {
Delay_us(1778);
}
for(i=0;i<6,i++) {
if(PORTA.F0) x=x*2;
else x=x*2+1;
Delay_us(1778);
}
na kraju dobijas x koji je 6to bitni broj,i odgovara sestobitnom kodu naredbe sa TSOPa
Naravno,izlaz sa TSOPa je vezan na PORTA.F0
Ima i varijanta da se namesti timer na 1778us,pa da koristis interapt,tako da program moze da radi nesto drugo,a ti ovu promenljivu x menjas u interaptu kad god ti timer prebaci(overflow).
-
- Posts: 22
- Joined: 18-12-2009, 21:21
Re: Ir kontrola
zasto je
x=x*2
a
zasto
x=x*2+1
samo to nije jasno odakle se to dobije zasta sluzi
zasto x ima bas taj izraz
x=x*2
a
zasto
x=x*2+1
samo to nije jasno odakle se to dobije zasta sluzi
zasto x ima bas taj izraz
Re: Ir kontrola
na pocetku x ti je nula ili binarno x=000000.
kad primas prvi bit,ako je tsop na log1 to znaci da je taj bit nula,tako da je x=x*2=0*2 to jest nula.
ako je tsop na log 0 znaci da je taj bit bio jedan,pa je onda x=x*2+1,odnosno x=0*2+1=1.ili binarno x=000001
kod sledeceg bita(recimo da je prvi bio 1) imas slucaj da ako je tsop na 0 (drugi bit je 1) onda je x=1*2=2,ili binarno 000010.
u slucaju da je drugi bit isto log1 onda je x=x*2+1,odnosno 1*2+1=3 ili binarno 000011
tako za svih 6 bitova.
Znaci da x moze da bude od 0 do 63 u zavisnosti koji mu kod salje daljinski.(Mislim da bas ne moze da bude 0,jer ne verujem da daljinski salje kod naredbe 000000)
kad primas prvi bit,ako je tsop na log1 to znaci da je taj bit nula,tako da je x=x*2=0*2 to jest nula.
ako je tsop na log 0 znaci da je taj bit bio jedan,pa je onda x=x*2+1,odnosno x=0*2+1=1.ili binarno x=000001
kod sledeceg bita(recimo da je prvi bio 1) imas slucaj da ako je tsop na 0 (drugi bit je 1) onda je x=1*2=2,ili binarno 000010.
u slucaju da je drugi bit isto log1 onda je x=x*2+1,odnosno 1*2+1=3 ili binarno 000011
tako za svih 6 bitova.
Znaci da x moze da bude od 0 do 63 u zavisnosti koji mu kod salje daljinski.(Mislim da bas ne moze da bude 0,jer ne verujem da daljinski salje kod naredbe 000000)