Tajmer za osvjetljivač - razvoj softvera

Projekti naših članova foruma koji su još uvijek u fazi izrade.

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
78L05
Pravo sam se raspisao :)
Pravo sam se raspisao :)
Posts: 1402
Joined: 28-05-2009, 13:22
Location: Hrvatska

Tajmer za osvjetljivač - razvoj softvera

Post by 78L05 »

Evo ovako!

Odlučio sam napraviti svoj vlastiti timer za osvjetljivač.
Ovdje ću postaviti simulaciju u proteusu i cijeli kod, te ima jedan dio programa koji još ne radi, a to je odbrojavanje. Zamišljeno je da hardver ima tri gumba, postavi vrijeme (u koracima po 30 sekundi), obrisi postavljeno vrijeme i kreni-stani sa odbrojavanjem. Inače izlaz je relejni (na simulaciji je samo LED-ica ali to je najmanji problem)

Sada još trebam pomoć oko odbrojavanja.

Ovo je simulacija u proteusu:
shema.rar
simulacija
(27.49 KiB) Downloaded 401 times
Uz liniju koda ide i objasnjenje, treba dakle samo jos dio odbrojavanja i gotovo.

Ovo je kod:

Code: Select all

SET var PORTB.4 'set na portb.4 gumb
OCISTI var PORTB.5 'ocisti na portb.5
KRENI_STANI VAR PORTB.6 kreni-stani na portb.6
RELEJ var PORTB.7 'relej na portb.7

druge_dvije var word 'definicija varijable
prve_dvije var word 'definicija varijable
prve_dvije = 0 'pocetno postavljanje na 0
druge_dvije = 0 'pocetno postavljanje na 0
stanje var word 'stanje varijabla

pause 500 'pauza pola sekunde zbog inicijalizacije LCD-a
lcdout $FE, 1, "PIC TIMER" 'u prvu liniju ide PIC TIMER
lcdout $FE, $C0, "SIJECANJ 2009" 'u drugu liniju ide kad je nastao timer
pause 2000 'znaci spash screen traje 2 sekunde

CISCENJE: 'i onda ide ciscenje displeja i ovo se ispisuje
lcdout $FE, 1, "Ostalo:    00:00" ' Ostalo: 00:00
lcdout $FE, $C0, "Ukupno:    00:00" 'Ukupno : 00:00


postava: 'labela postava

if ocisti = 0 then 'znaci ako je gumb ocisti stisnut tada on kopira na LCD same nule, to koristimo kada ubacimo neko vrijeme i onda zelimo ponistiti, a da ne moramo resetirati cijeli uredaj

lcdout $FE, $C0, "Ukupno:    00:00" 'ukupno:00:00
prve_dvije = 0 'opet sve postavlja na nulu
druge_dvije = 0 'na nulu
pause 200 'pause 20 stotinki

endif 'kraj uvjeta

if kreni_stani = 0 then 'ako je tipka krenistani stisnuta onda
if prve_dvije = 0 and druge_dvije = 0 then 'provjerava jeli bilo sto od postavljenog na nuli, ako je onda ispisuje prekinuto
lcdout $FE, 1, "   PREKINUTO"
lcdout $FE, $C0, "Ukupno:    00:00"
end 'zaustavlja program i tu sada mora ici reset preko MCLR
else 'u protivnom
'konacno krece dio programa za odbrojavanje!!!
high relej 'pali relej

lcdout $FE, 1 'formatira lcd
if prve_dvije  < 10 then  'ako su prve dvije manje od 10, a prve dvije su minute znaci da se ne ispise 1 nego 01
lcdout "Ostalo:    ", "0", dec prve_dvije, ":", dec druge_dvije, "0" ' ispis
else 'u protivnom

lcdout "Ostalo:    ", dec prve_dvije , ":" , dec druge_dvije, "0" 'ispis
endif  'kraj uvjeta
lcdout $FE, $C0 ,prebacuje se na drugu liniju

if prve_dvije  < 10 then  'ista provjera
lcdout "Ukupno:    ", "0", dec prve_dvije, ":", dec druge_dvije, "0"
else

lcdout "Ukupno:    ", dec prve_dvije , ":" , dec druge_dvije, "0"

endif  'kraj uvjeta

endif 'kraj uvjeta

'sada kada je sve sredio program idemo na odbrojavanje, sekundu po sekundu
odbrojavanje:


