Welchen Kondensator brauche ich bei einem Hallsensor?

4 Antworten

Hast du dieses Oszillogramm selber aufgenommen oder irgendwo "gelesen"?
Eigentlich "bouncen" Hall-Sensoren nicht, das Magnetfeld ändert ja kontinuierlich und somit auch die Hall-Spannung.
Oder hast du ev. einen Reed-Schalter statt einen Hall-Sensor?
Die Kondensatorgrösse hängt von ein Ein- bzw. Ausgangswiderständen des Sensors und des uC ab.

Am besten mit dem ausprobieren mit verschiedenen Kapazitäten und Kapazität langsam erhöhen und mit dem KO messen, bis du keine Bounces mehr hast.


saxboy 
Fragesteller
 17.05.2020, 11:56

Auf dem Datenblatt steht Hallsensor. Ist es der Übergang, der Probleme macht?

0
atoemlein  17.05.2020, 15:36
@saxboy

Ich verstehe die Nachfrage nicht, und sehe auch keine Antwort auf meine Nachfrage.
Welcher Übergang?
Und nochmals: Hast du dieses Signalverhalten im Bild selber gemessen?
Wenn auf dem Datenblatt Hallsensor steht, dann müsste auch stehen, auf welche Art er das Signal abgibt und wie es erzeugt wird (z.B. open collector, oder impuls oder irgendein digitales Protokoll?).
Dass der Arduino zuviele Schrittsignale bekommt, kann x Gründe haben. Z.B. auch zu lange oder nicht abgeschirmte Leitungen.
Man müsste die Eingangssschaltung des Arduino haben und die Ausgangssschaltung des Zylinders.

0

Widerstand * Kapazität = Tau
Nach 5 tau gilt ein Kondensator als 'geladen'.
Um die Kombination 2,2ms hinzubekommen, gibt es mehrere Möglichkeiten.
Da du das Hardware verhalten kennst wäre auch ein Software Filter dennkbar.
Auch hier lassen sich PT1 Filter programmieren.


saxboy 
Fragesteller
 16.05.2020, 20:35

Man sollte doch in einer ISR möglichst wenig Befehle haben?

0
IchMalWiederXY  17.05.2020, 11:25
@saxboy

In der Tat, je weniger je besser. Also stellt sich die Frage:
"Wie schnell" musst du auf die Pegelveränderung reagieren können ? (Worst case)
Du könntest eine Prozess schreiben der alle 500µS aufgerufen wird und den Pegel prüft und in welcher ein PT1 Filter (oder moving average) immer in Richtung "1" (oder "0") läuft um dann, wenn genügend lang (z.B: 6 Durchläufe = 3ms) stabile Verhältnisse vorliegen den Pegel als neunen Zustand anerkennen.
==
Ausserdem. Einen Folgewert in einem PT1 Filer (oder moving average) zu rechnen ist wenig Aufwand für einen Prozessor. ABER es kommt natürlich darauf an, wie oft dein ISR aufgerufen wird, um dies so zu machen.

0
saxboy 
Fragesteller
 17.05.2020, 11:56
@IchMalWiederXY

Diese Werte muss ich noch ermitteln. Sonst werde ich noch einen Elektrotechniker fragen

0
IchMalWiederXY  17.05.2020, 12:05
@saxboy

Da es sich um einen Hallsensor handelt und damit wahrscheinlich um die "Regelung" von einem Elektromotor kann ich aus eigener Erfahrung sagen, dass alle Latenzen, so gering wie möglich zu halten sind.
Häufig 1% der Debouncezeit 220µsec. (Ich will keinesfalls hier eine Vorgabe machen. Ich kenne deinen Anwendungsfall nicht)
Solltest du es also mit einem eigenen Prozess versuchen so sollte dieser nach dieser maximalen Latenzzeit richten.
Außerdem:
Sofern du im ISR unterwegs bist, dein Programm sonst aber keine weiteren Aufgaben zu erledigen hat, ist es egal wie lange du im ISR bist.
Wieviel Laufzeit man welcher Aktivität gönnt hängt vom System Design ab.

0
saxboy 
Fragesteller
 17.05.2020, 12:37
@IchMalWiederXY

ich muss die Zeiten mal messen. Neben der ISR überprüft der Arduino noch den aktuellen ist Wert und vergleicht diesen mit dem Sollwert. Das sollte auch immer mal wieder geschehen, nicht dass er zu weit fährt.

0

Wenn du ohnehin schon eine Software verwendest, wozu willst du das Entprellen noch in Hardware machen? Du kannst es mit einem Kondensator probieren, aber Murx sollte man nicht auch noch unterstützen.

Du solltest, wenn schon, versuchen, den Sensor so zu modifizieren, dass das gar nicht passieren kann.

Woher ich das weiß:Studium / Ausbildung – Ausbildung Elektronik/Nachrichtentechnik, Schaltungstechnik

saxboy 
Fragesteller
 17.05.2020, 13:35

Der Hallsensor ist im Linearzylinder eingebaut. Und in der ISR sollten nicht viele Befehle stehen, darum wollte ich eine Hardware Lösung suchen. Denn durch das längere rechnen, könnte ein Impuls verloren gehen.

0

Wenn du bereits einen Mikrorechner zum auswerten hast, kannst du das nicht im Programm machen, und dort z.B. einen Zeitfaktor für die Erkennung mit einfügen?


saxboy 
Fragesteller
 16.05.2020, 20:36

Man sollte doch in der ISR nicht mehr berechnen. Sonst hat man die Geschwindigkeit nicht mehr.

0