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
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
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.
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, ...
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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!
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.
Die konkrete Frage ist: Was muss ich im Programm "Arduino" eingeben,
damit die Drehzahl auf einem seriellen Monitor ausgegeben wird. Wir
verwenden einen Tachogenerator.
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?
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
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.
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.
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.
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
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.
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
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.
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!
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.
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.
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
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.
Funktioniert immer wieder.
Einfach dummdreist rüberkommen und anspielen dass man eigentlich grosses
(Diplomarbeit) vorhat.
Lasst sie doch einfach verhungern.
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.
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.