PIC12F629 light dimmer .hex projekt

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

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
trax
Administrator sajta
Administrator sajta
Posts: 3509
Joined: 08-01-2005, 18:04
Location: 75k, BA
Contact:

Re: PIC12F629 light dimmer .hex projekt

Post by trax »

Ljudi, jel iko uspio naruciti onaj TSOP IR prijemnik sa VISHAY-a? (sample)

Meni odbijaju konstantno, registrovo se ja maloprije i odbili :roll:
User avatar
pejky
Odlično uznapredovao
Odlično uznapredovao
Posts: 701
Joined: 07-01-2006, 21:33
Location: Tuzla
Contact:

Re: PIC12F629 light dimmer .hex projekt

Post by pejky »

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 :lol:
...kada posisaš sva vesla, tada Nikola si Tesla, s pravom mozes reci da je struja tvoja...

http://www.pik.ba/profil/pejky/
vukboban
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 212
Joined: 05-12-2008, 17:49
Location: Pancevo

Re: PIC12F629 light dimmer .hex projekt

Post by vukboban »

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"!
Attachments
NEC DIMMER.zip
(2.93 KiB) Downloaded 337 times
vukboban
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 212
Joined: 05-12-2008, 17:49
Location: Pancevo

Re: PIC12F629 light dimmer .hex projekt

Post by vukboban »

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.
vukboban
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 212
Joined: 05-12-2008, 17:49
Location: Pancevo

Re: PIC12F629 light dimmer .hex projekt

Post by vukboban »

trax wrote:Ljudi, jel iko uspio naruciti onaj TSOP IR prijemnik sa VISHAY-a? (sample)

Meni odbijaju konstantno, registrovo se ja maloprije i odbili :roll:
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)
User avatar
trax
Administrator sajta
Administrator sajta
Posts: 3509
Joined: 08-01-2005, 18:04
Location: 75k, BA
Contact:

Re: PIC12F629 light dimmer .hex projekt

Post by trax »

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

Re: PIC12F629 light dimmer .hex projekt

Post by trax »

vukboban wrote:Evo koda pisanog u mikroC,nije testiran na hardveru,ali mislim da je OK...
Zasto u interrupt rutinama uradis ovo:

Code: Select all

OPTION_REG=OPTION_REG | 0X05; //  ponovo podesavam prescaler(???)
I zasto regulises samo jednu poluperiodu a ne i drugu?
vukboban
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 212
Joined: 05-12-2008, 17:49
Location: Pancevo

Re: PIC12F629 light dimmer .hex projekt

Post by vukboban »

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)
Last edited by vukboban on 24-12-2008, 00:27, edited 1 time in total.
User avatar
trax
Administrator sajta
Administrator sajta
Posts: 3509
Joined: 08-01-2005, 18:04
Location: 75k, BA
Contact:

Re: PIC12F629 light dimmer .hex projekt

Post by trax »

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...
vukboban
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 212
Joined: 05-12-2008, 17:49
Location: Pancevo

Re: PIC12F629 light dimmer .hex projekt

Post by vukboban »

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

Re: PIC12F629 light dimmer .hex projekt

Post by trax »

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 :)
Attachments
shema.png
Shema traxovog Light Dimmera v1
(21.44 KiB) Downloaded 161 times
vukboban
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 212
Joined: 05-12-2008, 17:49
Location: Pancevo

Re: PIC12F629 light dimmer .hex projekt

Post by vukboban »

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
Parac
Posts: 12
Joined: 22-12-2008, 18:01

Re: PIC12F629 light dimmer .hex projekt

Post by Parac »

ohoooo ovdje je zivo veceras, a nadajmo se da cemo uskoro imati i rjesenje za ovaj projekat! :D
User avatar
trax
Administrator sajta
Administrator sajta
Posts: 3509
Joined: 08-01-2005, 18:04
Location: 75k, BA
Contact:

Re: PIC12F629 light dimmer .hex projekt

Post by trax »

Evo da vidis TACNO za koliko ih okidam

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
Usput, ima greska od 20us koju nisam jos uveo u ove brojeve.
vukboban
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 212
Joined: 05-12-2008, 17:49
Location: Pancevo

Re: PIC12F629 light dimmer .hex projekt

Post by vukboban »

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

Re: PIC12F629 light dimmer .hex projekt

Post by trax »

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... :cry:
Parac
Posts: 12
Joined: 22-12-2008, 18:01

Re: PIC12F629 light dimmer .hex projekt

Post by Parac »

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 :D
vukboban
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 212
Joined: 05-12-2008, 17:49
Location: Pancevo

Re: PIC12F629 light dimmer .hex projekt

Post by vukboban »

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
Last edited by vukboban on 24-12-2008, 01:06, edited 1 time in total.
User avatar
trax
Administrator sajta
Administrator sajta
Posts: 3509
Joined: 08-01-2005, 18:04
Location: 75k, BA
Contact:

Re: PIC12F629 light dimmer .hex projekt

Post by trax »

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...
vukboban
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 212
Joined: 05-12-2008, 17:49
Location: Pancevo

Re: PIC12F629 light dimmer .hex projekt

Post by vukboban »

Srbija,Pancevo
Post Reply