Allgoryhmus um Störungen an Inkrementalgeber zu eleminieren

OP #5382396
Lesenswert?

Hallo,
ich habe in einem Projekt den AS5311 Sensor vom AMS im Einsatz (Im 
Anhang das Datenblatt). Nun lese ich via Interrupt an meinem Atmega 328P 
die A Flanke aus und vergleiche diese mit der B Flanke.
Dadurch erhalte ich ein inkrementales Signal welches ich aufaddiere und 
dann zu einer Länge umrechne.
Sprich ich möchte mit dem Sensor und einen Magnetstreifen eine Länge 
feststellen.

Wenn ich das Gerät nach vorne fahre bekomme ich folgende Werte 
(Beispiel):
1
1
2
0
3
1
4
1
5
1
6
0
7
0
8
1
9
1
10
1
11
1
12
0
13
1
14
0
15
1
16
1
17
1
Eigentlich müssten es in der Theorie nur einsen sein, da er vor fährt 
und hoch zählt.
Daher eigentlich müssten es insgesamt 17 inkremente sein und nicht nur 
12 inkremente.

Jetzt habe ich raus gefunden, dass dies an vibrationen und der gleichen 
liegt. Der Sensor ist einfach viel zu genau. Wenn ich das Gerät z.B. nur 
auf den Tisch lege und auf den Tisch haue dann zählt er auch Inkremente, 
obwohl sich real keine Länge ändert (im mm Bereich)...

Hat jemand eine Idee wie ich diese Nullen sauber raus filter.
Weil ich möchte natürlich nicht nur hoch sondern auch runter zählen 
können, falls der Magnetstreifen sich dann in die andere Richtung 
bewegt.

Sorry kompliziert zu erklären, ich hoffe es ist verständlich, was ich 
will^^
Angehängte Dateien:
Gast #5382403
Lesenswert?

Also erstmal solltest Du Fragen grammatikalisch und orthografisch 
richtig formulieren, dass sie gefunden werden können.

Dann wäre die Betätigung der Suchfunktion im Forum empfehlenswert, denn 
diese liefert eine komplette Seite mit Lösungsvorschlägen, siehe 
"Entprellen".
Gast #5382408
Lesenswert?

Oh, da kam jemand dazwischen, wie Ich sehe. Noch ein Tipp:

Ein -> Algorithmus, um den "Rythmus" in dem Signal zu beseitigen, wäre, 
ihn einfach aufzuintegrieren und über eine längere Perdiode zu 
betrachten. Dann kriegt man das Gezittere weg.
Gast #5382438
Lesenswert?

Oberlehrer schrieb:
> Ein -> Algorithmus, um den "Rythmus" in dem Signal zu beseitigen, wäre,
> ihn einfach aufzuintegrieren und über eine längere Perdiode zu
> betrachten. Dann kriegt man das Gezittere weg.

Irgendwann kommt immer ein vollständiger Depp, der fachlich eine 
absolute Null ist, aber Alles tut um den Fragenden eins reinzuwürgen

Oberlehrer schrieb:
> Also erstmal solltest Du Fragen grammatikalisch und orthografisch
> richtig formulieren

Heute nennt sich der Depp Oberlehrer.
OP #5382461
Lesenswert?

Hmmm schrieb:
> Dazu gibt's einen Artikel, wo Du auch Deine Variante als Problemfall
> wiederfindest:
>
> 
https://www.mikrocontroller.net/articles/Drehgeber#Flankenerkennung_von_A_und_Pegelauswertung_von_B

Vielen Dank euch für die schnelle Hilfe.
Dieser Beitrag hat auf jeden Fall geholfen. Der hier beschriebene Code 
funktioniert einwandfrei mit meinem Arduino :-)


Und sorry, wenn ich diesen Beitrag nicht selbst gefunden habe. Ich habe 
selbstverständlich vorher ausgibig gegoogelt. Aber offensichtlich die 
falschen Begriffe gewählt...

Auf jeden Fall funktioniert es nun einwandfrei.
Gast #5473824
Lesenswert?

Hallo in die Runde,
finde den Beitrag zum AS5311 gut, das Bauteil scheint ja auch noch ein 
Problem zu haben, wenn man mehrfach gleichzeitig die Serielle und die 
A/B Schnittstelle ausliest, kommt es zu einem incremetellen Fehler.
Ich versuche gerade das klar heraus zu bekommen.
Aber seit einigen Wochen ist der Baustein AS5311 wie vom Erdboden 
verschwunden. Hat jemand hier noch ein paar von den Dingern, die ich 
gegen gutes Geld für Testzwecke kaufen könnte?
OP #5473855
Lesenswert?

