Forum: Mikrocontroller und Digitale Elektronik Drehzahlmessung eines Motors


von Simon (Gast)


Lesenswert?

Hallo liebe Arduinofamilie und Freunde,
ich habe das Problem, dass ich von einem Motor die Drehzahl messen will. 
Der Motor besitzt einen Encoder, zum gleichrichten des Signals wird ein 
Vorwiderstand mit Diode in die Schaltung gepackt.

Jetzt weiß ich aber nicht wie ich die Drehzahl des Motors messe.404

von Achim M. (minifloat)


Lesenswert?

Simon schrieb:
> Der Motor besitzt einen Encoder

Schön, dann einfach dort die Frequenz messen. Dazu brauchst du ein 
Multimeter was Frequenzmessung kann.

Simon schrieb:
> zum gleichrichten des Signals wird ein Vorwiderstand mit Diode in die
> Schaltung gepackt

Äh, das bringts nicht. So ein Encoder ist ja kein AC-Tachogenerator.

mfg mf

von Wolfgang (Gast)


Lesenswert?

Simon schrieb:
> Jetzt weiß ich aber nicht wie ich die Drehzahl des Motors messe

Das kommt darauf an, was dein Encoder für Signale liefert und wie die in 
Zusammenhang mit der Drehung des Rotors stehen.

von Jester (Gast)


Lesenswert?

Achim M. schrieb:
> Simon schrieb:
>> Der Motor besitzt einen Encoder
>
> Schön, dann einfach dort die Frequenz messen. Dazu brauchst du ein
> Multimeter was Frequenzmessung kann.

Oder einen handelsüblichen Frequenzzahler, oder ein Oszilloskop, ...

von Clemens S. (zoggl)


Lesenswert?

Der grüne Draht des Encoders muss auf 24V, der blaue auf 5V der gelbe 
auf Gnd.

die Diode muss von 24V auf den INT Eingang des Arduino. Diese 
konfigurierst du als Zähler, einen Timer als Overflow INT und liest beim 
Überlauf den Zähler aus und dividierst die Anzahl durch 42.

freut mich dass ich helfen konnte.

sg & guten Rutsch

von Simon (Gast)


Lesenswert?

Wir haben aber ein Wechselsignal, die Wechselspannung ist im Verhältnis 
zur Drehzahl proportional. Jedoch ich benötige ein Programm zur Ausgabe 
der Drehzahl am seriellen Monitor. Danke für euere raschen Antworten.

von Cartman (Gast)


Lesenswert?

> Danke für euere raschen Antworten.

N.z.d.

von Simon (Gast)


Lesenswert?

Cartman schrieb:
>> Danke für euere raschen Antworten.
>
> N.z.d.

Ich bräuchte aber immer noch ein Programm. hh

von Friede Freude Eierkucken (Gast)


Lesenswert?

Simon schrieb:
> Danke für euere raschen Antworten.

Na dann sind ja alle Unklarheiten beseitigt und der Thread
kann geschlossen werden. Schön dass das alles so reibungs-
los gelaufen ist.

von Friede Freude Eierkucken (Gast)


Lesenswert?

Simon schrieb:
> Der Motor besitzt einen Encoder, zum gleichrichten des Signals wird ein
> Vorwiderstand mit Diode in die Schaltung gepackt.

Simon schrieb:
> Ich bräuchte aber immer noch ein Programm.

Poste deinen wundervollen Prosa-Schaltplan im Arduino-Forum
(https://arduinoforum.de/) und harre der Dinge die da kommen.

von c-hater (Gast)


Lesenswert?

Simon schrieb:

> Wir haben aber ein Wechselsignal, die Wechselspannung ist im Verhältnis
> zur Drehzahl proportional.

Sehr unwahrscheinlich, dass das wirklich so ist. Encoder liefern sowas 
normalerweise nicht.

Encoder liefern normalerweise zwei Rechtecksignale, deren Frequenz in 
einem ganzzahligen Verhältnis zur Motordrehzahl steht. Nicht weniger, 
aber auch nicht mehr.

von Udo S. (urschmitt)


Lesenswert?

Simon schrieb:
> Ich bräuchte aber immer noch ein Programm.

Dann schau dich da mal um, da gibts einige
https://www.mikrocontroller.net/articles/AVR_Softwarepool#Drehzahlmesser

von Simon (Gast)


Lesenswert?

Unser Encoder liefert aber eine sinusförmige Wechselspannung. Je höher 
die Drehzahl desto höher ist die Spannung.

von Simon (Gast)


Lesenswert?

Das heißt ich würde ein Programm benötigen, dass erkennt wenn die 
Spannung ansteigt und dann die Drehzahl ansteigen lässt. Zudem über 
einen serieln Monitor.

von Horst V. (hoschti)


Lesenswert?

Simon schrieb:
> Unser Encoder liefert aber eine sinusförmige Wechselspannung. Je höher
> die Drehzahl desto höher ist die Spannung.

Dann ist das ein Tacho-Generator. Daher macht die Beschaltung mit Diode 
ond Widerstand auch Sinn.

von Egon D. (Gast)


Lesenswert?

Simon schrieb:

> Unser Encoder liefert aber eine sinusförmige
> Wechselspannung. Je höher die Drehzahl desto höher
> ist die Spannung.

Frage: Warum ist dieses Sauerkraut überhaupt nicht sauer?
Antwort: Weil es sich dabei nicht um Sauerkraut handelt,
sondern um Nudeln!


Falls Deine Aussage tatsächlich stimmt, handelt es sich
schätzungsweise nicht um einen Encoder, sondern um einen
Tacho-Generator.

von Wolfgang (Gast)


Lesenswert?

Simon schrieb:
> Je höher die Drehzahl desto höher ist die Spannung.

... oder doch auch die Frequenz?

von Horst V. (hoschti)


Lesenswert?

Simon schrieb:
> Das heißt ich würde ein Programm benötigen, dass erkennt wenn die
> Spannung ansteigt und dann die Drehzahl ansteigen lässt. Zudem über
> einen serieln Monitor.

Dann fang doch mal klein an:

 - einlesen eines Analogwertes
 - ausgeben dieses Wertes auf den Seriellen Monitor

Wenn das klappt, den Tacho ( oder ein Poti) an den Analogeingang des 
Arduino anschließen und die Werte (s.o.) beobachten, wenn der Motor 
dreht oder du am Poti schraubst.

von Simon (Gast)


Lesenswert?

Danke, ja es handelt sich wirklich um einen Tachogenerator, da war ich 
auf der falschen Fährte unterwegs.

Aber wie gebe ich jetzt eine Drehzahl aus?

Denn ich habe große Schwierigkeiten beim programmieren und muss zudem 
eine Diplomarbeit verfassen, ich entschuldige mich daher für meine 
Unwissenheit.

von Udo S. (urschmitt)


Lesenswert?

Simon schrieb:
> Denn ich habe große Schwierigkeiten beim programmieren und muss zudem
> eine Diplomarbeit verfassen

Klar, mach deine Hausaufgaben selber sonst lernst du nix.

von Simon (Gast)


Lesenswert?

Wie wenn ich nicht weiß wie ich ein passendes Programm schreibe. Im 
Unterricht haben wir nie so ein Problem behandelt, daher brauche ich 
euere Hilfe.

von Friede Freude Eierkucken (Gast)


Lesenswert?

Simon schrieb:
> und muss zudem eine Diplomarbeit verfassen

Extrem-Toll-Alarm.

Und es ist noch lang nicht Freitag.

von Simon (Gast)


Lesenswert?

Für was schreibt man in ein Forum wenn man selber keine Ahnung hat. 
Dumme Sprüche kann jeder geben. Danke für nichts.

von Friede Freude Eierkucken (Gast)


Lesenswert?

Simon schrieb:
> Für was schreibt man in ein Forum wenn man selber keine Ahnung hat.

Wie (blöd) man in den Wald hineinruft so (blöd) schallt es zurück.

von hacker-tobi (Gast)


Lesenswert?

Wenn die Spannung proportional zur Drehzahl ist, würde ich das Signal 
mit RC Tiefpass glätten und das dann mittels des ADC auswerten.

von Einer (Gast)


Lesenswert?

Simon schrieb:
> Aber wie gebe ich jetzt eine Drehzahl aus?
1
Serial.print(drehzahl);

von Horst V. (hoschti)


Lesenswert?

Das hier übliche Rumgepöbel ist zwar lästig, aber nicht ganz unpassend. 
Da wirst Du mit leben müssen.

Aber jetzt zum Thema:

 - Was hast Du denn schon probiert?
 - Wo genau kommst Du denn nicht weiter?

 - Was beherrschst Du denn in Sachen programmieren?

Zu erwarten, das wir deine Aufgaben machen, das wird nix. Bei konkretem 
Fragen kommen aber immer auch brauchbare Antworten. Und natürlzauf 
Nachfragen eingehen. Sonst steigt der Frustfaktor recht schnell hier im 
Forum!

: Bearbeitet durch User
von Friede Freude Eierkucken (Gast)


Lesenswert?

Horst V. schrieb:
> Da wirst Du mit leben müssen.

Vielleicht solle man zum besseren Verständnis mal auf
die Wörter-Sammlung Netiquette hinweisen. Wer darin
als Fragesteller keinen Sinn sieht der braucht hier nicht
weitermachen.

von Simon (Gast)


Lesenswert?

Die konkrete Frage ist: Was muss ich im Programm "Arduino" eingeben, 
damit die Drehzahl auf einem seriellen Monitor ausgegeben wird. Wir 
verwenden einen Tachogenerator.

von Horst V. (hoschti)


Lesenswert?

Wir kennen dein Programm "Arduino" nicht. Meinst Du die Arduino-IDE?

Zum Ausgeben der Drehzahl musst du die erst mal aus der Tachspannung 
berechnen. Die Ausgabe selber hat "Einer (Gast)" ja schon beschrieben. 
Wie das geht, solltest du aber alleine hinbekommen. Hast Du irgendwelche 
Unterlagen zu deinem motor und dem angebauten Tacho? Bitze hier zeigen! 
(Datenblatt hochladen oder verlinken).

Hast Du denn die Schritte, die ich weiter oben aufgeführt habe, schon 
durch. Oder ist dir das alles schon klar?

von Erich (Gast)


Lesenswert?

Simon schrieb:
> Die konkrete Frage ist: Was muss ich im Programm "Arduino" eingeben,
> damit die Drehzahl auf einem seriellen Monitor ausgegeben wird. Wir
> verwenden einen Tachogenerator.


Was hast du bisher selbst recherchiert?
Nix?
Gibt es keine Bezeichnungen, Namen, Datenblätter zu deinem Kram und 
Zeuge?
Bist du sicher die richtige Ausbildung zu machen?

Gruss

von Wolfgang (Gast)


Lesenswert?

Simon schrieb:
> Wie wenn ich nicht weiß wie ich ein passendes Programm schreibe. Im
> Unterricht haben wir nie so ein Problem behandelt, daher brauche ich
> euere Hilfe.

Bei der Diplomarbeit sollst du das selbständig Arbeiten erlernen. Da 
gibt es keinen Unterricht, in dem einem die gebratenen Tauben in den 
Mund fliegen.

von Friede Freude Eierkucken (Gast)


Lesenswert?

Friede Freude Eierkucken schrieb:
> Extrem-Toll-Alarm.

"Extrem-Troll-Alarm" sollte es werden.

Wer es bis jetzt nicht gemerkt hat dass man hier von einem
Troll an der Nase herumgeführt wird dem ist nicht zu helfen.

Die letzte Erklärung dass hier ein Nicht-Troll am Werke ist
besteht in der Annahme eines Betonkopfes.

von Stefan F. (Gast)


Lesenswert?

Simon, ich denke du musst ganz allgemein Programmieren lernen. Das 
können wir dir hier nicht beibringen, dafür gibt es Bücher und Tutorials 
im Internet.

Voraussetzung für die Entwicklung eines funktionierenden Programmes für 
spezieller Hardware ist allerdings auch, dass man von dieser Hardware 
einen Plan vorliegen hat. Sonst brauchst du gar nicht anfangen.

von m.n. (Gast)


Lesenswert?

Simon schrieb:
> Arduinofamilie

Wenn es um AVRs geht: 
http://mino-elektronik.de/fmeter/fm_software.htm#bsp7
Nur Text - kein Video ;-)

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Simon schrieb:
> Die konkrete Frage ist: Was muss ich im Programm "Arduino" eingeben,
> damit die Drehzahl auf einem seriellen Monitor ausgegeben wird. Wir
> verwenden einen Tachogenerator.

Also benötigst Du eine Frequenzmessung. Dann lese Dich doch mal in 
diesen Thread ein:
Beitrag "AVR-Frequenzzählermodul 1Hz - 40MHz"

Grüßle
Volker

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Horst V. schrieb:
> Zum Ausgeben der Drehzahl musst du die erst mal aus der Tachspannung
> berechnen

Nein, natürlich nicht, es wird die Frequenz der Nulldurchgänge gemessen, 
bei einen AVR tut es dafür gut der eingebaute Komparator.

Schön, wie dutzende Vollhorsts es dem TO ordentlich gegeben haben, blöd 
daß keiner von denen offenbar weiss wie es richtig geht.

von Clemens S. (zoggl)


Lesenswert?

Also gut, wollen wir mal nicht so sein.
Dein Tachogenerator (hier könnte ihr Datenblatt mit Link stehen) 
liefert eine Wechselspannung deren Frequenz und Amplitude von der 
Drehzahl abhängt.

Wenn du an geringen Drehzahlen nicht interessiert bist, kannst du zwei 
Dioden antiparallel schalten, um die maximale Spannung zu begrenzen. 
Dann kpnfigurierst du den Komparator wie von laberkopp vorgeschlagen auf 
Nulldurchgang und interrupt

http://www.gammon.com.au/forum/?id=11916

