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 

bascom program za vklop releja po izteku določenega časa
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
ata
Profesionalec


Pridružen/-a: Pon Apr 2004 9:26
Prispevkov: 110

PrispevekObjavljeno: Pet Okt 17, 2008 5:01 pm    Naslov sporočila: bascom program za vklop releja po izteku določenega časa Odgovori s citatom

Dokler je recimo temperatura nad določeno vrednostjo je rele izklopljen ,ko pa pade pod vrednost in jo več ne prekorači naj bi po recimo 20 minutah rele preklopil.Če pa v manj kot 20 minutah temperatura zopet naraste nad določeno vrednost program teče naprej IN RELEJA NE VKLOPI. Ne vem če lahko uporabim za tako dolg čas ukaz wait.Ali mi lahko kdo pomaga?
ata
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
stursc
Profesionalec


Pridružen/-a: Pet Feb 2005 14:50
Prispevkov: 109
Kraj: Ravne

PrispevekObjavljeno: Pet Okt 17, 2008 5:58 pm    Naslov sporočila: Odgovori s citatom

Uporabiš Timer in števec, ki ga boš poljubno nastavljal


LP, stursc
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Pet Okt 17, 2008 5:59 pm    Naslov sporočila: Bascom program za izklop releja po določenem času Odgovori s citatom

Ukaz Wait je lahko tipa Byte, (255 sec).
Tudi če bi lahko nastavili zakasnitev na 20 min (1200 sekund) v tem času nebi mogli preveriti temperature ker se program za čas Wait vrti v zanki.
Najbolj enostavno bi bilo uporabiti for next ter v njej zakasnitev 1 sec. .
v zanki vsako sekundo pomeriti temperaturo, ter jo primerjati z vrednostjo.
V primeru da je vrednost večja od nastavljene zapustimo zanko, če pa je manjša ponavljamo zanko toliko časa kolikor smo nastavili zakasnitev za vklop releja. Ko v zanki naštejemo dovolj časa vklopimo rele in zapustimo zanko (nadaljujemo v nekekm podprogramu v katerem bomo spet merili temperaturo in po potrebi izklopili rele).

Wait ukaz ni ne vem kako natančen, natančnost bo še manjša če bomo imeli zelo dolgo For Next ter v njej opravljali še kaj), tako da bo čas potrebno ugotoviti z malo računanja, najlažje pa to naredimo v Simulatorju ki je vgrajen v Bascom ter pogledamo koliko časa procesor porabi za določen ukaz.
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
ata
Profesionalec


Pridružen/-a: Pon Apr 2004 9:26
Prispevkov: 110

PrispevekObjavljeno: Sob Okt 25, 2008 8:54 pm    Naslov sporočila: Bascom program za izklop releja Odgovori s citatom

Ne uspe mi sprogramirati ne v timerju ne v for next zanki vse kaze na to da temu nisem dorasel. Prosim če mi lahko kdo bolj konkretno pomaga.
Manjka mi samo dotični del programa.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Jure
Urednik


Pridružen/-a: Pon Jan 2004 12:51
Prispevkov: 2132
Kraj: Ljubljana

PrispevekObjavljeno: Pon Okt 27, 2008 7:43 am    Naslov sporočila: Re: Bascom program za izklop releja Odgovori s citatom

ata je napisal/a:
Ne uspe mi sprogramirati ne v timerju ne v for next zanki vse kaze na to da temu nisem dorasel. Prosim če mi lahko kdo bolj konkretno pomaga.
Manjka mi samo dotični del programa.


Ata,

kaj ko bi se prijavil na Bascom-AVR tečaj, ki bo v sredini novembra? V treh urah se boš naučil to in še marsikaj drugega.

Lp
Jure
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
ata
Profesionalec


Pridružen/-a: Pon Apr 2004 9:26
Prispevkov: 110

PrispevekObjavljeno: Pon Okt 27, 2008 2:43 pm    Naslov sporočila: Odgovori s citatom

Program je sestavljen iz timerja in temperaturnega releja.Vsaka enota zase deluje skupaj pa ne ,deluje samo temperaturni program ne dela pa timer in ne vem kje sem ga polomil.Program sem sestavil od več avtorjev nekaj programa je moje delo.Rad bi šel na tečaj vendar se vse v zivljenju ne izpolni.
Napisal sem nov program mi deluje brezhibno in vodi pec pri prijatelju ze teden dni brez tezav.Če bo po sreči bom nov program skupno z razlago objavil kmalu, saj ste mi vi tudi pomagali
ata


Nazadnje urejal/a ata Sre Nov 19, 2008 1:48 pm; skupaj popravljeno 20 krat
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Pon Okt 27, 2008 5:21 pm    Naslov sporočila: Bascom program za vklop releja po izetku določenega časa Odgovori s citatom

