Halleffektsensor

Gast #3833201
Lesenswert?

Hi,
ich habe mir den Halleffektsensor
http://www.conrad.de/ce/de/product/505287/Digitaler-PositionssensorHalleffektsensor-Honeywell-SS41-45-24-VDC-SIP?ref=list
von Conrad geholt. Den habe ich wie folgt angeschlossen
+ -> 5V
- -> GND
0 -> Widerstand->LED->GND
Wenn ich jetzt einen Magneten über den Sensor halte, passiert allerdings 
nichts. Habe ich da etwas falsch verstanden? oder was muss ich anders 
machen?

Mark
Gast #3833209
Lesenswert?

Mark schrieb:
> Habe ich da etwas falsch verstanden? oder was muss ich anders
> machen?

ja.
Der Sensor hat einen Open Collector Ausgang mit NPN Transistor gegen 
Masse.
D.h. LED Anode an Plus, Kathode an Ausgang des Sensors (mit 
Vorwiderstand dazwischen).
Zusätzlich die magnetische Polung des Magneten beachten.

lg
Chris
Gast #3833219
Lesenswert?

Moin,
es gibt verschiedene Möglichkeiten warums bei dir nicht funktioniert:
- Magnet zu schwach
- Magnet mal andersrum hinhalten (Stichwort release point)
- Versorgungsspannung nachmessen ob wirklich > 4,5 V
- Vielleicht hast du es auch schon geschafft den Sensor durch nen 
ESD-Impuls zu grillen.
- LED richtig rum gepolt? Der Strom muss in den Sensor reinfließen.
Gast #3833287
Lesenswert?

Ich habe da noch einmal eine Nachfrage.
Es funktioniert wie folgt. so lange ich den Magneten an den Sensor 
halte, leuchtet die LED. Aber eigentlich möchte ich das Signal an einen 
Controller senden, damit ich die LED 3 x blinken lassen kann, wenn ich 
mit dem MAgneten da war.
Allerdings fällt mir keine gescheite möglichkeit an, wie ich das 
verbinden soll.
Gast #3833302
Lesenswert?

Ja, das war eines meiner ersten Übung.
5V->Taste->Eingang Controller und einen Widerstand zwischen Eingang 
Controller und 5V, damit die Spannung beim loslassen des Tasters sofort 
wegfällt.
Aber hier habe ich ja
5V->+(Sensor)
5V->Widerstand->0(des Sensors)
und einmal GND->-(Sensor)

Jetzt hätte ich eine Verbindung von -(Sensor) zum Eingang Controller 
gelegt, da tut sich aber nichts

Anbei meinen Code für Arduino
1
int hallPin=2;
2
int LED=13;
3
int statePin=LOW;
4

5
void setup() {
6
  pinMode(hallPin,INPUT);
7
  pinMode(LED,OUTPUT);
8
}
9

10
void loop() {
11
  statePin=digitalRead(hallPin);
12
  if(statePin==HIGH){
13
    digitalWrite(LED,HIGH);
14
  }
15
  else {
16
    digitalWrite(LED,LOW);
17
  }
18
}
#3833306
Lesenswert?

1. Wenn du mehr als die blinkende LED willst wirf bitte die Arduino IDE 
weg (die hw kannst du aber gut weiter verwenden).
2. Du verbindest den Pin des AVRs den du als Eingang gewählt hast mit 
dem O des Halls und schaltest den internen Pullup ein (Bei PORT des 
entsprechenden Pins auf eins, während DDr auf Eingang steht).
Gast #3833331
Lesenswert?

Ah, auch funktioniert das.
Allerdings genau anders herum, als ich es eigentlich wollte.
Also so wie es oben geschrieben ist, Leuchtet die LED am pin13 so lange, 
wie ich 'nicht' mit dem Magneten am Sensor bin. Bin ich mit dem MAgneten 
am Sensor, geht die LED am Sensor an, allerdings die am Controller aus. 
Dies liegt aber an der Art vom Sensor (da einen NPN Transistor als 
Ausgang) oder?

Was ist so schlecht an der Arduino IDE? Ich finde es sehr nett damit zu 
programmieren.

Allerdings wollte ich es hinterher sowieso auf einen Attiny45 
programmieren, dann würde ich auch in AVR-Studio Programmieren.

Aber noch einmal Herzlichen dank
#3833808
Lesenswert?

Das mit dem andersrum liegt (wie du richtig erkannt hast) daran, dass es 
ein Open-Collector Ausgang ist.
Das ist in Software aber ganz einfach umzudrehen.
Bei dir zb indem du aus "  if(statePin==HIGH){" ein "if(statePin==LOW){" 
machst.
Arduino ist deswegen suboptimal weil:
1. Die wirkliche Hardware hinter einer Ladung Funktionen und Objekten 
versteckt wird, da gehen viele Möglichkeiten bei drauf.
2. C++ verwendet wird. Das ist zwar auf dem Desktop das Mittel das Wahl, 
aber auf einem winzigen 8-Bit Controller einfach viel zu Speicherhungrig
3. Dadurch, dass man den C++ Code bis zum Erbrechen eindampfen muss 
bevor er überhaupt auf den AVR passt ist Debugging nahezu unmöglich 
(vlt. grade noch indem man paar Zeichen auf die UART schiebt.

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