bei jedem Interruppt inkrementierst du jetzt eine Variable.

parallel dazu konfigurierst du einen Timer dass er bei Überlauf einen 
Interrupt auslöst.

https://www.exp-tech.de/blog/arduino-tutorial-timer

in dieser interrupt routine speicherst du den Stand der Variable in eine 
andere Variable und setzt den Zähler auf Null.

im Hauptprogramm schaust du nach, wenn der wert deiner übergabevariable 
ungleich Null ist, berechnest daraus die Drehzahl und schickst den Wert 
über die Serielle Schnittstelle nach draußen und setzt diese auf Null.

https://www.arduino.cc/en/Tutorial/LibraryExamples/SoftwareSerialExample

damit hast du schon einmal ein halbwegs brauchbares Programm, das du 
anschließend noch verbessern kannst.

1: analoges Frontend gegen ESD schützen und RC Filter einbauen.
2: Prellen des Komparators verhindern. entweder in SW oder HW
3: Timer Interrupt dynamisch konfigurieren und automatisch zwischen 
Torzeit und Timer Messung umzuschalten.

sg

von PittyJ (Gast)


Lesenswert?

Simon schrieb:
> Denn ich habe große Schwierigkeiten beim programmieren und muss zudem
> eine Diplomarbeit verfassen, ich entschuldige mich daher für meine
> Unwissenheit.

Diplomarbeiten gibt es nicht mehr.
Master und Bachelor, aber kein Diplom. Es sei denn, du studierst seit 20 
Jahren.

Bitte um mehr Wahrheit.

von H. H. (Gast)


Lesenswert?

PittyJ schrieb:
> Simon schrieb:
>> Denn ich habe große Schwierigkeiten beim programmieren und muss zudem
>> eine Diplomarbeit verfassen, ich entschuldige mich daher für meine
>> Unwissenheit.
>
> Diplomarbeiten gibt es nicht mehr.
> Master und Bachelor, aber kein Diplom. Es sei denn, du studierst seit 20
> Jahren.