S katerim procesorjem pa bo to narejeno?
V bascom8051 (predvidevam da je 8051 ker se omenja P3.0), bi znalo biti težav z RAM-om (stack)!

Program bi bilo dobro komentirati da se ne lovimo.


Citiram:
Do


Locate 2 , 3 : Lcd Minute : Lcd " "

Temp_proc
Waitms 250
Keyboard
Compare_proc
loop

Kdaj pa program zapusti to zanko?

Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
stursc
Profesionalec


Pridružen/-a: Pet Feb 2005 14:50
Prispevkov: 109
Kraj: Ravne

PrispevekObjavljeno: Pon Okt 27, 2008 5:40 pm    Naslov sporočila: Odgovori s citatom

P.S.

zbrisal sem vso vsebino sporočila, ker mi "pol teksta požre" in je vsebinsko
prazno. Zakaj tako nevem.

LP, stursc


Nazadnje urejal/a stursc Tor Okt 28, 2008 4:09 pm; skupaj popravljeno 2 krat
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


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

PrispevekObjavljeno: Sre Okt 29, 2008 8:09 am    Naslov sporočila: Odgovori s citatom

Jaz vse releje preklapljam s pomočjo števcev, vsakemu releju, če jih je več dodelim svojega.
Stanje števcem lepo zmanjšuje proti nič timer prekinitveni podprogram, če gre za daljše čase, s pomočjo if v glavnem programu.

V programu postavim števec na določeno stanje, če želim rele vklopiti, ali na nič, če ga želim predčasno izklopiti.
vse je opisano v projetku "Z SMS-i vodeni avtomat", ki je bil pred časom objavljen v SE.

No v glavnem gre za to:

Koda:
'

$regfile = "89c4051.dat"
' $crystal = 11059200

Triac Alias P3.3  'ali rele, ista stvar, ali ne

Dim I As Byte
Dim J As Byte
Dim K As Byte
Dim L As Byte

' Števci

Dim Triacminute As Byte
Triacminute = 2

'       V glavnem programu štejemo četrtinke sekunde
'  11059200 / 12  (8051) / 256 (Mode = 1) = 3600
'  (za četrt sekunde 900 / 18 (tistevec) =  50 (load timer)

Config Timer0 = Timer , Gate = Internal , Mode = 1
On Timer0 Titi Nosave
Load Timer0 , 50
Enable Timer0
Start Timer0

Dim Tistevec As Byte
Dim Cetrtsek As Byte                                          'četrtinke sekunde!

Start Timer0
Enable Interrupts



' triac se krmili posredno preko števca minut Triacminute
'


'
Do
 
   If Tistevec > 17 Then
   '  Nova četrtinka sekunde ----------------------------1/4
      Tistevec = Tistevec - 18
      Incr Cetrtsek
      If Cetrtsek > 239 Then
         Cetrtsek = Cetrtsek - 240
      ' Nova minuta  ------------------------------------min
         If Triacminute > 0 Then
            Decr Triacminute
         End If
      End If

' ostalo v glavnem programu tukaj .....


     ' upravljamo triac in ledico
     If Triacminute = 0 Then
        Set Triac
     Else
        Reset Triac
     End If
     Ledica = Triac
Loop


Titi:
    'Timer0 interrupt:   <-------------
Load Timer0 , 50
Incr Tistevec           
Return
'---------timer0 interrupt subroutine - end ----


_________________
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
ata
Profesionalec


Pridružen/-a: Pon Apr 2004 9:26
Prispevkov: 110

PrispevekObjavljeno: Sre Okt 29, 2008 11:38 am    Naslov sporočila: Odgovori s citatom

Vilko ,jaz sem zadnje čase za sprogramirat kaj takega ze nesposoben,sem star in spomin mi ne dela več dobro .Poiskal sem vaš članek v reviji št.129 nalozil programe sms ,prebral članek ,pregledoval programe in glej ga čudo -posvetilo se mi je . Rešili ste mi problem in sem Vam dolzan zahvalo.Lep dan Vam zelim.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


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

PrispevekObjavljeno: Pet Okt 31, 2008 9:16 am    Naslov sporočila: Nikar tako skromno! Odgovori s citatom

Nikar tako skromno, ata, mimogrede, jaz sem že dedek.

vsak nekaj zna, in tudi nekaj takega, kar nekdo drug ne zna. Tudi vi znate stvari, ki jih jaz ne znam, in na forumu je veliko takih, ki znajo zelo veliko. zato sem tudi rad na forumu, kjer tudi jaz veliko sprašujem, in tudi veliko izvem. Je namreč na forumu nekaj takih, ki se še niso naveličali razdajati svoje znanje.

Pozdrav in uspešno naprej!

_________________
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
ata
Profesionalec


Pridružen/-a: Pon Apr 2004 9:26
Prispevkov: 110

