Experimente mit Arduino in Verbindung mit der Experimentierwippe


Der Sensor der Experimentierwippe wird an einen AD-Wandler mit vorgeschaltetem Integrator angeschlossen. So kann die Ladung gemessen, die während der Drehung der Wippe durch die Spule des Sensors fließt. Diese Ladung ist dem Drehwinkel proportional. Als AD-Wandler ist Arduino Uno gut geeignet. Der Schaltplan eines zu ihm passenden Integrators mit dem hervorragenden dualen Operationsverstärker LTC1051 (CN8) ist in Abb. 1 zu sehen.

Abb.1

In der Abb.2 ist eine Platine abgebildet, auf der diese Schaltung verwirklicht werden kann. Diese Patine (sie ist für 6€ incl. Mehrwertsteuer bei Höhne-Messtechnik erhältlich) wurde für eine zum CASSY der Firma Leybold passende Integratorbox (Coulombbox) entwickelt. Mit den Leiterringen um die kreisförmigen Öffnungen wird eine elektrische Verbindung zu zwei Bananensteckerbuchsen für die Eingangsspannung hergestellt (siehe Abb.3). Zur Realisierung eines guten Kontaktes müssen diese Ringe mit Lötzinn überzogen werden. Die Platine ist an den genannten Buchsen festgeschraubt. Abb. 4 zeigt eine Box, die sowohl den Arduino Uno als auch den daran angeschlossenen Integrator enthält.

Der Integrator erhält seine Versorgungsspannung über die Anschlüsse GND und +5V auf dem Arduinoboard. Die Schwarze Buchse auf der Box (siehe Abb.4) ist an die Mitte eines Spannungsteilers aus zwei 1KΩ-Widerständen angeschlossen (siehe Abb.1). Die grüne Buchse ist über einen 10KΩ-Widerstand mit dem invertierenden Eingang (-inA) des Operationsverstärkers verbunden. Auf diese Weise ist der Integrator für Eingangsspannungen von -2,5 V bis +2,5V ausgelegt. Die Ausgangsleitung des Integrators ist an den Analogeingang A0 des Arduinoboards angeschlossen. Neben der grünen Buchse ist noch eine rote Buchse auf der Box (siehe Abb. 4) erkennbar. Diese ist an den Analogeingang A2 des Arduinoboards angeschlossen. Sie wurde angebracht, damit auch eine Spannung zwischen der schwarzen und der roten Buchse und nicht nur deren Integral gemessen werden kann. Vor den genannten Buchsen ist die Taste zum Entladen des Kondensators zu sehen.


Abb. 2

Der 0,5Ω-Widerstand ist auf der Platine als lange , dünne, hin und zurück laufende Leiterbahn zu sehen.

Das Spindelpotentiometer wird so eingestellt, dass bei der Eingangspannung 0 die Spannung zwischen outA und -inA ebenfalls 0 ist.

Wenn dies nicht der Fall ist, dann driftet das Ausgangssignal auch dann, wenn die Eingangsspannung 0 ist.

Abb. 3

Abb.4



Programm zur Messung der Spannung an A0


//Programm zur Darstellung der vom Integrator augegebenen Spannungen (Nanocoulombs) für Arduino

int eingang = A0;  //Eingang A0

float Wer = 0;  //Spannung an A0, 10-bit-Wert 0-1024

float w =100;  //Mittelungszeit zur Bestimmung von Wer= n, wenn die Spannung zwischen A0 und dem Mittelabgriff des Potentiometers 0 ist.

float v= 100;  //Mittelungszeit während der Messung

float wi = 0; // Wer - Wer0

float n = 0;  //Wer, wenn die Spannung zwichen A0 und dem Mittelabgriff des Potentiometers 0 ist.

int m = 0;// m steht für die Zahl der Messwerte, aus denen ein Mittelwert gebildet werden soll.

long tt = 0;  //Millis()

long nil = 0;  //mit Millis()


void setup()

{

  Serial.begin(31250);

  tt = millis();

  do// Hier wird n bestimmt. Mittelwert aus m Messwerten.

  {

    Wer = analogRead(eingang) + Wer;

    ++m;

    nil = millis();

  }

  while (nil - tt < w);

  n = Wer / m;

}

//--------------------------------------

void loop()

{

  m = 0;

  tt = millis();

  Wer = 0;

  wi = 0;

  do//Mittelwertbildung aus m Messwerten

  {

    Wer = analogRead(eingang);

    wi = Wer - n + wi;

    ++m;

    nil = millis();

  }

  while (nil - tt < v);

delay(50);//zur Verminderung der Messfrequenz

  wi=(wi/m)*5/1024;// Das linke wi steht für die Ausgangsspannung des Integrators. 5V entspricht 1024

  Serial.println(wi);

  Serial.print(",");

  Serial.print(0);

  Serial.print(",");

  Serial.print(-2.5);//Der Abstand zwischen den zu -2,5 und +2,5 gehörenden Linien ist gleich 10/12 von der Höhe des Diagrammfeldes

// Die Ausgangsspannung des Integrators ist ein Wert zwischen -2,5 V und +2,5 V . 1V entspricht 1/3 Mikrocoulomb.

  Serial.print(",");

  Serial.print(2.5);//

  Serial.println(",");

}


Mit Serial.print(-2.5); und Serial.print(2.5); wird erreicht, dass sich die Skalierung auf der U-Achse zum U-t-Diagramm nicht ändert, solange die Spannung zwischen -2,5 V und +2,5V bleibt. Wenn diese Befehle nicht gegeben werden, dann passt sich die Skalierung den Maximalspannungen während einer Messung an. Sind die zu erwartenden Spannungen geringer z.B. zwischen 0,5 V und -0,5V, dann sollte man 2,5 und -2,5 durch 0,5 und -0,5 ersetzten.


Die folgenden Diagramme lieferte der serielle Plotter mit diesem Programm.

1. Experiment zum Schwerpunktsatz https://www.youtube.com/watch?v=B3Q8sRFgG9g&t=30s

Eine auf der Wippe rollende Glaskugel stößt auf eine zweite auf der Wippe liegende Glaskugel. Anschließend rollen beide Kugeln. Der Schwerpunkt bewegt sich gleichförmig.


Abb.5

    2. Schwingung der Wippe

    Wird auf den Rand der Wippe geklopft, dann schwingt anschließend die Wippe gedämpft mit 10 Hz.

Abb. 6


    3. Schwingung einer Schraubenfeder https://www.youtube.com/watch?v=wlnEcwHaJmM&t=2s

    Das folgende Diagramm entstand während der Schwingung eines Federpendels (Schwingungszeit = 0,8 s), welches am vorderen Rand der Wippe aufgehängt war.



Abb. 7


    4. Schwebung

    Zwei über der Mitte der Wippe mit verschiedener Frequenz pendelnde Fadenpendel erzeugen eine als Schwebung bekannte Schwingungsform.



Abb. 8



    5. Kreisbewegung

    Eine Kugel rotiert in einer auf der Wippe stehenden runden Schale. Mit diesem Experiment wird auf die Ähnlichkeit der Federschwingung mit der Kreisbewegung hingewiesen.


Abb. 9


Es muss angemerkt werden, dass die Zeit für delay() und v (Zeit während der ein Mittelwert gebildet wird ) zu den jeweiligen Experimenten passend gewählt werden müssen.


Im Diagrammfeld werden 50 Messwerte dargestellt. Interpolation ist zu empfehlen. Leider wird vom seriellen Plotter nicht die Zeit sondern stattdessen die Zahl der während der Messung aufgenommenen Messwerte angegeben. Damit man dieser Zahl die zugehörende Zeit zuordnen kann, muss die Zahl der Messwerte bestimmt werden, die während einer Sekunde von Arduino übertragen werden.

Wie in der Abb. 11 erkennbar ist, kann man auch eine Zeitskala dem Diagramm anfügen. Zu sehen sind zwei parallel laufende Strecken, die sich immer wieder schneiden. Die dabei gebildeten Abschnitte stehen jeweils für den Zeitabschnitt 1/8 s . Diese Zeitskala wird mit der unterstrichenen Zeile in dem nachfolgenden Programm bewirkt.

Das in der Abb. 11 sichtbare Diagramm wurde aufgenommen, als ein Schraubenziehers durch eine 2,8 cm hohe Spule fiel (siehe Abb. 10). Anhand dieses Diagramms kann man als Fallbeschleunigung den Wert 11m/s2 ermitteln. Die Parabel wurde der Messkurve mit dem Programm Mathe-Physik von G. Höhne angepasst.


Abb. 10  

   Abb. 11


int eingang = A0;  //Eingang A0

float Wer = 0;     //Spannung an A0, 10-bit-Wert 0-1024

float w = 100;     //Mittelungszeit zur Bestimmung von Wer= n, wenn die Spannung zwichen A0 und dem Mittelabgriff des Potentiometers 0 ist.

float v = 1;      //Mittelungszeit während der Messung

float wi = 0;      // Wer - Wer0

float n = 0;       //Wer, wenn die Spannung zwichen A0 und dem Mittelabgriff des Potentiometers 0 ist.

int m = 0;         // m steht für die Zahl der Messwerte, aus denen ein Mittelwert gebildet werden soll.

long tt = 0;       //Millis()

long nil = 0;      //mit Millis()

int mil = 0;       //Startzeit

float d = 0;       //Laufzeit

void setup() {

  Serial.begin(31250);

  tt = millis();

  do  // Hier wird n bestimmt. Mittelwert aus m Messwerten.

  {

    Wer = analogRead(eingang) + Wer;

    ++m;

    nil = millis();

  } while (nil - tt < w);

  n = Wer / m;

  mil = nil;  //Startzeit

}


//--------------------------------------

void loop() {

  m = 0;

  tt = millis();

  Wer = 0;

  wi = 0;

  do  //Mittelwertbildung aus m Messwerten

  {

    Wer = analogRead(eingang);

    wi = Wer - n + wi;

    ++m;

    nil = millis();

  } while (nil - tt < v);

  delay(10);//zur Verminderung der Messfrequenz

  wi = (wi / m) * 5 / 1024;  // Das linke wi steht für die Ausgangsspannung des Integrators. 5V entspricht 1024

  Serial.println(wi);

  Serial.print(",");

  Serial.print(0);

  Serial.print(",");

 nil =millis();

  d=0.04*sin(2*3.1416*(nil-mil)/250)/abs(sin(2*3.1416*(nil -mil)/250));//zur Darstellung einer Zeitskala

  Serial.print(-2.5+d);

   Serial.print(",");

   Serial.print(-2.5-d);  //Der Abstand zwischen den zu -2,5 und +2,5 gehörenden Linien ist gleich 10/12 von der Höhe des Diagrammfeldes

  Serial.print(",");

  Serial.print(2.5);  /

  Serial.println(",");

}



Der Integrator ist sehr vielseitig verwendbar. In der Abb. 12 ist eine Anordnung zur Aufnahme eines Schwingungsdiagramms (siehe Abb.13) zu sehen. An einer Schraubenfeder schwingt ein zylindrischer Gegenstand mit einem in eine Spule eintauchenden Magneten. Die dabei unter der vom Magneten verursachten Induktionsspannung fließenden Ladungen sind der Größe nach der Elongation proportional.


Abb. 12

Abb. 13




Wer die in Abb.4 dargestellte Box haben möchte aber nicht zum Basteln derselben bereit ist, kann sie bei

Höhne-Messtechnik für 120€ + Mehrwertsteuer bestellen.