PIC12F629 light dimmer .hex projekt
Moderators: pedja089, stojke369, [eDo], trax
Re: PIC12F629 light dimmer .hex projekt
Ljudi, jel iko uspio naruciti onaj TSOP IR prijemnik sa VISHAY-a? (sample)
Meni odbijaju konstantno, registrovo se ja maloprije i odbili
Meni odbijaju konstantno, registrovo se ja maloprije i odbili
Re: PIC12F629 light dimmer .hex projekt
U zadnjih 7-8 dana sve zahtjeve za Sample odbijaju.
Bas su mi neke stvarcice zatrebale, i pokusao sam sa 2-3 razlicita accounta (jedan novi) i na svaki dobijem odbijenicu.
Izgleda da su i oni skontali sta "balkanci" rade
Bas su mi neke stvarcice zatrebale, i pokusao sam sa 2-3 razlicita accounta (jedan novi) i na svaki dobijem odbijenicu.
Izgleda da su i oni skontali sta "balkanci" rade
...kada posisaš sva vesla, tada Nikola si Tesla, s pravom mozes reci da je struja tvoja...
http://www.pik.ba/profil/pejky/
http://www.pik.ba/profil/pejky/
Re: PIC12F629 light dimmer .hex projekt
Evo koda pisanog u mikroC,nije testiran na hardveru,ali mislim da je OK,nesto me zajebava ALLPIC,sutra dobijam drugi,vezujem elemente i probam kako radi.
Ako neko hoce neka proba,ali na svoju odgovornost!!!
mada...12F629 kosta cca 1.5 eur,tako da i nije neka steta ako crkne...
i,da kod je pisan za NEC protokol,samo zato sto mi je taj daljinski prvi dosao do ruke,znaci nece da radi sa RC5,ali i to prepravljam za neki dan,samo da isprobam da li ovo radi
Pozdrav svima!
P.S> ima puno komentara da bi mogli da ukapirate"sta je pisac hteo da kaze"!
Ako neko hoce neka proba,ali na svoju odgovornost!!!
mada...12F629 kosta cca 1.5 eur,tako da i nije neka steta ako crkne...
i,da kod je pisan za NEC protokol,samo zato sto mi je taj daljinski prvi dosao do ruke,znaci nece da radi sa RC5,ali i to prepravljam za neki dan,samo da isprobam da li ovo radi
Pozdrav svima!
P.S> ima puno komentara da bi mogli da ukapirate"sta je pisac hteo da kaze"!
- Attachments
-
- NEC DIMMER.zip
- (2.93 KiB) Downloaded 337 times
Re: PIC12F629 light dimmer .hex projekt
mala ispravka,sad sam tek video,na semi je taster na GP4,a gate na GP0,ja sam malo obrnuo,TSOP mi je na GP0,taster na GP1,a gate triaca na GP4
ispravicu kod,mada moze da se prepravi i sema
I jos nesto,ako neko moze da napravi PCB neka postuje ovde,samo mora da se obrati paznja na dimenzije i fizicki polozaj tastera i TSOPa da bi sve moglo da se"ubudzi" na klasican prekidac-taster za sijalicu.
ispravicu kod,mada moze da se prepravi i sema
I jos nesto,ako neko moze da napravi PCB neka postuje ovde,samo mora da se obrati paznja na dimenzije i fizicki polozaj tastera i TSOPa da bi sve moglo da se"ubudzi" na klasican prekidac-taster za sijalicu.
Re: PIC12F629 light dimmer .hex projekt
Sto se tice tsopa,meni radi i 36kHz kao i 38kHZ,znaci i jedan i drugi lepo dekodiraju signal,pa mozes da stavis bilo koji,a i nisu toliko skupi da mora da se narucuje sample -115 din u radio klubu(1.5 eur)trax wrote:Ljudi, jel iko uspio naruciti onaj TSOP IR prijemnik sa VISHAY-a? (sample)
Meni odbijaju konstantno, registrovo se ja maloprije i odbili
Re: PIC12F629 light dimmer .hex projekt
Ma nije problem u parama, nego ga nemam gdje kupit. Sutra cu vidjeti u ovoj radnji. Bio sam juce i nemaju ni tiristor... nisam ni smio traziti TSOP
Re: PIC12F629 light dimmer .hex projekt
Zasto u interrupt rutinama uradis ovo:vukboban wrote:Evo koda pisanog u mikroC,nije testiran na hardveru,ali mislim da je OK...
Code: Select all
OPTION_REG=OPTION_REG | 0X05; // ponovo podesavam prescaler(???)
Re: PIC12F629 light dimmer .hex projekt
ma za taj option reg sam nesto gledao u datasheetu od PICa,i tamo pise da svaki upis u TMR0 ponistava prescaler,ali nisam ja to izgleda dobro skapirao,ne ponistava se izgleda odnos prescalera(1:64),nego se taj osmobitni registar postavlja na nula,tako da to mislim da nije potrebno,ali ne smeta!
sto se ovog drugog dela tice,ovo je kod:
if(INTCON.F2==1){ // da li je interupt izazvao TMR0 ?
TMR0=DELAYFULL; //stavljam vrednost 10ms u TMR0(za neg.poluperiodu)
OPTION_REG=OPTION_REG | 0X05; //podesavam prescaler(???)
GPIO.F4=1; //palim triak
Delay_us(50); //u trajanju od 50us
GPIO.F4=0; //gasim triak
INTCON=INTCON & 0XFB;
pogledaj drugi deo rutine onaj kada odbroji TMR;malo (1,2us)pre nego sto okinem triac,stavljam vrednost DELAYFULL u TMR0.taj DELAYFULL je ustvari period od 10ms,tako da kad okinem triak u pozitivnoj poluperiodi,u isto vreme pocinje da broji timer,tako da ce posle 10ms opet da generise interupt.
Znaci okidam triak u pozitivnoj u nekom vremenskom trenutku (0.5-9.5ms od detekcije nule) ,i kada u istom tom trenutku stavim timer na 10ms,on ce opet da okine triac tacno 10ms posle onog okidanja,t.j. na istom mestu kao i prvi put,samo u negativnoj poluperiodi.
Nadam se da si razumeo sta mi je bila ideja
Pozdrav
P.S. mozda treba jos malo eksperimentisati sa tim vrednostima za DELAYMAX,DELAYMIN jer ne znam bas tacno koliki minimalni napon treba da ima triac da bi proveo;ako je suvise mali napon(ako ga okidam odmah posle nule)mozda nece da otvori,u tom slucaju treba malo povecati kasnjenje(smanjiti DELAYMIN).
Isto tako ako je vlakno i dalje crveno kada treba da je off treba malo povecati DELAYMAX.
Takodje ne znam ni da li je dovoljno 50us na gejtu da bi otvorio,ali ako nije slobodno moze da se poveca do nekih 100,200,300(vise ne bi smelo,jer bi se dogodilo da zbog interupta promasi neki bit od daljinskog)
sto se ovog drugog dela tice,ovo je kod:
if(INTCON.F2==1){ // da li je interupt izazvao TMR0 ?
TMR0=DELAYFULL; //stavljam vrednost 10ms u TMR0(za neg.poluperiodu)
OPTION_REG=OPTION_REG | 0X05; //podesavam prescaler(???)
GPIO.F4=1; //palim triak
Delay_us(50); //u trajanju od 50us
GPIO.F4=0; //gasim triak
INTCON=INTCON & 0XFB;
pogledaj drugi deo rutine onaj kada odbroji TMR;malo (1,2us)pre nego sto okinem triac,stavljam vrednost DELAYFULL u TMR0.taj DELAYFULL je ustvari period od 10ms,tako da kad okinem triak u pozitivnoj poluperiodi,u isto vreme pocinje da broji timer,tako da ce posle 10ms opet da generise interupt.
Znaci okidam triak u pozitivnoj u nekom vremenskom trenutku (0.5-9.5ms od detekcije nule) ,i kada u istom tom trenutku stavim timer na 10ms,on ce opet da okine triac tacno 10ms posle onog okidanja,t.j. na istom mestu kao i prvi put,samo u negativnoj poluperiodi.
Nadam se da si razumeo sta mi je bila ideja
Pozdrav
P.S. mozda treba jos malo eksperimentisati sa tim vrednostima za DELAYMAX,DELAYMIN jer ne znam bas tacno koliki minimalni napon treba da ima triac da bi proveo;ako je suvise mali napon(ako ga okidam odmah posle nule)mozda nece da otvori,u tom slucaju treba malo povecati kasnjenje(smanjiti DELAYMIN).
Isto tako ako je vlakno i dalje crveno kada treba da je off treba malo povecati DELAYMAX.
Takodje ne znam ni da li je dovoljno 50us na gejtu da bi otvorio,ali ako nije slobodno moze da se poveca do nekih 100,200,300(vise ne bi smelo,jer bi se dogodilo da zbog interupta promasi neki bit od daljinskog)
Last edited by vukboban on 24-12-2008, 00:27, edited 1 time in total.
Re: PIC12F629 light dimmer .hex projekt
A-ha, skontao sam. Super ideja
Ja sam to rijesio malo drugacije... evo upravo nesto prepravljam u svom source-kodu. Za sada imam samo ovu regulaciju rijesenu u 10 mogucih vrijednosti-koraka. Slijedece je neki univerzalni prijemnik IR kodova.
To pisem u asembleru...
Ja sam to rijesio malo drugacije... evo upravo nesto prepravljam u svom source-kodu. Za sada imam samo ovu regulaciju rijesenu u 10 mogucih vrijednosti-koraka. Slijedece je neki univerzalni prijemnik IR kodova.
To pisem u asembleru...
Re: PIC12F629 light dimmer .hex projekt
ajde ako ti nije problem,reci mi kako si ti to resio,da li detektujes svaki prolazak kroz nulu?i u + i u - ?
a sto se tice ovog univerzalnog nije ni to problem,vidi kako sam ja to zamislio:
uzecemo samo NEC i RC5:
kod neca ide 9ms signal na pocetku,a kod RC5 je 889us
kad pocne da prima prvi bit,napravis pauzu od 900us,posle toga opet testiras,ako je i dalje HIGH(ustvari LOW,jer TSOP invertuje signal) onda sigurno nije RC5 nego je NEC
pogodnim izborom vremena tih testiranja,ili vise uzastopnih testiranja mogu tacno da odrede koji je protokol u pitanju mnogo pre nego sto pocne prijem prvog bita.jedino je tu malo vremenski zajebano,tako da bi moralo onda da se namesti da je impuls na gejtu sto kraci da ne bi interupt rutina sve to pomerila i poremetila koncepciju.mislim da bi mogli ovako da se detektuju svi poznatiji protokoli osim mozda ITT kod kojeg HIGH traje samo 10 us
I,da asembler skoro uopste ne poznajem...
a sto se tice ovog univerzalnog nije ni to problem,vidi kako sam ja to zamislio:
uzecemo samo NEC i RC5:
kod neca ide 9ms signal na pocetku,a kod RC5 je 889us
kad pocne da prima prvi bit,napravis pauzu od 900us,posle toga opet testiras,ako je i dalje HIGH(ustvari LOW,jer TSOP invertuje signal) onda sigurno nije RC5 nego je NEC
pogodnim izborom vremena tih testiranja,ili vise uzastopnih testiranja mogu tacno da odrede koji je protokol u pitanju mnogo pre nego sto pocne prijem prvog bita.jedino je tu malo vremenski zajebano,tako da bi moralo onda da se namesti da je impuls na gejtu sto kraci da ne bi interupt rutina sve to pomerila i poremetila koncepciju.mislim da bi mogli ovako da se detektuju svi poznatiji protokoli osim mozda ITT kod kojeg HIGH traje samo 10 us
I,da asembler skoro uopste ne poznajem...
Re: PIC12F629 light dimmer .hex projekt
Prvo pogledati shemu.
Sad da pokusam objasniti. Prvo se pokrene interrupt na GP2/INT pin-u, bas kao kod tebe. On se desava i na opadajucu i na rastucu ivicu signala, znaci jednom ovako drugi puta onako. To se prebacuje u interrupt rutini svaki put da bi mogao detektovati opadanje i porast poluperiode.
1. Znaci kada pozitivna poluperioda pocne da raste, desi se interrupt i ja podesim timer TMR0 (bas kao i ti) sa odredjenom pauzom sto zavisi od trenutnog podesenja nivoa svjetla, obrnem ivicu detekcije GP2/INT pina i vratim se u MAIN() da radim nesto...
2. Kada se pojavi TMR0 interrupt, ja okinem triac na nekih 25us kako pise u njegovoj dokumentaciji i totalno ugasim TMR0 overflow timer. Njega ce opet podesiti i ukljuciti GP2/INT interrupt.
To je sve, sad ide u krug. Naredna detekcija je kada ova poluperioda opadne, tojest kada krene ona negativna.
Sa ovim sam se totalno sinhronizovao na sinusoidu
Sad da pokusam objasniti. Prvo se pokrene interrupt na GP2/INT pin-u, bas kao kod tebe. On se desava i na opadajucu i na rastucu ivicu signala, znaci jednom ovako drugi puta onako. To se prebacuje u interrupt rutini svaki put da bi mogao detektovati opadanje i porast poluperiode.
1. Znaci kada pozitivna poluperioda pocne da raste, desi se interrupt i ja podesim timer TMR0 (bas kao i ti) sa odredjenom pauzom sto zavisi od trenutnog podesenja nivoa svjetla, obrnem ivicu detekcije GP2/INT pina i vratim se u MAIN() da radim nesto...
2. Kada se pojavi TMR0 interrupt, ja okinem triac na nekih 25us kako pise u njegovoj dokumentaciji i totalno ugasim TMR0 overflow timer. Njega ce opet podesiti i ukljuciti GP2/INT interrupt.
To je sve, sad ide u krug. Naredna detekcija je kada ova poluperioda opadne, tojest kada krene ona negativna.
Sa ovim sam se totalno sinhronizovao na sinusoidu
- Attachments
-
- shema.png
- Shema traxovog Light Dimmera v1
- (21.44 KiB) Downloaded 161 times
Re: PIC12F629 light dimmer .hex projekt
jos samo nesto da dodam,mislim da ti u asembleru mozes sve da odradis mnogo tacnije i preciznije sto se tice vremena,ti kad napises tri instrukcije tacno znas da to traje 3us,ili mozda malo vise ako je grananje,ali u svakom trenutku znas koliko ti sta traje.
Ja u C nemam pojma koliko sta traje,ali znam da je mnogo vise ,posebno sa onim delovima gde brojim do 200000,pa i 2 miliona,predpostavljam da je mnogo vise od onoga sto meni treba,pa cu to morati da smanjim,ali sve cu to experimentalno.
Mada i nije strasno ako recimo treba da okinem triac 5ms posle nule,a ja ga okinem 5.05ms
ipak je asembler sa te strane mnogo bolji,kad je sve ovako vremenski osetljivo
Ja u C nemam pojma koliko sta traje,ali znam da je mnogo vise ,posebno sa onim delovima gde brojim do 200000,pa i 2 miliona,predpostavljam da je mnogo vise od onoga sto meni treba,pa cu to morati da smanjim,ali sve cu to experimentalno.
Mada i nije strasno ako recimo treba da okinem triac 5ms posle nule,a ja ga okinem 5.05ms
ipak je asembler sa te strane mnogo bolji,kad je sve ovako vremenski osetljivo
Re: PIC12F629 light dimmer .hex projekt
ohoooo ovdje je zivo veceras, a nadajmo se da cemo uskoro imati i rjesenje za ovaj projekat!
Re: PIC12F629 light dimmer .hex projekt
Evo da vidis TACNO za koliko ih okidam
Usput, ima greska od 20us koju nisam jos uveo u ove brojeve.
Code: Select all
TblFreq movfw LEVEL
addwf PCL, 1 ; hop
retlw 0 ; mora biti ova invalidna lokacija na pocetku, radi optimizovane interrupt rutine (LEVEL moze biti 0-10) !
IFDEF FREQ50
; 50 Hz - OK
retlw (d'255' - d'148') ; 9.472ms
retlw (d'255' - d'133') ; 8.512ms
retlw (d'255' - d'117') ; 7.488ms
retlw (d'255' - d'102') ; 6.528ms
retlw (d'255' - d'86') ; 5.504ms
retlw (d'255' - d'71') ; 4.544ms
retlw (d'255' - d'55') ; 3.520ms
retlw (d'255' - d'39') ; 2.496ms
retlw (d'255' - d'24') ; 1.536ms
retlw (d'255' - d'8') ; 0.512ms, prescaler je 64 pa formula je: REZ=255-(us/64)
ELSE
; 60 Hz - OK
retlw (d'255' - d'125') ; 8.000ms
retlw (d'255' - d'113') ; 7.232ms
retlw (d'255' - d'99') ; 6.336ms
retlw (d'255' - d'86') ; 5.504ms
retlw (d'255' - d'73') ; 4.672ms
retlw (d'255' - d'60') ; 3.840ms
retlw (d'255' - d'46') ; 2.944ms
retlw (d'255' - d'32') ; 2.048ms
retlw (d'255' - d'19') ; 1.216ms
retlw (d'255' - d'6') ; 0.384ms, prescaler je 64 pa formula je: REZ=255-(us/64)
ENDIF
Re: PIC12F629 light dimmer .hex projekt
tvoj pristup je bolji,jer je preciznije kad ti sama sinusoida sinhronizuje nego kad to radi program
ti ga tacno sinhronizujes jednom na svakih 10ms,dok je to kod mene na svakih 20ms
Vidis ja se uopste nisam setio da menjam to(RISING-FALLING edge) kod detekcije!
ali za to valjda i sluzi forum,da razmenjujemo iskustva!
ti ga tacno sinhronizujes jednom na svakih 10ms,dok je to kod mene na svakih 20ms
Vidis ja se uopste nisam setio da menjam to(RISING-FALLING edge) kod detekcije!
ali za to valjda i sluzi forum,da razmenjujemo iskustva!
Re: PIC12F629 light dimmer .hex projekt
Ne znam ni ja kako mi je to palo na pamet
Nadam se da cu u ovih par dana dobiti TSOP od DaTi-ja i triac od Smjeska da ovo konacno probam. Nestalo ih u radnji ovdje...
Nadam se da cu u ovih par dana dobiti TSOP od DaTi-ja i triac od Smjeska da ovo konacno probam. Nestalo ih u radnji ovdje...
Re: PIC12F629 light dimmer .hex projekt
Ehh pa nista dobro u ovim nasim radnjama nema, ja bas kontam da navratim do te radnje i da kupim potrebne dijelove pa da se bacim na posao
Re: PIC12F629 light dimmer .hex projekt
Triaca imam ja 5,6kom povadjenih sa neke ploce iz firme(TIC216) pa mogao bih da ti posaljem,samo dok to stigne...
a TSOP imam na 38kHz,ali prima odlicno signal od 36kHz,nazalost samo 1kom
a TSOP imam na 38kHz,ali prima odlicno signal od 36kHz,nazalost samo 1kom
Last edited by vukboban on 24-12-2008, 01:06, edited 1 time in total.
Re: PIC12F629 light dimmer .hex projekt
Ako ne stigne u ovih par dana, izvadicu ga iz TV-a
A triac - nemam pojma odakle, hehe. U kojoj si ti drzavi?
edit: znam gdje si. Ako hoces, mozes mi poslati triac! Dacu ti adresu...
A triac - nemam pojma odakle, hehe. U kojoj si ti drzavi?
edit: znam gdje si. Ako hoces, mozes mi poslati triac! Dacu ti adresu...
Re: PIC12F629 light dimmer .hex projekt
Srbija,Pancevo