Sari la conținut
ELFORUM - Forumul electronistilor

Automat cu PIC 12f629 sau 12F675


VASTech

Postări Recomandate

Vino cu ceva detalii, ce masuratori ai facut ? ce schema ai utilizat pentru comanda triacului ? ....etc

Schema pentru comanda triacului este aprox cea din postul lui UDAR

viewtopic.php?f=11&t=162052#p1459043

 

 

Nu prea inteleg ce vrei sa spui, modulatorul de puls electric genereaza un semnal dreptunghiular cu amplitudinea de 5V in cazul nostru (ce curbe sa obtin aici ?) si cu durata unui puls de 1% sau mai mare, in cazul nostru de 10% si creste progresiv din 10% in 10% pana la 100%, diferenta de potential la capetele filamentului nu este deloc periculoasa, in acest caz nici detector de trecere prin zero nu ti-ar trebui.

 

Voiam sa zic ca in momentul in care trece de la 100% (dupa cele 3 minute) la 30%, sa o faca tot treptat 100%, 90%, 80%,... pana la 30%, si la fel, cand trece de la 30% la 0 sa fie: 30%, 20%.. 0%. Nu brusc de la 100% la 30%. Vezi graficul atasat.

 

 

Reluarea temporizarii de 3 minute se poate face, dar nu in orice moment, decat dupa epuizarea celor 3 secunde.

Pana una alta incearca si versiunea asta de program.

 

Cand m-am referit la resetare, am vrut sa zic, asa:

 

Explic "babeste", sper sa ma intelegi :)

 

Daca in orice moment dupa ce trece de punctul "B" se apasa din nou pe buton, sa se reia temporizarea din punctul "B", daca suntem intre "C" si "F" , sa sara din nou la "B" dar sa urce in rampa, nu brusc, exact ca la inceput (intre punctele "A" si "B").

 

Nu stiu cum sa explic altfel, sper sa intelegi, daca nu mai incercam. :)

 

P.S. Mai am o intrebare... Ce semnal aplic pe pin 5? Semnal sinusoidal de la retea sau impuls de zero-cross?

 

Iti multumesc pentru tot, sper sa o scoatem la capat! Stima!

post-18487-139829750277_thumb.gif

Link spre comentariu
  • Răspunsuri 63
  • Creat
  • Ultimul Răspuns

@dorcky nu explicatii babesti trebuie sa dai, ci explicatii tehnice, de asta am nevoie si cat mai coerent.Sigur ca vom finaliza cu brio, masuratorile le-ai facut pe un osciloscop ? cum ai stabilit daca triacul este comandat sau nu la trecerea prin zero? In primul post al tau, dupa temporizarea de 3 minute ai vrut o temporizare de 20 de secunde cu 25% - 30% din sursa de 220Vca, in grafic ceri 3 - 20 - 3 secunde, dupa cele 3 minute.

Voiam sa zic ca in momentul in care trece de la 100% (dupa cele 3 minute) la 30%, sa o faca tot treptat 100%, 90%, 80%,... pana la 30%, si la fel, cand trece de la 30% la 0 sa fie: 30%, 20%.. 0%. Nu brusc de la 100% la 30%. Vezi graficul atasat.

Ceea ce ceri aici este diferit de ce ai cerut in primul post si sa-mi fie cu iertare dar nu ghicesc daca nu te hotaresti ce vrei. Bine, maine mai discutam si pregatesc alta versiune de program.

P.S. Mai am o intrebare... Ce semnal aplic pe pin 5? Semnal sinusoidal de la retea sau impuls de zero-cross?

Pe portul GP2 printr-un divizor rezistiv sau de la un traf cu 4V in secundar introduci semnal sinusoidal.In final ce sarcina vei utiliza, rezistiva sau inductiva ?
Link spre comentariu

DA!Imi cer scuze ca nu am fost foarte explicit inca din primul post, este gresala mea si ai dreptate este diferit de ce am spus, defapt nu m-am gandit ca cel mai bine ar fi fost sa fac graficul decat sa fac atata vorbarie. Nu m-am gandit cand am scris ca trecerea de la 100% > 30% si de la 30% > 0% o sa fie facuta brusc, gresala mea!Nu am pus pe osciloscop, posibil sa fi gresit undeva, maine reiau tot montajul de la inceput si iti spun ce nu merge.Sarcina va fi rezistiva (becuri cu filament)Stima!

Link spre comentariu