PrispevekObjavljeno: Pet Nov 14, 2008 8:47 pm    Naslov sporočila: Odgovori s citatom

Najlepša hvala vsem posebno pa Vilkotu. Uspelo mi je sprogramirati program za vodenje peči(pirolitske)z sledečimi funkcijami:
nastavitev vklopa in izklopa ventilatorja-kontrola temperature
regulacija crpalk-vklop-izklop
automatski zaključek vseh funkcij ko pade temperatura po določenem času pod vrednost nastavljene
ustavitev ventilatorja in vklop črpalk v slučaju pregretja
program objavljen predhodno je za nastavitev vklopa in izklopa grelca-kontrola temperature z temperaturo v decimalkah(temperaturni rele-načrt in razlaga je v stevilki 66 ali 68 svet el.) bascom program sem priredil za svoje potrebe in je sestavljen iz programov avtorjev ki so bili objavljeni na forumu ali v revijah svet el.Vodenje peči res nima automatske regulacije ventilatorja in lambda sonde vendar je tudi ta program zame uspeh konec koncev sem le samo elektronik-amater.prepričan sem da lahko marsikdo iz podatkov ki so objavljeni na forumu in v revijah zase sprogramira podoben program po lastnih zeljah
ps: jaz sem tudi dedek z petimi vnuki
ata


Nazadnje urejal/a ata Sre Nov 19, 2008 10:42 am; skupaj popravljeno 1 krat
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


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

PrispevekObjavljeno: Sob Nov 15, 2008 6:17 pm    Naslov sporočila: N0 Odgovori s citatom

No, vidiš, da imaš nekaj, da se lahko pohvališ!
_________________
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
ata
Profesionalec


Pridružen/-a: Pon Apr 2004 9:26
Prispevkov: 110

PrispevekObjavljeno: Sre Nov 19, 2008 1:55 pm    Naslov sporočila: Odgovori s citatom

Obljuba dela dolg
nov program


'program za vodenje NA PRIMER : peci(pirolitske) na trda goriva
'grelcev
'in podobno
'VIRI:
'JURE
'nacrt (shema) za tiskano vezje in opis temp programa-svet elektronike st 66- izdelajmo merilnik temperature
'avtor Jure Mikeln
'temperaturni in casovni del programa -
'FRENKI
' Program ura s senzorjem temperature DS1820
'http://www2.maxi.si/phpBB2/index.php
'VILKO
'SMS VODENI ..timerji..... bascom programi
'in se veliko forumovcev
'lcd ,nastavitve temperatur tipke in sestavitev programa itd - ata
'procesor AT 89 C4051
'P3,4 vklop in izklop releja za gretje(npr. ventilator,grelec itd)
'P3,5 vklop in izklop releja za casovno zakasnitev(12MINUT)-IZKLOP PEČI če je temperatura vode v peči <12>minut(nastavljiv čas) manjša od nastavljene temp(D=30-nastavljivo)in delovanje peči če je temp večja od nastavljene
'P3.1,P3.0 in P3.3 so tipke za nast. VKLOPNE IN IZKLOPNE temperature vode v peči in nast. temperature za izklop peci po X minutah .
'bodite pozorni na pullup! upore
LCD modul 2x16 standardni brez osvetlitve- po zelji
'vklopna temperatura A mora biti manjša od izklopne N(HISTEREZA)
'uporaba programa na lastno odgovornost

'///////////////////////////////////////////////////////////////////////////////
$large
$regfile = "89c4051.dat"

Rele Alias P3.5

$crystal = 12000000
Declare Sub Rele
Declare Sub Id_1820
Declare Sub Read1820
Declare Sub Temperatura
Declare Sub Keyboard
Declare Sub Compare

Dim 1820_id(8) As Byte , Bd(9) As Byte
Dim Clock As Byte , Clock1 As Byte
Dim Sekunde As Byte , Minute As Byte , Ure As Byte , Tmp As Byte
Dim T As Integer , T1 As Integer , T2 As Integer
Dim A As Integer
Dim N As Integer
Dim D As Integer
Config 1wire = P1.0
Config Lcd = 16 * 2
Cursor Off Noblink
Cls
Config Timer0 = Timer , Gate = Internal , Mode = 2
On Timer0 Timer_0_int
Load Timer0 , 250
Priority Set Timer0
Enable Interrupts
Enable Timer0

'-------------------------------------------------------------------------------
Clock = 0
Clock1 = 0
Sekunde = 0
Minute = 0
Ure = 0
D = 30
A = 25
N = 27
'-------------------------------------------------------------------------------
Id_1820

Start Timer0

Do

If Sekunde > 59 Then
Incr Minute
Sekunde = 0
End If

If T > D Then
Reset Minute
Minute = 0
Lcd ; Minute ; " "
End If

If Minute <> 12 Then
Reset Rele
Else
Set Rele
End If
If Minute > 12 Then
Set Rele
Stop Timer0
End If
Locate 1 , 1 : Lcd "TEMP " ; T : Lcd Chr(46) : Lcd T1 : Lcd "C " ; Chr(126) ; A
Locate 2 , 1 : Lcd "VENT*" ; D ; "* " : Lcd Minute ; " " : Lcd ; Chr(127) ; N ; " "
Temperatura
Keyboard
Compare

Loop
End
'-------------------------------------------------------------------------------

'-------------------------------------------------------------------------------
Sub Id_1820
1wreset 'reset the device
1wwrite &H33 'read ROM command
For Tmp = 1 To 8
1820_id(tmp) = 1wread() 'place into array
Next
End Sub
'-------------------------------------------------------------------------------
Sub Read1820 'bere senzor 'T za 0.1 C
Stop Timer0
1wreset 'reset
1wwrite &H55 '1Wire ukaz
1wwrite 1820_id(1) , 8
1wwrite &HBE
Bd(1) = 1wread(9)
1wreset
Start Timer0

Tmp = Bd(1) And 1 '0.1C natancnost
If Tmp = 1 Then
Decr Bd(1)
End If
T = Makeint(bd(1) , Bd(2))
T = T * 50 : T = T - 25 : T1 = Bd(8) - Bd(7) : T1 = T1 * 100
T1 = T1 / Bd(8) : T = T + T1 : T = T / 10
T1 = T
T = T / 10
T2 = T * 10
T1 = T1 - T2
T1 = Abs(t1)
End Sub
'-------------------------------------------------------------------------------
Sub Temperatura 'merjenje temperature
1wreset
1wwrite &H55
1wwrite 1820_id(1) , 8 '1Wire ukaz
1wwrite &H44
'Wait 1
Wait 1
Read1820 'read 9 bytes
End Sub
'-------------------------------------------------------------------------------
Timer_0_int: 'Vsakih 250 Usek
Incr Clock
If Clock > 99 Then 'ce vec od 99 / vsakih 0.25mili sek
Clock = 0 'postavi ga na 0
Incr Clock1 'povecaj clock1
End If
If Clock1 > 39 Then 'ce 40 (40*25 msek) pretekla je 1 sek
Clock1 = 0 'vrni variablo na 0
Incr Sekunde 'povecaj sekunde
End If
Return
'////////////////////////////////////////////////////////////////////////////////
Mode1:
Cls
Do
Upperline
Lcd "nast vklopa"
Home
Lowerline
Lcd "vklop="
If P3.1 = 0 Then
If P3.0 = 0 Then
Return
End If
Incr A
'Lcd A ; " "
Lcd A
Waitms 250
End If
If P3.3 = 0 Then
Decr A
'Lcd A ; " "
Lcd A
Waitms 250
End If
If P3.0 = 0 Then
If P3.1 = 0 Then
Cls
Return
End If
End If
Loop
Return

Mode2:
Cls
Do
Upperline
Lcd "nast izklopa"
Home
Lowerline
Lcd "izklop="
If P3.1 = 0 Then
If P3.0 = 0 Then
Return
End If
Incr N
'Lcd N ; " "
Lcd N
Waitms 250
End If
If P3.3 = 0 Then
Decr N
'Lcd N ; " "
Lcd N
Waitms 250
End If
If P3.0 = 0 Then
If P3.1 = 0 Then
Cls
Return
End If
End If
Loop
Return

Mode3:
Cls
Do
Upperline
Lcd "nast VENT"
Home
Lowerline
Lcd "VENT="

If P3.1 = 0 Then
If P3.0 = 0 Then
Return
End If
Incr D
'Lcd D ; " "
Lcd D
Waitms 250
End If
If P3.3 = 0 Then
Decr D
'Lcd D ; " "
Lcd D
Waitms 250
End If
If P3.0 = 0 Then
If P3.1 = 0 Then
Return
End If
End If
Loop
Return
Sub Keyboard
Debounce P3.3 , 0 , Mode1 , Sub
Debounce P3.0 , 0 , Mode2 , Sub
Debounce P3.1 , 0 , Mode3 , Sub
End Sub
'///////////////////////////////////////////////////////////////////////////////
Sub Compare
If T <= A Then
P3.4 = 0
End If
If T >= N Then
P3.4 = 1
End If

End Sub
ata
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
ata
Profesionalec


Pridružen/-a: Pon Apr 2004 9:26
Prispevkov: 110

PrispevekObjavljeno: Čet Apr 09, 2009 1:40 pm    Naslov sporočila: Odgovori s citatom

Zgoraj napisani program je opravljal svojo nalogo regulacije pirolitske peči celo zimsko sezono brezhibno in sem zelo vesel, prijatelj pa še bolj.
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 -> Digitalna elektronika Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
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