Forum: Mikrocontroller und Digitale Elektronik Hallsensoren 41F in Matrix geschaltet


von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo liebe Community!

Ich arbeite derzeit an meiner Diplomarbeit und hätte hierfür eine Matrix 
aus Hallsensoren 41F benötigt. Ich habe bereits alles fertiggelötet und 
mit LEDs getestet. Allerdings funktioniert es mit dem µC nicht. 
Teilweise schalten die Sensoren obwohl kein Magnet oben ist. Ich habe 
den Schaltplan und eine Ausgabe des µCs angehängt. In dem Testprogramm 
frage ich im Sekundentakt ab und habe keinerlei Magneten oben. 
Allerdings habe ich ein falsches Ergebnis.
Würde mich freuen, wenn jemand eine Lösung hat, bin schon am 
Verzweifeln.

Gruß,
Sebastian

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Sebastian schrieb:
> Teilweise schalten die Sensoren obwohl kein Magnet oben ist.

Der SS41F ist ein 'latched' Sensor und wird bei einer Polarität des 
Magnetfeldes aktiviert (bei typisch 40 Gauss) und bei der anderen 
Polarität gelöscht(bei typ. -40 Gauss). Es kann also sein, das nach 
einem Powerdown das Latch auf der falschen Seite hängt.
http://sensing.honeywell.com/index.cfm?ci_id=140301&la_id=1&pr_id=149900

Ungelatchte Sensoren wären hier besser.
Das Filmchen hier demonstriert es:
https://www.youtube.com/watch?v=v3HEZAoU60k

: Bearbeitet durch User
von Sebastian (Gast)


Lesenswert?

Danke für die Antwort. Ungelatcht wäre sicher besse, das Komische ist, 
dass uns unser Lehrer die 41F empfohlen hat.
Wäre ein ungelatchter so einer hier?: 
https://www.conrad.at/de/hallsensor-ah3144eua-45-vdc-bis-24-vdc-messbereich-0005-0022-t-to-92-loeten-1424999.html

von Klaus (Gast)


Lesenswert?

Ein Sensor, der keine Versorgung hat, wird mit seinen Bodydioden am 
Ausgang die Signalleitung mehr oder weniger kontrolliert auf GND ziehen. 
Ich würd einen echten Multiplexer für die Signale bauen und die Sensoren 
ständig an der Versorgung lassen.

MfG Klaus

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Klaus schrieb:
> wird mit seinen Bodydioden am
> Ausgang die Signalleitung mehr oder weniger kontrolliert auf GND ziehen.

Der hat aber keine Bodydioden, sonden OpenCollector Ausgang. Damit 
sollte es klappen, das Ergebnis des TE spricht ja auch dafür, das nicht 
alle Sensoren auf Masse ziehen, sondern nur ein paar. Logischerweise 
kann man die Sensoren nicht mit hoher Geschwindigkeit abfragen, denn die 
brauchen ein wenig Zeit nach dem Powerup.
Ich stimme aber mit dir überein, das es sinnvoller wäre, nur die 
Ausgänge zu muxen, ist auf jeden Fall schneller. Wäre mit einem 4067 und 
einem 4051 auch schnell erledigt.

Sebastian schrieb:
> Wäre ein ungelatchter so einer hier?:
> 
https://www.conrad.at/de/hallsensor-ah3144eua-45-vdc-bis-24-vdc-messbereich-0005-0022-t-to-92-loeten-1424999.html

Scheint so. Der spricht auf ein vorhandenes Magnetfeld an und wird 
inaktiv, wenn keines da ist, bzw. unter Brp fällt.
Wenn du reichlich Magnete hast(1), könntest du deinen vorhandenen Aufbau 
retten, indem du unter die Sensoren ein leicht in Abschaltpolarität 
vorgespanntes Magnetfeld legst, das die Sensoren im Ruhezustand 
zurückkippen lässt. Wenn du dann einen Magneten auflegst, sollte der 
Sensor auf 'aktiv' kippen.

(1): Such dir einen Raucher, der mit Gizeh Papers dreht. An jeder 
Packung ist ein kleiner kräftiger Magnet.

: Bearbeitet durch User
von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

Matthias S. schrieb:
> Such dir einen Raucher, der mit Gizeh Papers dreht. An jeder
> Packung ist ein kleiner kräftiger Magnet.