PWM 0 - 100% in 3 secunde, 3 minute 100%, 3 secunde 90% - 30%, 20 secunde 30%, 3 secunde 20% - 0, detector de trecere prin zero. Resetul actioneaza in plaja de temporizare de 3 minute si de 20 secunde, la epuizarea celor 3 secunde se apasa aceiasi tasta de doua ori si temporizeaza de la 3 secunde, daca vrei totusi de la 3 minute sa-mi comunici. Vezi cum functioneaza cu versiunea asta.PWM-ul scade si creste progresiv asa cum ai cerut.

Link spre comentariu

Salutare tuturor!@ratoiul Multumesc inca odata pentru efortul depus, dar..., nu merge asa cum ar trebui.Iti atasaz o simulare cu PWM sincron cu reteaua, asa cum as vrea si eu sa mearga aplicatia facuta de tine.Ideea e ca impulsurile PWM sunt sincrone cu sinusoida de retea, daca nu, lampa palpaie!Am facut si pe breadboard sa fiu sigur ca nu gresesc, dar e acelasi lucru ca si in simularile din proteus.Daca mai ai chef si rebdare pentru mine te rog in continuare sa ma ajuti!Stima!

Link spre comentariu

Am inceput prin....documetare. De vazut ce s-a mai facut inainde de a ne apuca:

Pe Elf:

http://www.elforum.info/viewtopic.php?f=11&t=2848

dar nu se poate vede ce schema au incercat

 

Pe un alt forum, daca nu se pot face trimiteri care alt forum conf. regulamet rog sa se sterga:

http://www.ccsinfo.com/forum/viewtopic.php?p=140685

 

Schema asemanatoare cu cea postata aici:

http://liana-tech.com/extra/pic-dimmer.png

doar rezistor din baza luui BC e mai mare

 

Si pe youtube:

 

Daca ati putea face un desem cum trebuie sa arate pulsurile date acelui opto care controleaza triacul ar fi mai clar.

Link spre comentariu

@mondan. Eu deocamdată nu am nicio posibilitate de simulare - debugger-ul din mikroC e ..... , iar cu Proteus Demo abia acum încerc să cochetez. De aceea , testele mele sunt de genul - scriu PIC-ul , îl pun pe breadboard - văd ce nu face - rescriu , etc. Eventual adaug secvențe de cod adiționale ca să pot depana. La stilul ăsta consumul de nervi și de timp este enorm.... Dacă vrei, postez la ce am ajuns până acum, cu explicația a ce am gândit, să corectezi greșelile mele... Repet , sunt începător în C ( inclusiv pentru PIC ).

 

Ideea mea era următoarea : implementez două întreruperi - una la trecrea prin zero bazată pe IOC care șterge TMR0 și una la revenirea butonului - bazată pe INT care setează un flag. Setez TMR0 cu prescaler de 256 ceea ce la 4MHz înseamnă cam 256µs , adică număr pînă la 39 într-o semialternanță. Definesc o variabilă nivel care corespunde nivelului de lumină ( între 0 și 40 ) și o variabilă crt care reprezintă suma dintre nivel și TMR0. Aprinderea tiristorului se face când crt = 40. Asta înseamnă că dacă nivel este mare = 40, tiristorul se aprinde la începutul semialternanței ( TMR0 = 0) iar dacă este mic ( nivel = 0 ) la sfârșit - practic deloc.

La începutul unei bucle while stau și aștept actualizarea lui TMR0 care se produce la fiecare 256µs apoi aprind tiristorul dacă valoarea curentă a TMR0 adunată cu nivel dă 40 apoi actualizez eventual valorile după care reiau bucla.

Link spre comentariu

Schema poate sa ramana cea postata de colegul UDAR aici viewtopic.php?f=11&t=162052#p1459043 sau

Am luat acea schema atunci. Atasez ce am lucrat - simulare, sursa si hex:- primele cateva secunde creste intensitatea, sincron, timp in care nu citeste (deocamdata) nicio alta apasare de push- urmatoarele trei minute ramane pe "pornit", si citeste o eventuala alta apasare de push. Fiecare apsare de push prelungeste cu inca atat perioada. Pentru teste rapide am pus si varinta cu 17 secunde aprins. Daca nu am nimerit cele 3 minute bine, sa imi spuneti, am facut doar prin calcul estimativ- dupa care se stingeEste doar un test, nu zic ca poate fi folosit inca. Spune-mi, te rog, cum merge in practica, daca pe osciloscop arata cum vrei.
Link spre comentariu

Arhivat

Acest subiect este acum arhivat și este închis pentru alte răspunsuri.




×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări