Go Down

Topic: Schwingungsmessung mit Mikrocontroller (Read 90 times) previous topic - next topic

SerdarCora

Jun 16, 2019, 01:55 am Last Edit: Jun 17, 2019, 03:53 pm by SerdarCora
Hallo Leute,

ich habe eine Aufgabe im Studium bekommen, wo ich leider nicht zum Ende komme. Es wäre sehr nett, wenn ihr mir dabei eventuell helfen könntet.

Die Aufgabenstellung lautet wie folgt:
Stellen Sie ein Lösungskonzept auf, um mit einem Mikrocontroller eine Schwingungsmessung zu realisieren. Die aufgenommenen Daten sollen dabei an ein übergeordnetes System weitergegeben werden. Die gewählte Lösung soll ebenfalls im Versuch überprüft werden. Es soll eine Schwingung bis 30 kHz messbar sein.

Folgendes haben wir geschrieben:
Code: [Select]
int zaehler;
float timer;
float=timerOld;

void Setup()
{
zaehler++;
timer = micros() - timerOld;
timerOld = micros();
}



void loop()
{
if ((micros() - startzeit) >= messzeit)
{
float f = timer;
f = 1000000/f;
detachInterrupt(0);
if(f >= 150){
Serial.print("Zaehler: ");
Serial.println(zaehler);
}
else if(f < 30 && f >= 0){
Serial.print("Messung: ");
Serial.println(f, 1);
}
attachInterrupt(0, Setup, RISING);
zaehler = 0;
startzeit = micros();
}


Danke im voraus.

gregorss

Folgendes haben wir geschrieben:
...
Setze den Code bitte in Code-Tags. Dann ist er besser lesbar. Hübsche ihn vorher vielleicht noch ein bisschen auf :-)

Gruß

Gregor
„Ich glaube, ich leg' mich noch mal hin", sagte das Bit.

Doc_Arduino

Hallo,

ich empfehle dir dich nochmal mit dem Grundaufbau eines Sketches vertraut zu machen und dir das Bsp. von attachInterrupt nochmal genauer anzuschauen.
https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/

Kompilieren tut dein Sketch auch nicht, was bei seiner Kürze etwas schwach ist.

Pin 0 und 1 sollten erstmal grundsätzlich unbeschalten bleiben. Außer man hat ganz konkrete Gründe und weiß man was man tut. Beide Pins gehören zur seriellen Schnittstelle.

Alle Variablen die mit millis oder micros zu tun haben sollten pauschal unsigned long sein.
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Rentner

Hallo,

mich macht der Befriff "Schwingung" etwas stutzig .

Du solltst dir zunächst mal die Frage beantworten ob es um eine Frequenzmessung geht die 0/1 erkennt oder soll eine "Schwingung" gemessen werden können bei der ebenfall die Kurvenform näheringsweise gemessen werden kann. (Samperate 30 KHz)

Aus Deinem Ansatz könnte man ersteres schliessen, für den Fall gibts auh reichlich fertige Lösugen, allerdings so wie das jetzt ist wird das nix.

Heinz



Go Up