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ß MarkusCode:$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







Zitieren
Lesezeichen