Da liegst du falsch!

von m.n. (Gast)


Lesenswert?

Clemens S. schrieb:
> damit hast du schon einmal ein halbwegs brauchbares Programm, das du
> anschließend noch verbessern kannst.

Und Du glaubst, der TO könnte etwas damit anfangen?
Irgendwelche Varibalen oder Überläufe per Interrupt zu zählen, bringt 
ihn nicht weiter.

Angesichts der niedrigen Frequenzen ist ein reziprokes Messverfahren 
angesagt, wie es unter den beiden Links von Volker B. und m.n. verwendet 
wird.

Simon schrieb:
> Ich bräuchte aber immer noch ein Programm.

Welchen Controller verwendest Du denn? Daß Du eine Frequenzmessung 
durchführen mußt, deren Ergebnis passend skaliert wird, sollte Dir schon 
klar sein.

von Udo S. (urschmitt)


Lesenswert?

m.n. schrieb:
> Welchen Controller verwendest Du denn?

siehe

Simon schrieb:
> Hallo liebe Arduinofamilie und Freunde,

von Stefan F. (Gast)


Lesenswert?

Udo S. schrieb:
>> Welchen Controller verwendest Du denn?
> siehe
> Hallo liebe Arduinofamilie und Freunde,

Das ist doch keine Antwort auf die Frage. Es gibt extrem 
unterschiedliche Arduino Controller.

von Wendels B. (wendelsberg)


Lesenswert?

Horst V. schrieb:
> Zu erwarten, das wir deine Aufgaben machen, das wird nix.

Der Klassiker:
Beitrag "Einheitlicher Umgang mit faulen Schülern etc.?"

von Achim M. (minifloat)


Lesenswert?

Simon schrieb:
> Denn ich habe große Schwierigkeiten beim programmieren und muss zudem
> eine Diplomarbeit verfassen, ich entschuldige mich daher für meine
> Unwissenheit.

Troll

von Friede Freude Eierkucken (Gast)


Lesenswert?

Wendels B. schrieb:
> Der Klassiker:
> Beitrag "Einheitlicher Umgang mit faulen Schülern etc.?"

Und trotzdem gibt es immmer wieder zahlreiche hilfsbereite D******
die es nicht checken und die solche Poster/Poser in ihren Absichten
unterstützen.

Man kann sich die Leute ja hier aus den Beiträgen zusammensuchen.
Entweder sind sie mit massiven Scheuklappen oder einem Brett vor
dem Kopf ausgestattet. Ich versteh es nicht wie man sich von
Trollen so verarschen lassen kann.

von m.n. (Gast)


Lesenswert?

Friede Freude Eierkucken schrieb:
> Ich versteh es nicht wie man sich von
> Trollen so verarschen lassen kann.

Das glaube ich Dir.

von H.Joachim S. (crazyhorse)


Lesenswert?

Funktioniert immer wieder.
Einfach dummdreist rüberkommen und anspielen dass man eigentlich grosses 
(Diplomarbeit) vorhat.
Lasst sie doch einfach verhungern.

von Wolfgang (Gast)


Lesenswert?

Clemens S. schrieb:
> damit hast du schon einmal ein halbwegs brauchbares Programm, das du
> anschließend noch verbessern kannst.

Die ganzen Nullsetzereien kann man sich gut sparen, wenn man sich den 
vorherigen Wert jeweils merkt.

von m.n. (Gast)


Lesenswert?

H.Joachim S. schrieb:
> Funktioniert immer wieder.

Bleib doch locker! Wenn er am Ende nicht laufen kann oder will, fällt er 
auf die Nase. Da helfen auch die paar angetragenen Informationen nicht.

von H.Joachim S. (crazyhorse)


Lesenswert?

Ich meine doch nicht dass Simon seine Lösung bekommt (wer das wirklich 
will liefert mehr) sondern dass immer ne Menge Leute anspringen.

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.