Felix H.
03.06.2009, 19:43
Hi,
ich habe vor an meine jetzige Zimmersteuerung noch ein Diagramm zu machen über den modulstrom meiner solaranlage über den ganzen Tag aufgenommen. So lese ich die Daten über meinen ADC ein. Das klappt auch wunderbar. Jetzt habe ich eingestellt, dass er alle 15 minuten diesen wert nehmen soll und in einer extra variable abspeichert. Wenn ich in das Menu des Diagramms gehe soll es dargestellt werden.
hier nun die entsprechenden Ausschnitte aus dem Programm:
Modulstrom = Getadc(6)
Modulstrom2 = Modulstrom * 30
Modulstrom2 = Modulstrom2 / 1024
Modulstrom ist hierbei eine integer, modulstrom2 eine single. Den wert bekomme ich einem anderen Menu passend angezeigt.
anschließend einer der vielen Bauteile mit denen der aktuelle wert gespeichert wird:
If _hour = 7 And _min = 0 and _sec = 0 Then
Modulstrom2 = Modulstrom2 * 5
Modulstrom7uhr = 110 - Modulstrom2
Else
End If
Mein Diagramm fängt bei pixel 110 in y richtung an. Deswegen wird die variable modulstrom7uhr auf den wert 110 als erstes geschrieben. Anschließend ziehe ich von den 110 den aktuellen Wert, multipliziert mit 5, ab.
Dadurch wird die y richtung kleiner, sprich mein entsprechender balken oder was ich verwende müsste im display mit größer werdendem ADC Input nach oben gehen. Modulstrom7uhr ist übrigens eine integer.
Zum ausgeben verwende ich den line befehl.
Line(14 , Modulstrom7uhr) -(18 , Modulstrom7uhr15) , 255
Line(18 , Modulstrom7uhr15) -(22 , Modulstrom7uhr30) , 255
usw.
Sobald ich aber nun eine zahl einlese während der entsprechenden uhrzeit, gehen die striche nach unten aus dem display raus?!?! und oben am ende aller linien in x richtung kommt die linie scheinbar in form von @-zeichen wieder rein und geht bis in die mitte. Je nach größe im ADC mal mehr mal weniger. Hab ich irgendwo einen denkfehler drin oder vertragen sich die vielen verschiedenen variablen nicht? wenn ich am anfang des programms z.b. die "modulstrom7uhr" variable und auch die anderen mit einem festen wert progge, funzt das diagramm prima.
hilfe! =P
ich habe vor an meine jetzige Zimmersteuerung noch ein Diagramm zu machen über den modulstrom meiner solaranlage über den ganzen Tag aufgenommen. So lese ich die Daten über meinen ADC ein. Das klappt auch wunderbar. Jetzt habe ich eingestellt, dass er alle 15 minuten diesen wert nehmen soll und in einer extra variable abspeichert. Wenn ich in das Menu des Diagramms gehe soll es dargestellt werden.
hier nun die entsprechenden Ausschnitte aus dem Programm:
Modulstrom = Getadc(6)
Modulstrom2 = Modulstrom * 30
Modulstrom2 = Modulstrom2 / 1024
Modulstrom ist hierbei eine integer, modulstrom2 eine single. Den wert bekomme ich einem anderen Menu passend angezeigt.
anschließend einer der vielen Bauteile mit denen der aktuelle wert gespeichert wird:
If _hour = 7 And _min = 0 and _sec = 0 Then
Modulstrom2 = Modulstrom2 * 5
Modulstrom7uhr = 110 - Modulstrom2
Else
End If
Mein Diagramm fängt bei pixel 110 in y richtung an. Deswegen wird die variable modulstrom7uhr auf den wert 110 als erstes geschrieben. Anschließend ziehe ich von den 110 den aktuellen Wert, multipliziert mit 5, ab.
Dadurch wird die y richtung kleiner, sprich mein entsprechender balken oder was ich verwende müsste im display mit größer werdendem ADC Input nach oben gehen. Modulstrom7uhr ist übrigens eine integer.
Zum ausgeben verwende ich den line befehl.
Line(14 , Modulstrom7uhr) -(18 , Modulstrom7uhr15) , 255
Line(18 , Modulstrom7uhr15) -(22 , Modulstrom7uhr30) , 255
usw.
Sobald ich aber nun eine zahl einlese während der entsprechenden uhrzeit, gehen die striche nach unten aus dem display raus?!?! und oben am ende aller linien in x richtung kommt die linie scheinbar in form von @-zeichen wieder rein und geht bis in die mitte. Je nach größe im ADC mal mehr mal weniger. Hab ich irgendwo einen denkfehler drin oder vertragen sich die vielen verschiedenen variablen nicht? wenn ich am anfang des programms z.b. die "modulstrom7uhr" variable und auch die anderen mit einem festen wert progge, funzt das diagramm prima.
hilfe! =P