guuuut... ich denke so müsste das gehen^^
Code:
' Ich versuch mich hier mal an einer Anzeige für meine Solaranlage (inselbetrieb)
' also mit Batterie/wechselrichter ect.
'
' Angezeigt werden sollen Modulspannung und Strom, die daraus resultierende Leistung und
' der Batteriestrom sowie der Laststrom und die daraus resultierende Leistung.
' Zudem noch die Leistung, die gerade entnommen oder gepuffert wird. Also die Differenz
' zwischen ein- und ausgehender Leistung.
'
' Felix Herzberger 2008
'
'
$regfile = "m8def.dat"
$crystal = 1000000
Config Adc = Free , Prescaler = Auto
Start Adc
Dim A1 As Word
Do
A1 = Getadc(0) ' Die Spannung kommt am ADC Port 1 rein.
A1 = A1 * 5000 ' Referenz: 5V
A1 = A1 / 1024 ' Jetzt haben wird die Spannung, die am Port anliegt in mA
A1 = A1 / 0.001 ' der Shunt hat den Wert 0,001 Ohm, A1 ist nun der fliessende Strom in mA
Loop
Dim A2 As Word
Do
A2 = Getadc(1)
A2 = A2 * 5000
A2 = A2 / 1024
A2 = A2 / 0.001
Loop
Dim V1 As Word
Do
V1 = Getadc(2)
V1 = V1 * 5000
V1 = V1 / 1024
V1 = V1 * 5
Loop
Dim V2 As Word
Do
V2 = Getadc(3)
V2 = V2 * 5000
V2 = V2 / 1024
V2 = V2 * 5
Loop
Dim P1 As Word
Do
P1 = V1 * A1
Loop
Dim P2 As Word
Do
P2 = V2 * V1
Loop
Dim D1 As Word
Do
D1 = P1 - P2
Loop
' Ausgerechnet sind die Werte nun und werden auf dem Display dargestellt
Config Lcd = 20 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Do
Cls 'loesche das LCD Display
Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "Solaranlage" 'String auf Display anzeigen
Waitms 3000
Cls
Waitms 10
Locate 1 , 1
Lcd "Modulspannung:"
Locate 2 , 1
Lcd "V"
Locate 2 , 3
Lcd V1
Waitms 3000
Cls
Waitms 10
Locate 1 , 1
Lcd "Modulstrom:"
Locate 2 , 1
Lcd "A"
Locate 2 , 3
Lcd A1
Waitms 3000
Cls
Waitms 10
Locate 1 , 1
Lcd "Modulleistung:"
Locate 2 , 1
Lcd "W"
Locate 2 , 3
Lcd P1
Waitms 3000
Cls
Waitms 10
Locate 1 , 1
Lcd "Batt. Spannung:"
Locate 2 , 1
Lcd "V"
Locate 2 , 3
Lcd V1
Waitms 3000
Cls
Waitms 10
Locate 1 , 1
Lcd "Laststrom:"
Locate 2 , 1
Lcd "A"
Locate 2 , 3
Lcd A2
Waitms 3000
Cls
Waitms 10
Locate 1 , 1
Lcd "Lastleistung:"
Locate 2 , 1
Lcd "W"
Locate 2 , 3
Lcd P2
Waitms 3000
Cls
Locate 1 , 1
Lcd "Leistungsdifferenz"
Locate 2 , 1
Lcd "P"
Locate 2 , 3
Lcd D1
Waitms 3000
Loop
End
Lesezeichen