'ovaj kod mi nedostaje,to trebam pomoc

endif

'a ovo je dio za podesavanje vremena

if prve_dvije = 99 then 'ako su minute vece od 99 onda nemoj reagirati
else 'ako nisu vece onda obavi sljedece:
if set = 0 then 'provjeri jeli tipka set stisnuta, ako je
druge_dvije = druge_dvije + 30 'sekunde povecaj za 30 sekundi (to je korak)
'IDE JOŠ JEDNA PROVJERA
if druge_dvije = 60 then 'ako su sekunde = 60 tada
pause 200
prve_dvije = prve_dvije + 1 'povecava minutu za jedan
druge_dvije = 0 'a sekunde vraca na nulu
endif 'kraj uvjeta

lcdout $FE, 1,"Ostalo:    00:00" 'ovo je konstanto tu, to se mjenja tek kod odbrojavanja

lcdout $FE, $C0    'prebacuje se na drugu liniju

if prve_dvije  < 10 then  , ako su minute manje od deset onda se prije minuta ispisuje jedna 0
lcdout "Ukupno:    ", "0", dec prve_dvije, ":", dec druge_dvije, "0"
else 'ako nisu minute manje od 10 onda nema nule (ne ispisuje se)

lcdout "Ukupno:    ", dec prve_dvije , ":" , dec druge_dvije, "0" 'to je ta linija di nema nula
endif    'kraj uvjeta


pause 200 'pausa 200 milisekundi
goto postava 'ide ispocetka u provjeru
else 'ovo je else od nekog uvjeta - nebitno
goto postava 'opet provjera
endif 'kraj uvjeta
endif 'kraj uvjeta

end 'postavljamo program na "sleep" i gotovo
znaci moze bilo kakvo pitanje objasnit cu, dakle zapeo sam na odbrojavanju. hvala i pozdrav svima.
Ne vjeruj u čuda - računaj na njih!
User avatar
Smjesko
Stariji član
Stariji član
Posts: 4012
Joined: 26-12-2005, 17:12

Re: Tajmer za osvjetljivač - razvoj softvera

Post by Smjesko »

Evo imam ja par pitanja. Budući da nemamo svi instaliran Proteus, bilo bi dobro pretvori tu shemu u neki obični grafički format da je možemo vidjeti.
Nadalje, zašto si baš odabrao raditi tajmer kad već postoji nekoliko odličnih i gotovih projekata na tu temu?!
I glavno pitanje, budući da se pomalo kužiš u programiranje, jesi li zainteresiran napisati jedan program za jedan projekt koji nitko nije ovdje pokušao napraviti, a trebao bi raditi s procesorom PIC12F629, 675, ili 683???
User avatar
78L05
Pravo sam se raspisao :)
Pravo sam se raspisao :)
Posts: 1402
Joined: 28-05-2009, 13:22
Location: Hrvatska

Re: Tajmer za osvjetljivač - razvoj softvera

Post by 78L05 »

Zato što želim kroz razvoj tog timera nešto naučiti. Pogledaj samo u gotove projekte ima 5 stranica od toga koliko ima istih (čak ne prepravljenih projekata). Stavio sam u Proteus jer je bitna simulacija, ako treba okačit ću i shemu.

O kakvom se projektu radi?
Ne vjeruj u čuda - računaj na njih!
Shenda

Re: Tajmer za osvjetljivač - razvoj softvera

Post by Shenda »

Aha... evo ga! :roll:

E... a da taj drugi format ima sve objašnjeno... znaš... da piše šta je koji element, koja mu je vrijednost... da se vidi ako ima one prstene u boji... kako se šta "mota"... :shock: :wink: :lol:

A jel' ima kakav transformator :?: :wink:
User avatar
78L05
Pravo sam se raspisao :)
Pravo sam se raspisao :)
Posts: 1402
Joined: 28-05-2009, 13:22
Location: Hrvatska

Re: Tajmer za osvjetljivač - razvoj softvera

Post by 78L05 »

Prvo ne izrazavas se prikladno mjestu na kojem se nalazis.
Drugo ne citas pravila foruma u kojima jasno pise da se ne koristi Quote kada se odgovara nekome čiji je post odmah iznad tvog. Treće evo sheme.
Timer.rar
shema
(10.12 KiB) Downloaded 393 times
Ne vjeruj u čuda - računaj na njih!
Post Reply