Pages: [1] 2 3   Go Down
Author Topic: Magnetische Encoder auswerten  (Read 3555 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 147
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Leute,
ich habe magnetische Encoder im Ensatz (von Megatron), die ich zur Regelung von DC-Motoren einsetze. Diese Encoder arbeiten nach dem Hall-Effet und werten diesen als Incrementalencoder aus.
Ich habe jetzt Probleme mit der Auswertung dieses Sensors. Ich weiß aber noch nicht wo das Problem liegen kann. Entweder rauschten die Signale wie verrückt (aber es ist digital), oder der Sensor driftet, oder die Signale sind zu schnell für den Arduino, oder, oder.

Hat von euch schon mal jemand mit solchen Encodern gearbeitet?
Hat jemand eine Idee wie ich das Problem eingrenzen kann?

Vielen Dank
DrFlopp


Logged

Gurkengraeber
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Sind das die Dinger, wo man Magneten an der Seite positionieren muss... ?
Logged

Germany
Offline Offline
Edison Member
*
Karma: 46
Posts: 2310
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nicht nur Herstelelr, sondeern aus Fabrikat/Serie wären für uns sicherlich hilfreicher. Sensordrift und -rauschen klingt erst zwar pseudoprofessionell, entbehrt aber jeder Grundlage. Wie soll das denn zustande kommen? Erst mit einem Verweis auf ein entsprechendes Datenblatt, kann man den Fehler eingrenzen. Wie schnell kurbelst du denn an der Achse, dass du Geschwindigkeitsprobleme vermutest?
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Offline Offline
Full Member
***
Karma: 0
Posts: 147
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich bin immer wieder erbaut über eure hilfreichen Kommentare.
Also wie heißt es in der Arduino-Welt, wenn ein Weg- oder Winkelsensor im Stillstand seinen Wert ändert?
 
Wenn ein Sensorsignal von einer wilden Zickzacklinie überlagert wird, wie wird das in der Arduino-Welt bezeichnet?

Ich werde mich bemühen die korrekten professionellen Szeneausdrücke zu erlernen, doch bis dahin erbitte ich mir noch ein Wenig Geduld.

Ich habe diese Phänomene beobachtet und frage nun ob jemand schon Erfahrungen mit diesen Sensoren gesammelt hat. Mir geht es dabei erst einmal darum auszuschließen das es an dem Wirkprinzip (Hall-Effekt) liegt.

Die Sensoren gibt es in unterschiedlichen Auflösungen ich verwende 256 und 1024 imp.

http://www.megatron.eu/SMC3/plugin-transformer?trafo=PDF&plugin=doc&mode=designin&method=GetFolderInfo&tp_subRulesID=1206567953264&webdavID=1293455223076&language=de&objType=doc

Also jetzt noch einmal die Frage:
Hat jemand Erfahrungen mit diesem Sensortyp, evtl. auch von anderen Herstellern?

Vielen Dank für Eure konstruktiven Beiträge

DrFlopp
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 147
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Jetzt habe ich mich so über eure Beiträge gefreut, dass ich vergaß die sinnvollen Fragen zu beantworten. Die Drehzahl beträgt zwischen 40 und 500 1/min.
Bei "digitalen" Sensoren klingt das komisch, aber es ist so wie bei der Sendung mit der Maus.
Achso diese Dinger wurden in meinem Studium als Halbleiter bezeichnet und der Magnet dreht sich mit einem geringen Abstand vor diesem Ding. Das Magnetische Feld sorgt in dem Ding für die Ablenkung eines Elektronenstroms. Soweit ist das analog. Diese Signale werden durch die integrierte Elektronik digitalisiert und in inkrementale 5V-TTL Signale (A, B) umgewandelt.
Ich verwende unterschiedliche DC-Bürstenmotoren. Ich als äußerst unprofessioneller Leihe sehe dort eine Menge Störpotential (oder wie heißt das wenn eine Zickzacklinie einem Sensorsignal ungewollt überlagert wird).
Ich hoffe das hilft euch und trägt zum Verständnis bei.
Viele Grüße
DrFlopp
 
Logged

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Die erste Frage ist ob das beobachtete Rauschen überhaupt von den Sensoren kommt. Was passiert wenn Du die Sensoren durch einen 10k Widerstand ersetzt? Rauscht es dann auch? Wenn ja, dann fängst Du Dir die Störungen über die Leitungen und/oder die Versorgungsspannung ein.

Regel 1: immer die Ursache des Problems eingrenzen.
Logged

Check out my experiments http://blog.blinkenlight.net

Offline Offline
Full Member
***
Karma: 0
Posts: 147
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Udo,
Ich habe bei meinem 3D-Scanner das Problem gelöst in dem ich einen optischen Encoder verbaut habe. Aber der kostet natürlich gleich das Fünffache und ist wesentlich aufwändiger zu installieren.
Für die jenigen die immer noch Verrauchte Encodersignale für Unsinn erachten: Ich hatte vor etwa zwei Jahren ein Projekt bei dem ich eine Fräsmachine mit DC-Servomotoren ausgerüstet habe. Zur Regelung und Vermessung wurden an jeder Spindel zwei optische Encoder (Diff. ended) eingesetzt. Die Motoren wurden über ein relativ hochwertigen 24V Schaltnetzteil versorgt, und mit entsprechned leistungsfähigen H-Brücken angesteuert. Bei der Inbetriebnahme hat sich gezeit das die Encoder Signale nicht auswertbar waren, weil sie zu verraucht gewesen sind. Die Lösund des Problem bestand darin die Oberwellen des Schaltnetzteiles durch einen Ferritkern um die 24V Leitung zu bedämpfen. (Jetzt werden die Experten wieder von unproffesionalität schwafeln, aber die wollen das Forun nur kaputt machen).
Dies sind Erfahrungen die ich gemacht habe, die dem einen oder anderen auch helfen können.
Vielleicht at ja Jemand schon erfahrungen mt den Hall-Effektsensoren und eine Lösung für das Problen der Drift gefunden.
So richtig COOL währe ja ein grafisches Signalanalyse Tool für den Arduino. Gibt es so etwas?
 
 
Logged

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@DrFlopp: das was Du beschreibst ist genau das was ich gesagt habe: Störeinstreuungen von außen und kein Sensorrauschen. Klar gibt es auch Sensorrauschen. Die Frage ist aber was denn in Deinem Fall vorliegt. Solange das nicht geklärt ist sind Gegenmaßnahmen eher witzlos.

Grafische Signalanalysetools nennt man auch gerne Oszilloskop. Lies Dir mal das hier durch http://www.mikrocontroller.net/articles/Oszilloskop.
Logged

Check out my experiments http://blog.blinkenlight.net

Offline Offline
Full Member
***
Karma: 0
Posts: 147
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Udo,
vielen dank für den nützlichen Link. Von den Oszilloskopen habe ich auch einige im Einsatz. Aber ich arbeite in der Regel mit sogenannten "Entwicklungsumgebungen für die mechatronische Produktentwicklung" als besonders Hilfreich ist dort das "CAMeL-View" zu nennen (http://www.ixtronics.com/cms/website.php). (Auch dSpace bietet Alternativen, die sind aber etwas Umständlicher und wesentlich teurer.) Eine solche Entwicklungsumgebung ermöglicht eine wesentlich schnellere und effektivere Entwicklung komplexer Systeme in dem sie Modellbildungs-, Simulations-, Analysewerkzeuge sowie automatische Codegenerierung vereinigt.
Was meint Ihr wie cool es währe wenn man mit nur wenigen Mausklicks sich jeden Zustand und jedes Signal seiner Anwendung direkt auf dem Monitor des "Host-PC" ausgeben könnte. Man die Signale und Zustände übereinander plotten könnte und vielleicht auch im Frequenzbereich auswerten könnte. Interessant sind sicher auch Trajektorienplotts oder sogar mehrdimensionale Plotts.
Mit dem Arduino Oska ist ja bereits so etwas wie ein Anfang vorhanden. Die Frage ist nun gibt es bereits weiterführende Entwicklungen und wo kann ich so etwas finden.
Viele Grüße
DrFlopp
Logged

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Jetzt bin ich etwas verwirrt. Wenn ich mir Deine Entwicklungsumgebung anschaue sieht das sehr professionell aus. Wenn ich mir Deine Fragen anschaue hätte ich eher den Eindruck, daß Du nur hobbymäßig unterwegs bist. Kannst Du mich aufklären wie das zustande kommt? Wie kommt es, daß Du solche Entwicklungsumgebungen kennst aber bei Oszilloskopen noch dazulernen kannst?
Logged

Check out my experiments http://blog.blinkenlight.net

AREA COLOGNE
Offline Offline
Edison Member
*
Karma: 21
Posts: 1125
I am 1 of 10 who understands binary
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hast du eine Auswertektronik auf dem Geber  (normalerweise hast du Sinus und Cosinus Signale zur Auswertung meisten auch
Komlpiementär Signale(180° Verschoben auf zwei weiteren Kanälen)).
Wenn du direkt mit dem Sinussignal auf einen Digitalen Eingang gehst oder einem Interrupt dann kannst du probleme haben da diese Eingänge keine definierte Hysterese haben. Es kann das dadurch kommen das bei dem übergang zwischen 0-1 mehrfach der übergang zwischen 0-1 "gesehen" werden. Am einefachste ist die Auswertung wenn du auf ein Inkremental-Signal (TTL)mit A+B Spuren hast. Dann kannst du über Interrupts exterm schnell "zählen" und damit auch die Drehzahl recht gut überwachen.
Logged

So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Offline Offline
Full Member
***
Karma: 0
Posts: 147
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Daniel,
der Sensor liefert tatsächlich die A+B TTL-Signale mit einem 5V Pegel. Also Singleendet und nicht differential. Der Sensor ist mit den ganz normalen Encodermodulen aus zu werten.
Bei sehr langsamen Drehzahlen (zufällig mein Betriebzustand) verzählt sich das Teil. Ich habe kene Idee wie der Hersteller das mit der Umwandlung der Sinus- und Cosinus-Signale zu Incrementalsignalen realisiert. Ob dort Schmitt-Trigger eingesetzt werden ist das Betriebsgeheimnis. Deine Idee erscheint mir plausibel, immer um die Wendepunkte der Sinuskurven ist die Krümmung sehr gering, hier kann ich mir die "Wandlung" als "unzuverlässig" vorstellen. Ich habe das Problem jetzt bereits bei dr zweiten Anwendung beobachtet, einmal mit einer 10 k€ Auswerteelektronik und einmal mit einem Arduino.
Hast due schon einmal mit diesen Sensoren gearbeitet?
Die sind ja echt soper preiswert mit ca. 30€, bei Kübler kostet ein mechanisch erstaunlich schlechter optischer Sensor gleich 120€.

Ich überlege ob es eine Möglichkeit gibt diese Verzähler heraus zu filtern, doch eigentlich ist das dann kein Messen sondern ein Wetten.
Gruß
DrFlopp
 
Logged

AREA COLOGNE
Offline Offline
Edison Member
*
Karma: 21
Posts: 1125
I am 1 of 10 who understands binary
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wie wertest du denn die Signale aus über normale Eingangseinlesen oder über interrrupts? Wenn du in deinem Sketch irgendwelche ausgaben machst über Serial bekommst du bei "schnellen" Eingängen immer Probleme mit dem Timing. Hast du deinen Sketch mal zum ansehen.
Hast du dir den Anstieg der Flanken von dem Signal man angeschaut, ist der "anstieg" der Flanken sauber oder sind das auch "kurven"
« Last Edit: June 16, 2011, 01:36:17 pm by volvodani » Logged

So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Offline Offline
Full Member
***
Karma: 0
Posts: 147
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Dani,

Nach langer Suche nutze ich jetzt Interrupts zur Auswertung, so wie ich es aus einem der Beispiele übernommen habe.
Da ich auch noch ein LCD-Dsplay eingefügt habe und dann noch einige Schalter und Potis integriert habe, muss ich schon ganz schön tricksen, damit das System noch lauffähig ist. Das Programm ist bereits sehr aufgebläht es währe also eine Zumutung diese Programm zuveröffentlichen und um eine Analyse zu bitten.

Gruß Philipp
Logged

AREA COLOGNE
Offline Offline
Edison Member
*
Karma: 21
Posts: 1125
I am 1 of 10 who understands binary
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das könnte auch schon das Problem sein da leider so manche Routine der Arduino Funktionen nicht seht Ressourcen freundlich umgehen gerade wenn es um Datenausgabe geht (Display oder Seriell).
(selbst erfarung gemacht mit HTL Drehgebauswertung zur Achspositions erfassung
Logged

So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Pages: [1] 2 3   Go Up
Jump to: