RAM
09.04.2009, 18:09
Hi Leute,
bin gerade dabei, mir eine Temperaturregelung für meinen Lipo-Koffer zu basteln. Hab dazu schon mal ne Schaltung mit nem Mega32, nem Display und nem DS18S20 aufgebaut. Beheizt wird das ganze mit nem Heizelement, welches über einen Transistor an PA0 hängt. Mein eigentliches Problem ist aber die Programmierung. Hab mir jetzt schon mal ein kleines Programm zusammengebastelt, in dem meine Heizung eine Temperatur von 30 Grad hält. Mir wär aber lieber, wenn der Koffer erst auf ca. 35 Grad geheizt wird, dann die Heizung abschaltet, dann die Temperatur bis auf ca. 32 Grad fallen lässt und dann wieder auf die 35 Grad hochheizt. Eben wie ein Thermostat. Allerdings steh ich da ein bischen auf dem Schlauch, wie ich das programmieren soll.
Hoffe, mir kann da jemand von euch weiterhelfen!
Hab mal mein Programm angehängt
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Config Portb.0 = Output
Config 1wire = Porta.6
Dim Rom1 As Integer
Dim Temp As Integer
Wait 1
Do
1wreset
1wwrite &HCC
1wwrite &H44
Ddra.6 = 1
Waitms 800
Ddra.6 = 0
1wreset
1wwrite &HCC
1wwrite &HBE
Rom1 = 1wread(1)
1wreset
Temp = Rom1 / 2
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.5 , Rs = Porta.4
Cls
Locate 1 , 1
Lcd "*****Lipo-Koffer****"
Locate 2 , 1
Lcd "Temperatur = " ; Temp
Locate 2 , 17
Lcd "Grad"
If Temp < 30 Then
Locate 3 , 1
Lcd "*******heizen*******"
Portb.0 = 1
End If
If Temp > 30 Then
Locate 3 , 1
Lcd "****Temperatur ok***"
Portb.0 = 0
End If
Loop
End
bin gerade dabei, mir eine Temperaturregelung für meinen Lipo-Koffer zu basteln. Hab dazu schon mal ne Schaltung mit nem Mega32, nem Display und nem DS18S20 aufgebaut. Beheizt wird das ganze mit nem Heizelement, welches über einen Transistor an PA0 hängt. Mein eigentliches Problem ist aber die Programmierung. Hab mir jetzt schon mal ein kleines Programm zusammengebastelt, in dem meine Heizung eine Temperatur von 30 Grad hält. Mir wär aber lieber, wenn der Koffer erst auf ca. 35 Grad geheizt wird, dann die Heizung abschaltet, dann die Temperatur bis auf ca. 32 Grad fallen lässt und dann wieder auf die 35 Grad hochheizt. Eben wie ein Thermostat. Allerdings steh ich da ein bischen auf dem Schlauch, wie ich das programmieren soll.
Hoffe, mir kann da jemand von euch weiterhelfen!
Hab mal mein Programm angehängt
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Config Portb.0 = Output
Config 1wire = Porta.6
Dim Rom1 As Integer
Dim Temp As Integer
Wait 1
Do
1wreset
1wwrite &HCC
1wwrite &H44
Ddra.6 = 1
Waitms 800
Ddra.6 = 0
1wreset
1wwrite &HCC
1wwrite &HBE
Rom1 = 1wread(1)
1wreset
Temp = Rom1 / 2
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.5 , Rs = Porta.4
Cls
Locate 1 , 1
Lcd "*****Lipo-Koffer****"
Locate 2 , 1
Lcd "Temperatur = " ; Temp
Locate 2 , 17
Lcd "Grad"
If Temp < 30 Then
Locate 3 , 1
Lcd "*******heizen*******"
Portb.0 = 1
End If
If Temp > 30 Then
Locate 3 , 1
Lcd "****Temperatur ok***"
Portb.0 = 0
End If
Loop
End