MedTechGuy schrieb:
> Hallo in die Runde,
> finde den Beitrag zum AS5311 gut, das Bauteil scheint ja auch noch ein
> Problem zu haben, wenn man mehrfach gleichzeitig die Serielle und die
> A/B Schnittstelle ausliest, kommt es zu einem incremetellen Fehler.
> Ich versuche gerade das klar heraus zu bekommen.
> Aber seit einigen Wochen ist der Baustein AS5311 wie vom Erdboden
> verschwunden. Hat jemand hier noch ein paar von den Dingern, die ich
> gegen gutes Geld für Testzwecke kaufen könnte?

Ja der AMS Sensor ist ausgestorben. Dank Apple kann AMS kaum noch 
Sensoren liefern und hat extreme Lieferengpässe.
Wir sind auf den Sensor von ICHaus umgestiegen. Die haben ähnliche 
Sensoren zu ähnlichen Preisen. Ob man da Privat ran kommt weiß ich aber 
nicht.
Aber AMS kann frühstens Ende 2019 wieder liefern (das weiß ich von 
unserem Distrubutor in der Firma).

Also falls du vor hast irgendwas damit langfristig zu machen, suche dir 
einen anderen Hersteller. Wenn du generell nur eins oder zwei braucht, 
findest du sicher jemand der dir welche verkaufen könnte.
Gast #5475541
Lesenswert?

MaWin schrieb:
> Oberlehrer schrieb:
>> Ein -> Algorithmus, um den "Rythmus" in dem Signal zu beseitigen, wäre,
>> ihn einfach aufzuintegrieren und über eine längere Perdiode zu
>> betrachten. Dann kriegt man das Gezittere weg.
>
> Irgendwann kommt immer ein vollständiger Depp, der fachlich eine
> absolute Null ist, aber Alles tut um den Fragenden eins reinzuwürgen
>
> Oberlehrer schrieb:
>> Also erstmal solltest Du Fragen grammatikalisch und orthografisch
>> richtig formulieren
>
> Heute nennt sich der Depp Oberlehrer.

Er hat doch absolut Recht. "Allgorythmus"... wenn ich das schon lese. 
Das ist ja schon fast wie ein Stich ins Auge. Fragen mit solchen 
Wortkonstrukten sollten prinzipiell nicht beantwortet werden. Wenn man 
sich unsicher ist, kann man auch im Duden nachsehen, bevor man einen 
Beitrag auf die Öffentlichkeit loslässt. Setzen, sechs!
Gast #5475633
Lesenswert?

Sich hier über Rechtschreibung auszulassen ist hoffnungslos.

Was sachlich daneben ist, ist die Meinung, daß die Signale A,B und Z 
eines elektronischen Gebers gestört wären und entprellt werden müßten.

Bei einer ordentlichen Verarbeitung per Interrupt oder per 
Quadraturdekoder kann man alle Flanken erfassen. Per Entprellen kann man 
nicht so schnell verarbeiten und verliert ggf. Positionen.
Altes Thema, mit immer wiederholten alten Vorurteilen von Leuten, die in 
der Vergangenheit stehen geblieben sind.
#5475688
Lesenswert?

m.n. schrieb:
> Was sachlich daneben ist, ist die Meinung, daß die Signale A,B und Z
> eines elektronischen Gebers gestört wären und entprellt werden müßten.

Aha, wie schrieb ein m.n. in 
Beitrag "4-fach Flankenauswertung per Interrupt mit ATmega48/88"

"In der Regel werden Rechtecksignale von magnetischen oder optischen
Gebern angelegt, die nicht prellen. Falls dies nicht garantiert werden
kann, können die Eingangssignale per externen 2 x D-FF synchronisiert
werden."

Übrigens: Der TO hat das Problem gelöst - mit der richtigen Auswertung.

Während bei m.n. die Drehgeber immer noch zucken, denn auch optische und 
hallbasierte Drehgeber lassen sich stören durch elektrische 
Einstreuungen und mechanische Vibrationen (die schneller sind als die 
erwartete Bewegung).

m.n. schrieb:
> mit immer wiederholten alten Vorurteilen von Leuten, die in
> der Vergangenheit stehen geblieben sind.

Heisst wohl m.n.
Andere Leute lernen in ihrem Leben dazu, und wissen inzwischen, warum 
Flankeninterrupts immer eine blöde Idee sind.
Gast #5475740
Lesenswert?

Michael B. schrieb:
> Aha, wie schrieb ein m.n. in
> Beitrag "4-fach Flankenauswertung per Interrupt mit ATmega48/88"
>
> "In der Regel werden Rechtecksignale von magnetischen oder optischen
> Gebern angelegt, die nicht prellen

Das ist nur ein Teil des Problems. Auch ein prellfreier Schalter zuckt 
zumidest um +-1 hin und her, wenn die Stellung gerade dem Umschaltpunkt 
entspricht und eine beliebig kleine Störung anliegt.

Das kann man mit einer Hysterese bekämpfen oder es macht auch garnichts: 
ein Zähler zählt dann zwar dauernd um 1 auf und wieder ab, aber er zählt 
nicht falsch.

Georg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren