Interesuje me kako se vrsi bezicna komunikacija izmedju 2 PIC-a ? Sve komunikacije koje sam video imaju 2 zice, a ukoliko stavim 2 IR diode i 2 prijemnika signali ce da se mesaju. Da li neko moze da mi kaze kako da koristim komunikaciju samo preko 1 zice, ili kako da resim bezicnu komunikaciju preko InfraRed-a sa 2 predajnika/prijemnika? Koristim kontroler 16f628a. Ukoliko je ovo nemoguce sa ovim kontrolerom, predlozite koji da uzmem ali da nema preko 20pin ukoliko je to moguce.
PIC IR komunikacija
Zaključano
Zakačeno
Modulises dva signala i resio si problem... mozes sa kojim god kontrolerom hoces...
Pozdrav.
Pozdrav.
Potpis
There are only 10 types of people in the world:
those who understand binary, and those who don't.
those who understand binary, and those who don't.
Mozda je glupo pitanje, ali kako da modulisem i sta time dobijem ?
Nikola,
razmisli malo.
Mozda moze frekvencija od 20 kHz da bude log 1, a od 40 kHz log 0.
Ima jos mnogo nacina, ali eto najlaksi za shvatiti.
razmisli malo.
Mozda moze frekvencija od 20 kHz da bude log 1, a od 40 kHz log 0.
Ima jos mnogo nacina, ali eto najlaksi za shvatiti.
Ne razumem zasto bi ti se mesali signali ako imas 2 IR diode i 2 prijemnika!
Ako je recimo jedan kontroler u stanju predaje(predajnik),naravno de nece da gleda ono sto dobija na prijemu(zanemarice to,sve dok je u stanju predaje).
Najlakse ti je u modu master-slave,tako da je uvek jedan u stanju prijema(slave),i nista ne predaje dok mu to master ne dozvoli,a master ima zadatak da ga svakih xy milisekundi pita da li ima nesto za predaju,ovaj odgovara sa da ili ne itd...
EDIT za @veselinovic:
Malo je nezgodno to sa promenom frekvencije,jer ti IR prijemnici(recimo raznorazni TSOP-ovi) uglavnom imaju fiksnu frekvenciju (sa +/- par kHz)na kojoj rade,tako da je mnogo bolje da je frekvencija stalna,stalna je i duzina jednog bita(npr 1ms),a log 0 ili log 1 se razlikuju tako sto je recimo log1=500ms ima signala pa 500ms nema,a log0=500ms nema signala pa 500ms ima. HINT: RC5 protokol...
Ako je recimo jedan kontroler u stanju predaje(predajnik),naravno de nece da gleda ono sto dobija na prijemu(zanemarice to,sve dok je u stanju predaje).
Najlakse ti je u modu master-slave,tako da je uvek jedan u stanju prijema(slave),i nista ne predaje dok mu to master ne dozvoli,a master ima zadatak da ga svakih xy milisekundi pita da li ima nesto za predaju,ovaj odgovara sa da ili ne itd...
EDIT za @veselinovic:
Malo je nezgodno to sa promenom frekvencije,jer ti IR prijemnici(recimo raznorazni TSOP-ovi) uglavnom imaju fiksnu frekvenciju (sa +/- par kHz)na kojoj rade,tako da je mnogo bolje da je frekvencija stalna,stalna je i duzina jednog bita(npr 1ms),a log 0 ili log 1 se razlikuju tako sto je recimo log1=500ms ima signala pa 500ms nema,a log0=500ms nema signala pa 500ms ima. HINT: RC5 protokol...
Ma OK, znam ja odavno desetinu nacina, ali Nikola je pocetnik i treba da koristi malo mastu ili gugl.
I trazio je sa IC diodama a ne TSOP-ovima.
I trazio je sa IC diodama a ne TSOP-ovima.
@vukboban
a zasto TSOP (ili SFH) mora da bude prijemnik?
@nikolapirot
veselinovic ti je dao ideju (tj. smernicu), na tebi je da razradis po svom.
Naravno da postoji brdo resenja, ali poenta je da shvatis ono o cemu se prica...
Pozdrav.
a zasto TSOP (ili SFH) mora da bude prijemnik?
@nikolapirot
veselinovic ti je dao ideju (tj. smernicu), na tebi je da razradis po svom.
Naravno da postoji brdo resenja, ali poenta je da shvatis ono o cemu se prica...
Pozdrav.
Potpis
There are only 10 types of people in the world:
those who understand binary, and those who don't.
those who understand binary, and those who don't.
Moze li da PROTEUS baguje u vezi simulacije PIC-a ? Nece da isimulira predajnik i prijemnik, evo koda pa neka me neko ispravi gde gresim
Predajnik izvrsi predaju kad mu se na RB0 dovede signal
A prijemnik dobijeni kod prikaze na RB
Nista se ne dogadja kad pokusam da pustim ovaj kod. Da li bi neko mogao da mi kaze ima li greske u programu ?
Predajnik izvrsi predaju kad mu se na RB0 dovede signal
Code:
#DEFINE PAGE0 bcf STATUS,5
#DEFINE PAGE1 bsf STATUS,5
#include <P16f628a.INC>
ORG 0x000
goto main
ORG 0x4
main: PAGE1
bsf TRISB,0
PAGE0
loop: btfss PORTB,0
goto loop
bsf TRISB,1
bsf TRISB,2
movlw D'25'
movwf SPBRG
bcf TXSTA,SYNC
PAGE0
bsf RCSTA,SPEN
movlw B'11110000'
movwf TXREG
PAGE1
bsf PIE1,TXIE
loop1:goto loop1
END
#DEFINE PAGE0 bcf STATUS,5
#DEFINE PAGE1 bsf STATUS,5
#include <P16f628a.INC>
ORG 0x000
goto main
ORG 0x4
main: PAGE1
bsf TRISB,0
PAGE0
loop: btfss PORTB,0
goto loop
bsf TRISB,1
bsf TRISB,2
movlw D'25'
movwf SPBRG
bcf TXSTA,SYNC
PAGE0
bsf RCSTA,SPEN
movlw B'11110000'
movwf TXREG
PAGE1
bsf PIE1,TXIE
loop1:goto loop1
END
A prijemnik dobijeni kod prikaze na RB
Code:
#DEFINE PAGE0 bcf STATUS,5
#DEFINE PAGE1 bsf STATUS,5
#include <P16f628a.INC>
brojac1 equ 0x21
brojac2 equ 0x22
brojac3 equ 0x23
ORG 0x000
goto main
ORG 0x4
PAGE0
movf RCREG,W
movwf PORTB
retfie
main: movlw B'00000110'
PAGE1
movwf TRISB
PAGE0
clrf PORTB
PAGE1
movlw D'25'
movwf SPBRG
bcf TXSTA,SYNC
PAGE0
bsf RCSTA,SPEN
bsf RCSTA,CREN
PAGE1
bsf PIE1,RCIE
bsf INTCON,GIE
loop: goto loop
END
#DEFINE PAGE0 bcf STATUS,5
#DEFINE PAGE1 bsf STATUS,5
#include <P16f628a.INC>
brojac1 equ 0x21
brojac2 equ 0x22
brojac3 equ 0x23
ORG 0x000
goto main
ORG 0x4
PAGE0
movf RCREG,W
movwf PORTB
retfie
main: movlw B'00000110'
PAGE1
movwf TRISB
PAGE0
clrf PORTB
PAGE1
movlw D'25'
movwf SPBRG
bcf TXSTA,SYNC
PAGE0
bsf RCSTA,SPEN
bsf RCSTA,CREN
PAGE1
bsf PIE1,RCIE
bsf INTCON,GIE
loop: goto loop
END
Nista se ne dogadja kad pokusam da pustim ovaj kod. Da li bi neko mogao da mi kaze ima li greske u programu ?