Forum: Analoge Elektronik und Schaltungstechnik aus 10bit spannung und strom -> watt


von tobias hofer (Gast)


Angehängte Dateien:

Lesenswert?

hallo

ich baue mir eine elektronische last. nun habe ich
zwei 10bit wandler mit denen ich die spannung und den strom
messe.
aus dieser spannung und dem strom erechne ich die leistung.

nun mein problem:
kann mir jemand vieleicht einen tip geben wie ich am besten die leistung 
"stellen richtig" auf meinem display anzeige?

z.B
spannung vom wandler ist 1V mein unsigned long wert ist dann
ja 1000
strom vom wandler 500mA, mein wert 500
1000*500=500000 auf dem display sollte dann stehen 0.5W usw.

ich habe mal im anhang mein lösungsversuch.
vieleicht kann mir jemand einen tip für eine profesionellere,elegantere 
lösung geben.

besten dank
tobias

von profi (Gast)


Lesenswert?

Hallo, es führen viele Wege nach Rom...
Nur ein paar Anregungen: (habe selbst nichts ausprobiert)

az_zeichen=sprintf(buf,"%lu",watt);  -->
az_zeichen=sprintf(buf,"0%lu",watt);
das bringt eine führende Null für den 1. Fall, dann kannst Du die 3 
Fälle gleich behandeln (die Länge ist jetzt im Fall 2 und 3 um eins 
größer, k und l um 1 erhöhen!)

dann kannst du die Fallunterscheidung anfangs machen und alle 3 Fälle 
gleich behandeln:
if( watt                  <=   999) {k=0;l=1;}
if((watt >=  1000)&&(watt <=  9999)){k=1;l=2;}
if((watt >= 10000)&&(watt <= 99999)){k=2;l=3;}
evtl. ist l immer k+1, testen !

for(j=0;j<1;j++){  -->
for(j=k;j<l;j++){    //0 --> k, 1 wird zu l (kleines L)

Statt der 3 if-Zeilen kannst Du auch ein Konstrukt mit ? machen:
k=(watt<=999)?0:(watt<=9999)?1:2
oder zumindest so ähnlich

oder einfach die Länge des Strings minus einer Konstanten (k=länge-3).

von tobias hofer (Gast)


Lesenswert?

hallo

az_zeichen=sprintf(buf,"0%lu",watt);

verstehe ich das richtig das ich bei der sprintf() fkt. das 0
in diesem bsp. durch k ersezte,
und wenn k=0 -> ausgabe auf lcd 0.xxx
und wenn k=1 -> ausgabe auf lcd x.xxx
und wenn k=2 -> ausgabe auf lcd xx.xx

das wäre wirklich eleganter.
weist du wie es mit dem speicherbedarf aussieht von sprintf()?

auf jeden fall besten dank.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.