Frage zum Auslesen analoger Spannungen / sukzessiver Approximation des Wertes

Hallo Leute,
ich habe einen Quellcode zum Ermitteln einer angelegten Spannung bekommen, jedoch fällt mir ein Punkt darin schwer nachzuvollziehen. Der Quellcode dazu sieht folgendermaßen aus:

const int analogpin=A1;   //analog pin
int val=0;                          //result from analogread
int compval=0;                 //value for approximation
int voltval=0;                    //volt value
int i=10;                           //loop variable

void setup() {
Serial.begin(9600);
}

void loop() {
Serial.println("Die Wandlung beginnt");
val=analogRead(analogpin);
Serial.println(val);
delay(777);
while (val!=compval)
{
  if (compval<val)
  {
    compval=compval+pow(2,i);
    i=i-1;
  }
  else
  {
    compval=compval-pow(2,i);
    i=i-1;
  }
  Serial.println(compval);
  delay(1000);
}
if (val==compval)
{
  voltval = compval * (3.3/1024) ;  
  Serial.println("Wandlung beendet");
  Serial.println("Der Messwert ist: ");
  Serial.println(compval);
  Serial.println("Es liegen somit ");
  Serial.print(voltval);
  Serial.println("V am Pin A1 an!");
  while (Serial.available()==0)                   //Warteschleife
  {
    ;
  }
 }
}

Kann mir jemand (kurz) erklären, welchen Sinn die Approximation des Wertes hat?
Die angelegte Spannung wird zu Beginn einmal ausgelesen, anschließend in der While-Schleife eine neue Variable so lange angenähert, bis der Wert mit dem ausgelesenen übereinstimmt und schlussendlich der angenäherte Wert in Volt umgerechnet und seriell ausgegeben - nur wieso der Aufwand mit bzw. in der Schleife? Eine direkte Umrechnung des zu Beginn ausgelesenen Analog-Wertes liefert schließlich den gleichen Wert... :roll_eyes:

Gruß :slight_smile:

Ich sehe keinen Sinn in der Aproximation und auch einigen delay.
Das kommt mir wie ein Gag-Sketch vor, um Anfänger zu verwirren.

Gruß Tommy

Alles klar - vielen Dank!
Hintergrund der Frage ist eine geforderte Ausarbeitung zu dem Sketch - dann hat sich wohl mein Professor einen Scherz damit erlaubt...

Gruß :slight_smile:

pow (2, i)

ist übrigens völliger Unsinn.

Wie so fast alles an diesem Sketch.

Gruß Tommy

Ich könnte mir allenfalls vorstellen, daß ursprünglich ein DAC und Komparator verwendet wurde, um einen ADC nachzubilden.

Um zu dieser Vermutung zu kommen, müßte man aber noch sehr viel hinzudichten.

Gruß Tommy

Hi

Wenn Das hier eine Hausaufgabe ist, wird wohl so ziemlich Alles drin vorkommen, was zuvor gelehrt wurde - und man erwartet eine Erklärung, Die dem Lehrstoff nahe kommt.
Sinn oder Unsinn ... aber vll. imponiert es dem Lehrkörper, wenn man zwar den ganzen pow-Kram interpretieren kann, aber auch erkannt hat, daß man das Alles nicht braucht, da man mit dem gleichen Wert, Den man zuvor schon hatte, weiter macht.

Wir werden Es nie erfahren!

Wie bei Hausaufgaben üblich, wird das Thema spätestens zum Abgabetermin in der Versenkung verschwinden und nie mehr hervorgekramt.

MfG