Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

enostaven krmilnik-vzdrževalec temperature 1wire

 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Za začetnike
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
aboxdc
Novinec


Pridružen/-a: Pet Sep 2007 21:11
Prispevkov: 7

PrispevekObjavljeno: Čet Jul 17, 2008 5:57 pm    Naslov sporočila: enostaven krmilnik-vzdrževalec temperature 1wire Odgovori s citatom

Pozdravljeni!

Malo sem se spustil v vode bascoma in uC. Predhodnje sem programiral tudi v basicu, c++, fortran...
Preletel sem celotno knjigo Uvod v programiranje mikrokontrolerjev s programskim jezikom BascomLT. Knjiga je zelo dobra za začetnike, zanima me pa, bolj v smeri c++ in katere knjge, priročnike priporočate za namensko programiranje mikrokontrolerjev.


Sestava;
Sedaj sem pa se lotil projekta, digitalnega vzdrževalce temperature. Naprava je sestavlejna iz at89c2051-24pi uC, to2-5v,2 gumbnih tipk, lcd-ja cmc420l01, 2 diodi, rdeča in zelena za prikaz stanja.

Namen:
Zaadeva je taka, da imamo doma hladilnik, ki ne služi več prehrabenim namenom, zato sem dobil idejo da bi ga predelal za skladiščenje kemikalij, tiskanin itd.

Opis delovanja:
-Ob zagonu program izpiše ime modula ter verzijo na lcd
-program preveri predhodno nastavitev oz vrednost temperature temp1
-možnost nove nastavitve temp1 z tipkama gor in dol (program gre v subrutino)
-Program vzopstavi povezavopreko 1 wire z DSxxxx digitalnimi senzorji
- prebrana vrednost temp2 iz senzorja se primerja s predhodno nastavlejno temp1. Če temperatura temp2 pade pod vrednost temp1 se rele izklopi, dokler temp2 ni za 2 stopinji celzija višja od temp1.
-podatki se izpisujejo na lcd
-pri aktivnem stanju groi zelena led dioda, v nasprotnem pa rdeča.



Izgled trenutnega programa, kateri čaka na končno verzijo:


Rem krmilnik hladilnika
Config 1wire = P1.1 'konfiguracija 1wire


Config Lcdpin = Pin , Db4 = P3.1 , Db5 = P3.2 , Db6 = P3.3 , Db7 = P3.4 , E = P3.5 , Rs = P3.6 'konfiguracija lcd pin


Config Lcd = 16 * 4 'configure lcd screen

'
Dim Ar(8) As Byte , A As Byte , I As Byte 'spremenljivke senzorja
Dim A As Byte
Dim Temp1 As Integer 'prednastavljena temperatura
Dim Temp2 As Integer 'temperatura na senzorju
Dim Podtemp As Integer 'limit ponovnega vklopa

Temp1 = 15
Podtemp = Temp1 - 2 'pri tej temperaturi se rele ponovno aktivira

Cls

Lcd "Cool Control v1.0" 'izois verzije
Waitms 5

Cls

Do
Debounce P1.0 , 0 , Dol , Sub ,kontrola tipke za nastavitev temperature
Debounce P1.2 , 0 , Gor , Sub
Cls
If Temp1 > Temp2 Then 'ko temperatura pade pod vrednost
While Temp1 <= Podtemp 'izklopi rele, dokler vrednost ne narase za 2 stopinji
P1.3 = 1 *Tukaj nekje je potrebna dopolnitev programa z 1wire branjem senzorja, katerega vrednost se shrani v temp2 spremenljivko
Wend
Else 'drugače naj bo rele aktiviran
P1.3 = 0
End If

Cls
Lcd Temp2
Lcd "C"
Waitms 5
Loop
End


Dol: 'subrutina za zmanjšanje temperature
Temp1 = Temp1 - 1
Sound P1.3 , 300 , 200
Cls
Lcd Temp1
Lcd "C"
Waitms 5
Return

Gor: 'subrutina za višanje temperature
Temp1 = Temp1 + 5
Sound P1.3 , 300 , 200
Cls
Lcd Temp1
Lcd "C"
Waitms 10
Return



Program je nahitro sestavljen tako da je mogoče kar nekaj logičnih in drugih napak...


Problem:

Malo me zanima kako komunicira 1wire in kako vstavit v program.
Če ima kdo kakršne koli ideje, predloge kar na dan.
Sam sem tehniški gimnazijec iz gradbene šole, tako da v bistvu imam samo hobby znanje, koliko sem kje izvedel, mi kdo pokazal ali prebral.
Upam da bo mi študij mehatronike kaj več inteligence prinesel in razumevanje.


V naprej se vam zahvaljujem.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
aboxdc
Novinec


Pridružen/-a: Pet Sep 2007 21:11
Prispevkov: 7

PrispevekObjavljeno: Čet Jul 17, 2008 6:04 pm    Naslov sporočila: Odgovori s citatom

Še eno vprašanje. Ali se program iz subrutine vrne na začetek programa, ali nadaljuje iz točke glavne rutine kjer se je začela subrutina?
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 807
Kraj: Ljubljana

PrispevekObjavljeno: Ned Jul 20, 2008 5:47 pm    Naslov sporočila: Pozdrav Odgovori s citatom

Pozdrav,

Imeli smo mali seminar, kjer smo pojasnili, kako in kaj se v bascomu streže termometer ds1820
Pisni materijali seminarja so na:

http://www.elektronik.si/phpBB2/viewtopic.php?t=12055&highlight=bascom+seminar

Oglej si jih, imaš tudi vzorce programov, in mislim, da boš hitro enega od programov, ki smo jih študirali na seminarju predelal v to, kar potrebuješ.

Če ne bo šlo, se pa spet oglasi!

_________________
Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Za začetnike Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group