|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
aboxdc Novinec
Pridružen/-a: Pet Sep 2007 21:11 Prispevkov: 7
|
Objavljeno: Čet Jul 17, 2008 5:57 pm Naslov sporočila: enostaven krmilnik-vzdrževalec temperature 1wire |
|
|
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 |
|
|
aboxdc Novinec
Pridružen/-a: Pet Sep 2007 21:11 Prispevkov: 7
|
Objavljeno: Čet Jul 17, 2008 6:04 pm Naslov sporočila: |
|
|
Š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 |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Ned Jul 20, 2008 5:47 pm Naslov sporočila: Pozdrav |
|
|
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 |
|
|
|
|
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
|