Malte0815
02.05.2010, 18:10
Hallo,
ich möchte über 1wire und ds1820 eine temperaturanzeiger für einen wasserspeicher bauen. Angeschlossen an einen Atmega8L ist ein 8*2 LCD ohne Hintergrundbeleuchtung. Da ich die Schaltung für den Batteriebetrieb auslegen möchte soll der Programmablauf so aussehen -> Nach drücken der Reset-Taste (Resetpin) wird der µC und das LCD eingeschaltet. Nun läuft ein Timer der den µC und das LCD nach 30 Sekunden in den Powerdown-Modus schickt. Das klappt auch so weit ganz gut nur hab ich, wie ich finde, eine zu hohe Stromaufnahme und ein Verhalten das ich mir nicht erklären kann?
Zustand 1: Powerdown (LCD nicht abgeschaltet) -> Stromaufnahme: 1,2mA
Zustand 2: Powerdown (LCD per Software abgeschaltet)-> : 1,5mA
Stromaufnahme des LCD nach Abschaltung durch Sotware: 1mA
Stromaufnahme (LCD)ohne Abschaltung (nach powerdown) : 0,7mA
Warum ist der Stromverbrauch bei abgeschaltetem Display höher als bei
eingeschaltetem? Zieht das Display vieleicht über die Datenpins vielleicht noch Strom??? Wie kann ich das Display nach powerdown komplett stromlos schalten?
Gruß Markus
$regfile = "M8def.dat"
$crystal = 1000000
'+++++++++Display-Config+++++++++++
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , Rs = Portb.6 , E = Portb.7
Config Lcdbus = 4
Cursor Off
'+++++++++config timer+++++++++++++
Config Timer1 = Timer , Prescale = 1024
On Timer1 Zeit
Enable Timer1
Enable Interrupts
Timer1 = 64558
Dim Sekunde As Byte
Sekunde = 15
Dim Minute As Byte
Locate 1 , 1
Lcd "Temp"
Lowerline
Lcd "Ver 0.1"
Waitms 2000
Cls
Locate 1 , 1 : Lcd "O"
Locate 1 , 4 : Lcd Chr(223) '223 = binär 11011111
Locate 1 , 5 : Lcd "M"
Locate 1 , 8 : Lcd Chr(223) '223 = binär 11011111
Locate 2 , 1 : Lcd "U"
Locate 2 , 4 : Lcd Chr(223) '223 = binär 11011111
Do
If Sekunde = 0 Then
Gosub Poweroff
End If
Locate 2 , 6
Lcd Sekunde
Loop
End
Zeit:
Timer1 = 64558
decr Sekunde
Return
Poweroff:
Cls
Lcd "power"
Lowerline
Lcd "down"
Wait 2
Display Off
Powerdown
Return
ich möchte über 1wire und ds1820 eine temperaturanzeiger für einen wasserspeicher bauen. Angeschlossen an einen Atmega8L ist ein 8*2 LCD ohne Hintergrundbeleuchtung. Da ich die Schaltung für den Batteriebetrieb auslegen möchte soll der Programmablauf so aussehen -> Nach drücken der Reset-Taste (Resetpin) wird der µC und das LCD eingeschaltet. Nun läuft ein Timer der den µC und das LCD nach 30 Sekunden in den Powerdown-Modus schickt. Das klappt auch so weit ganz gut nur hab ich, wie ich finde, eine zu hohe Stromaufnahme und ein Verhalten das ich mir nicht erklären kann?
Zustand 1: Powerdown (LCD nicht abgeschaltet) -> Stromaufnahme: 1,2mA
Zustand 2: Powerdown (LCD per Software abgeschaltet)-> : 1,5mA
Stromaufnahme des LCD nach Abschaltung durch Sotware: 1mA
Stromaufnahme (LCD)ohne Abschaltung (nach powerdown) : 0,7mA
Warum ist der Stromverbrauch bei abgeschaltetem Display höher als bei
eingeschaltetem? Zieht das Display vieleicht über die Datenpins vielleicht noch Strom??? Wie kann ich das Display nach powerdown komplett stromlos schalten?
Gruß Markus
$regfile = "M8def.dat"
$crystal = 1000000
'+++++++++Display-Config+++++++++++
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , Rs = Portb.6 , E = Portb.7
Config Lcdbus = 4
Cursor Off
'+++++++++config timer+++++++++++++
Config Timer1 = Timer , Prescale = 1024
On Timer1 Zeit
Enable Timer1
Enable Interrupts
Timer1 = 64558
Dim Sekunde As Byte
Sekunde = 15
Dim Minute As Byte
Locate 1 , 1
Lcd "Temp"
Lowerline
Lcd "Ver 0.1"
Waitms 2000
Cls
Locate 1 , 1 : Lcd "O"
Locate 1 , 4 : Lcd Chr(223) '223 = binär 11011111
Locate 1 , 5 : Lcd "M"
Locate 1 , 8 : Lcd Chr(223) '223 = binär 11011111
Locate 2 , 1 : Lcd "U"
Locate 2 , 4 : Lcd Chr(223) '223 = binär 11011111
Do
If Sekunde = 0 Then
Gosub Poweroff
End If
Locate 2 , 6
Lcd Sekunde
Loop
End
Zeit:
Timer1 = 64558
decr Sekunde
Return
Poweroff:
Cls
Lcd "power"
Lowerline
Lcd "down"
Wait 2
Display Off
Powerdown
Return