Ich hatte in meinem Umfeld auch mal angesagt, dass ich diese Magneten 
gerne hätte. Der Haupteffekt war, dass alle ganz erschrocken waren, wie 
viele Magete so schnell zusammenkommen, dass ich nach kürzester Zeit 
einen "halben Meter Magneter" zusammen hatte :) Das hat sicherlich den 
ein oder anderen zum Aufhören bewegt.

von Sebastian (Gast)


Lesenswert?

Danke für eure Ratschläge. Ich habe mir nochmal mein Konstrukt angesehen 
und bemerkt, dass die hinteren Spalten (5-12) einwandfrei funktionieren, 
aber die vorderen eben nur teilweise. Kann es sei sein, dass irgemdwo in 
einer Leituung die Magnetfelder den Sensor beeinflussen?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Sebastian schrieb:
> Kann es sei sein, dass irgemdwo in
> einer Leituung die Magnetfelder den Sensor beeinflussen?

Du müsstest ja etwa 40 Gauss erzeugen - das ist eher unwahrscheinlich. 
Vllt. überprüfst du nochmal deine Abfrage Routine (kannst du ja mal 
posten) und machst den Test mit dem umgepolten Magneten unter einem 
fehlerhaften Sensor.

von Michel M. (elec-deniel)


Lesenswert?

geht ein Bild vom Aufbau ??

von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

So hier ein Bild vom Aufbau. Die eingezeichnete Linie kennzeichnet die 
Grenze von geht/geht nicht. Die Abfrage habe ich zurzeit mit der Arduino 
IDE geschrieben, wird später mit AtmelStudio gemacht, aber zum Testen 
geht es schneller. Ich habe auch mit dem Multimeter nachgemessen und es 
ist ident mit den ermittelten Werten im Programm.
Ich habe auch bereits versucht einige Sensoren durch neue zu ersetzen, 
hat leider nicht sehr viel gebracht.

von Axel R. (Gast)


Lesenswert?

Die unteren kriegen nicht genung Saft, sag ich mal aus dem Bauch 
heraus...


StromTuner

von Sebastian (Gast)


Lesenswert?

Die Unteren, sind in diesem Fall 5-12 und die funktionieren aber. Die 
darüber hingegen nicht, obwohl sie viel kürzere Leitungen haben.

von Orion (Gast)


Lesenswert?

Sebastian schrieb:
> Die Unteren, sind in diesem Fall 5-12 und die funktionieren aber. Die
> darüber hingegen nicht, obwohl sie viel kürzere Leitungen haben.

Anstatt zu Raten messe doch einfach mal die Signale in Deiner Schaltung 
mit einem Oszilloskop.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Hmm, wenn deine Pullups wirklich bei 10k sind, könnte das schon zu viel 
sein. Teste mal mit 4,7k oder 3,3k, zumindest an den betroffenen Zeilen. 
In dem Kabelverhau will ich ein Übersprechen zwischen den Leitungen 
nicht ausschliessen, so wenig wie einen Logikfehler. Poste doch mal den 
Sketch.
Ausserdem ist es sinnvoll, die VCC für die MOSFet gut abzublocken (z.B. 
mit 100µF) und an die VCC der Sensoren nochmal 0,1µF pro Zeile. Das 
bedeutet zwar, das zum Aufladen des 0,1µF ein wenig umgeladen wird, aber 
der 100µF wäre da ein ausreichendes Reservoir.

: Bearbeitet durch User
von Michel M. (elec-deniel)


Lesenswert?

.. höhere Bildauflösung einer Hall-S Zelle
und der Schaltung wäre noch interessant :-)

von Axel R. (Gast)


Lesenswert?

Der HC164 latch nicht, beim Umschalten erscheinen alle bit sofort so am 
Ausgang, wie sie hineingeschoben werden. Könnte hier ein Fehler zu 
finden sein?
Abblock-Cs sind natürlich immer hilfreich.

StromTuner

PS: sonst, also was am Foto erkennen kann, sauber aufgebaut. Sieht gut 
aus.

von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

Hoffe die Größe passt jetzt. Ich werde mal andere Widerstände und das 
mit den Kondensatoren testen. Sketch lade ich nacher mit dem PC hoch. 
Danke mal an alle die hier so hilfsbereit sind ??.

von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

So an den Pullups liegt es nicht, habe gerade 4,7k und 3,3k getestet. 
Einen 0,1µF Elko habe ich nicht, jedoch einen Folienkondensator mit 
0,1µF. Ich habe den mal probiert, einen Hallsensor hat er sogar 
beeinflusst. Das ganze habe ich dann auch mit einem 1µF Elko getestet, 
aber mit genau demselben Ergebnis. Zwei Hallsensoren waren immer noch 
unschlüssig. Soll ich mir 0.1µF Elkos kaufen? Oder wird es 
wahrscheinlich nicht viel bringen?
Die Mosfets sind auch mit 100µF gekoppelt.

PS: der Sketch ist jetzt angehängt, ist nicht gerade professionell 
geschrieben, ist ja nur zum Testen.

von Orion (Gast)


Lesenswert?

Sebastian schrieb:
> Ich arbeite derzeit an meiner Diplomarbeit

In welchem Fachbereich machst Du denn Deine Diplomarbeit?

von Sebastian (Gast)


Lesenswert?

Für die HTL, Mechatronik. Würde es schon gerne fertigbekommen, auch wenn 
es sehr aufwendig ist.

von Axel R. (Gast)


Lesenswert?

> for(int i = 0; i < 8; i++){
>if(digitalRead(A0+i) == LOW)...

A0 ist als konstante definiert? darf man da int i einfach so dazu 
addieren oder muss das erst in eine Hilfsvariable umkopiert werden? Ich 
frag libbers vorher. Nicht das ich wieder blamiere...

Der Funktion DigitalWrite(*HIGH*|*LOW*) kann ja auch ein boolscher 
Ausdruck direkt als Parameter übergeben werden.
(Das war peinlich) :|


StromTuner

von Sebastian (Gast)


Lesenswert?

Da es bei den anderen Spalten funktioniert, wird man es wohl so machen 
können.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Sebastian schrieb:
> Da es bei den anderen Spalten funktioniert, wird man es wohl so machen
> können.

Gut, meinereiner würde einfach in einem Schwupps den Port einlesen, 
anstelle durch die acht Inputs zu zählen. Wenn die Kondensatoren 
Einfluss haben, deutet das aber schon auf die Hardware hin.
Was passiert denn nun, wenn du die entsprechenden Hallsensoren mit 
Magneten auf inaktiv kippen lässt?

Sebastian schrieb:
> Einen 0,1µF Elko habe ich nicht,

Das muss auf keinen Fall ein Elko sein, Folko oder Kerko ist schon 
richtig.

: Bearbeitet durch User
von Axel R. (Gast)


Lesenswert?

Dann wird beim Hallo_test.ino jetzt nur eine Zeile zum test angefahren 
und nur eine Spalte ausgelesen. Wenn die geht, kompilierst Du neu und 
nimmst Dir die nächste Zeile vor. aha.


StromTuner

von Sebastian (Gast)


Lesenswert?

Ich glaube ich habe den Fehler. Habe jetzt den Multiplexer rausgenommen 
und an den MOSFETs abwechselnd Masse angehängt. Bei allen bis auf ein 
paar hatte ich alles 1en. Dann habe ich direkt an der Schaltung 5V 
angelegt, und alle funktionieren. Kann es sein, dass die Mosfets 
"defekt" sind und nicht mehr genug Strom liefern können?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Sebastian schrieb:
> Kann es sein, dass die Mosfets
> "defekt" sind und nicht mehr genug Strom liefern können?

MOSFets sind empfindlich gegen statische Entladung aufs Gate, aber das 
sollte doch einfach rauszufinden sein, indem du die Versorgungsspannung 
misst, die auf die Hallsensoren geschickt wird. Es sollte bei 
durchgeschaltetem MOSFet keine nennenswerte Spannung zwischen Drain und 
Source zu messen sein (MOSFet nahe null Ohm).

von Sebastian (Gast)


Lesenswert?

Hallo. Habe jetzt neue MOSFETs bestellt. Melde mich ob es das war.
Danke nochmal!

von Sebastian (Gast)


Lesenswert?

Hallo. Mosfets sind zwar gewechselt, allerdings ohne Änderung:/

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

Lesenswert?

Sebastian schrieb:
> Hallo. Mosfets sind zwar gewechselt, allerdings ohne Änderung:/

Wenn du dir die Kommentare von Honeywell nochmal durchliest, steht da 
explizit das da oben drin. (Leider nur als Scan bei
http://www.datasheetarchive.com/hall%20sensor%2041F-datasheet.html )

Das ist nun mal bei gelatchen Sensoren so, das sie, solange das 
Magnetfeld zwischen den Schwellen liegt, einen beliebigen Zustand 
annehmen können. Du musst also, wenn du von den Dingern nicht abrücken 
willst, ein Magnetfeld anlegen, was sie in den gewünschten Zustand 
kippt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.