Hallsensor VMA313 Verhalten

OP #6395414
Lesenswert?

Mit einem VMA313 und Arduino habe ich mir provisorisch einen
Wickelzähler für Spulen gebaut.
Mit Interrupt funktioniert das auch sehr zufriedenstellend.
Ab und zu kommt es vor, dass der Sensor "durcheinander" kommt.
Das passiert nicht während des Betriebs, sondern meist beim
Einrichten der Spulen.
Er reagiert dann einfach nicht mehr. Erst wenn ich ihn ein
paar mal dem Wechsel von Süd- und Nordpol ausgesetzt habe
läuft es wieder. Bleibt da irgend ein Restmagnetismus im
Sensor oder der Platine? Wie kann ich das verhindern?
OP #6395513
Lesenswert?

Im Moment ist der Aufbau größtenteils wieder zerlegt.
Ich kann dir aber sagen, dass der Südpol eines Magneten
am Sensor vorbei geführt wurde.
Du hattest ja anscheinend einen Verdacht, was den Aufbau
betrifft. Meinst du es wäre besser, beide Pole im Wechsel
zu verwenden, oder was hattest du für Gedanken?
Gast #6395526
Lesenswert?

Martin E. schrieb:
> Meinst du es wäre besser, beide Pole im Wechsel
> zu verwenden?

Das ist bei dem Sensor nicht nötig, der ist unipolar. Allerdings hat er 
eine ziemlich geringe Hysterese, das kann je nach Aufbau ungünstig sein.

Du hast aber schon den Südpol an der Seite mit dem Aufdruck vorbei 
geführt?
OP #6395553
Lesenswert?

hinz schrieb:
> Kann es sein, dass du den Pull-Up vergessen hast?

Das ist jetzt die Frage.
Ich habe tatsächlich einen Pull-Up drin.
Es ist ja so, dass der Sensor speziell für Arduino
mit 3 Pins geliefert wird. GND VCC S
Auf der Platine sitzt noch ein Widerstand für die
vorhandene LED die immer schön blinkt, wenn man
(unter Versorgungsspannung) einen Magneten vorbei
führt.
Laut Datenblatt sollte es reichen, den Sensorausgang
direkt an z.B. A10 zu hängen.
https://www.velleman.eu/downloads/29/vma313_a4v01.pdf

Und wie schon beschrieben, das Ding läuft tausende
Impulse einwandfrei, aber plötzlich wenn man mal
gestoppt hat, fängt es nicht wieder an.

Erst wenn ich dann mit dem Magneten am Sensor ein
paar Mal vorbeigefuchtelt habe fängt er sich wieder.
Gast #6395577
Lesenswert?

Martin E. schrieb:
> Laut Datenblatt sollte es reichen, den Sensorausgang
> direkt an z.B. A10 zu hängen.

Dann sollte man aber unbedingt den zugehörigen Pull-Up des AVR 
aktivieren.


> Erst wenn ich dann mit dem Magneten am Sensor ein
> paar Mal vorbeigefuchtelt habe fängt er sich wieder.

Ist es denn wirklich ein A3144? Marking, 1.Zeile: 44E?
Gast #6395624
Lesenswert?

Martin E. schrieb im Beitrag \#6395587:
> Auf dem Sensor steht
> 3144
> 402
> Sonst nichts.

Chinesischer Nachbau des A3144. Aber das sollte kein Problem sein.


> Ich habe einen 10K Pullup die ganze Zeit verwendet.

Dann sehe ich auch keinen Grund für das merkwürdige Verhalten.
Gast #6395625
Lesenswert?

Befindet sich der Sensor in der Nähe von Metall? Schraube oder 
Befestigung ?
Metall in der Nähe des Sensors wird  durch den vorbeilaufenden Magneten 
magnetisiert.
Das hin und her bewegen entmagnetisiert !
OP #6395658
Lesenswert?

Daran hatte ich auch schon gedacht,
ich hatte den Sensor mit Klebeband an eine
Handbohrmaschine befestigt. Da sollte zwar einiges
an Metall drin sein, aber dort wo er befestigt war
ist gar nicht mal so viel, als dass ein Magnet dort
hängen bleiben würde. Und so weit ich mich daran erinnere
hatte ich den Effekt auch ganz am Anfang meiner Experimente,
als ich einfach nur einen Magneten am Sensor vorbei bewegte.
Aus dem Grunde hatte ich dann sogar mein Ersatzexemplar
für die weiteren Versuche verwendet.
Vielleicht muss ich mir die Signale doch mal einige
Zeit am Oszi anschauen.
Gast #6395738
Lesenswert?

Martin E. schrieb:
> Ab und zu kommt es vor, dass der Sensor "durcheinander" kommt.
> Das passiert nicht während des Betriebs, sondern meist beim
> Einrichten der Spulen.
> Er reagiert dann einfach nicht mehr. Erst wenn ich ihn ein
> paar mal dem Wechsel von Süd- und Nordpol ausgesetzt habe
> läuft es wieder.

Softwaremacke?
Ich habe gelegentlich schon Programme erlebt, die einfrieren, wenn es 
nichts zu tun gibt.
Grund sind vermutlich Stacküberläufe o.dgl. und das Programm 
initialisiert sich per Timeout oder nach jeder korrekten Aktivität 
teilweise neu, so dass der Fehler dann nicht auffällt.
OP #6395761
Lesenswert?

1
#include <Wire.h>
2
#include <LiquidCrystal_I2C.h>
3
LiquidCrystal_I2C lcd(0x27, 16, 2);
4
const byte HallPin =2;
5
volatile long zaehler = 0;
6

7
void setup() {
8
  // put your setup code here, to run once:
9
  lcd.init();
10
  lcd.backlight();
11
  lcd.clear();
12
  zaehler=0;
13
  attachInterrupt(digitalPinToInterrupt(HallPin),Hall_ISR,FALLING);
14
}
15

16
void loop() {
17
  // put your main code here, to run repeatedly:
18
  lcd.setCursor(0,0);
19
  lcd.print("Anzahl Windungen");
20
  lcd.setCursor(0,1);
21
  lcd.print(zaehler);
22
  delay(50);
23
  }
24
 
25

26

27
void Hall_ISR() {
28
  zaehler++;
29
}
Gast #6395962
Lesenswert?

Martin E. schrieb:
> Auf der Platine sitzt noch ein Widerstand für die
> vorhandene LED die immer schön blinkt, wenn man
> (unter Versorgungsspannung) einen Magneten vorbei
> führt.

Blinkts denn, wenn der Sensor feststreckt, oder blinkts dann nicht mehr 
?

Martin E. schrieb:
> Erst wenn ich ihn ein
> paar mal dem Wechsel von Süd- und Nordpol ausgesetzt habe
> läuft es wieder.

Hat die Platine irgendwo Gold, dann hat sie auch Nickel und damit 
magnetische Remanenz:

Martin E. schrieb:
> Bleibt da irgend ein Restmagnetismus im
> Sensor oder der Platine

Martin E. schrieb:
> Meinst du es wäre besser, beide Pole im Wechsel
> zu verwenden,

Ja.
OP #6396007
Lesenswert?

Also Gold ist keines sichtbar auf der Platine.
Das wäre auch nur ein Hauch, falls vorhanden.

Nur die angebrachte Stiftleiste (20mm vom Sensor entfernt)
ist vergoldet und besteht wohl aus Eisenstiften.

Das mit dem Polwechsel werde ich einmal testen.
Werde mir mal eine Spule aufbauen, die den Sensor
ansteuert. Dann kann ich auch gleich nach der LED schauen.

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