Hallo
Ich möchte mit einem Hall-Senor die Drehzahl (also die Frequenz) eines Motors in rpm messen.
Leider bin ich noch ziemlicher Anfänger und habe keine Ahnung, wie der Code aussehen müsste.
Kann mir bitte jemand helfen?
Danke und Grüße
Sag uns doch mal wie genau dein Aufbau aussieht denn es ist ein Unterschied ob du einen Hall-Sensor verwendest der eine Spannung ausgibt in abhängigkeit der stärke des Magnetfeldes oder ob der Hall-Sensor nur einen Impuls ausgibt wenn das Magnetfeld stark genug ist.
Hallo
na ja such mal nach "Arduino Frequenz messen" da wir sich was doch inden lassen
Heinz
Sorry für die ungenaue Beschreibung. Ich befestige eine Drehscheibe am Motor und darauf klebe ich einen Magenten. Der Hall-Sensor gibt dann also jedesmal einen Impuls, wenn der Magnet vorbeikommt.
Hallo,
kannst du schon einen digitalen Pin einlesen?
Wenn ja, reagiert er wie gewünscht auf den Sensor?
Wenn ja, musst du nur noch die zählen wieviel Pulse pro Zeiteinheit es sind und dann umrechnen.
Das mit dem digitalen Pin ist kein Problem, aber wie messe ich mit dem Arduino die Zeiteinheit?
Da lässt du dir millis() anzeigen. Jeweils wenn der "Impuls" eintrifft und rechnest die Differenz aus. Das wäre deine Zeiteinheit.
Aus meiner "Sketch Grabbelkiste" und geht bestimmt schöner...
if ( digitalRead(3) == HIGH ) // IR Sensor überwachen und bei "ein" Millis merken
{
zeit = millis();
}
laufzeitalt = laufzeit; // macht die aktuelle Rundenzeit zur alten Rundenzeit
laufzeit = zeit - altzeit; // Zeit (Millis) für eine Umdrehung
differenz = laufzeit - laufzeitalt; // vergleicht die Zeit der aktuellen Runde mit der davor
altzeit = zeit; //aktuelle Zeit zur vorhergehenden Zeit machen
Zum Umdrehungsmessen bzw Frequenz gibt es 2 Strategien:
Wenn die Umdrehungszahl/ Frequenz niedrig ist die Zeit zwischen 2 Impulsen messen.
Wenn die Umdrehungszahl/ Frequenz hoch ist zählt man die Impulse pro Zeitintervall.
Es gibt einen Übergangsbereich wo beide Möglichkeiten sinnvoll sind.
Das mögliche Zeitintervall sollte man so wählen daß die Daten in einem vertretbaren Zeit aufgefrischt werden. So zwischen 0,1-1Sekunde. Es hat keine Sinn ein Intervall von 30 Sekunden zu wählen weil der Motor 5 Umdrehungen pro Sekunde macht. Ins Intervall sollten schon mindestens 5-10 Impulse bei Minimalgeschwindigkeit fallen.
Also zusammenfassend:
Weche Drehzahlen willst Du messen?
Grüße Uwe
Und bei niedrigen Umdrehungen kann man auch mit mehreren Magneten arbeiten. Kommt halt wie schon gesagt auf die Umstände an.
Ja, die muß man dann aber gleichmäßig aufkleben sodaß alle den selben winkel untereinander haben. Ein 3D gedrucktes Teil oder Lasergeschnitten könnte die geforderte Genauigkeit bieten.
Grüße Uwe
Vollkommen richtig Uwe.
Wir haben vor vielen Jahren - es gab noch keine 3D-Drucker, meine mechanischen Fähigkeiten sind bescheiden - mal sowas verwendet und mit einer Gabellichtschranke abgetastet. Hat super funktionert (naja, wieso auch nicht )
Wenn der Motor einigermaßen schnell dreht, macht es Sinn, für den Magneten ein Loch in die Scheibe zu bohren, und in da reinzukleben, dass er nicht wegfliegt, sonst wirds gefährlich, weil das Ding sonst wie eine Steinschleuder wirkt. Und ausserdem macht es Sinn 2 Magneten zu verwenden, die sich auf der Scheibe gegenüber liegen, dass die Scheibe keine Unwucht bekommt. Natürlich auch nur wenn sie sich schnell dreht.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.