Hallo ich kann mir selber nicht erklären warum es nicht funktioniert. Ich habe einen HallSensor 49E den ich an meinen Arduino angeschlossen habe. - Pin and GND, 5V an + und S Pin an Interrupt Pin 2. Die Datenleitung S und 5V habe ich über einen 10 kOhm Widerstand auf einem Breadboard miteinander verbunden Mein Code ähnlich den kursierenden Beispielen sieht wie folgt aus: void setup() { pinMode(2, INPUT); // Eingangspin auf Eingang stellen // digitalWrite(2, HIGH); // und Pullup-Widerstand einschalten Serial.begin(115200); // Interrupt 0 auf Routine readmicros setzen attachInterrupt(digitalPinToInterrupt(2), detectMagnet, FALLING); Serial.println("Hall-Effekt-Sensor Test"); } void loop() { Serial.println(digitalRead(2)); delay(1000); } // Interrupt-Routine // Diese Funktion wird immer dann aufgerufen, wenn ein Magnet vom Arduino erkannt wird void detectMagnet() { Serial.println("Magnet erkannt"); } Mein Problem ist, dass immer eine logische 1 ausgegeben wird. Entferne ich aber den 10kOHM Widerstand wird ununterbrochen das "Magnet erkannt" Event aufgerufen und ausgegeben - sobald ich dann einen Magnet dranhalte, wird das event nicht mehr aufgerufen und eine logische 1 ausgegeben. Die Preisfrage ist jetzt warum zum Teufel es nicht andersrum mit dem Pullup Widerstand funktioniert (den input PIN als Pullup Widerstand zu deklarieren hab ich auch schon versucht ohne Erfolg). Für jede Hilfe dankbar.
Nach kurzer Recherche ist der 49E ein linearer Sensor, den du direkt an einen ADC Input ( Ohne PullUp) anschließen musst. Die Höhe der Spannung ist proportional des Magnetfelds.
Nils schrieb: > Serial.println("Magnet erkannt"); Serielle Ausgaben in einer ISR können zur Totalblockade führen. Da Serial selber Interrupts benötigt/verwendet. Tipp: Vermeiden.
> den du direkt an > einen ADC Input ( Ohne PullUp) anschließen musst. Der Widerstand scheint schon in Ordnung zu sein, laut Datenblatt ist es ein Open Drain Output.
https://uc0725f3d4a6ac21cc23a47d36b3.dl.dropboxusercontent.com/cd/0/inline2/AlMk_XMfjN242AKydI5RDr-B1k6rXcVD7wFggESR3IIG-SLo7ScGBwTsOHLaeYNQSeckJHwFfP-LtffYm5QJ4gYV8DAHhmL7s8JYpSbjU05YVaAcnUUh_VlPa7YDMSHpBl8Sr9g3U5KpJF0sWtjQThXIfSLn7m8KklDqTpMq_EshtmC2X6Kv71thdqkkZExOrVet0weFRil1PTgK0nQRGEjxr0mA0Tojmqvy_xcsI0iPvx0w-5WZyyBx1WzqGtrdhijPZXwBWaKZLl7P0SCq8g3OTaDrS-nqq7warDtNKebSo19f3Y0HMIZhVaURSoR5hKCAV6RAgbWBRP3xZWmJRyq8/file hmm, da scheints verschiedene Varianten zu geben.
Also wie gesagt mit Widerstand krieg ich gar kein Signal. Aber ohne sendet er permanent ein Signal, was ja nicht Sinn der Sache sein kann. Er stoppt dann praktisch nur wenn ein Magnet detektiert wird. Es ist auch vollkommen unabhängig davon ob ich im event FALLING, RISING oder etwas Anderes reinschreibe. Für mich macht das keinen Sinn. Ich dachte immer das sind Opencollector weshalb man den Widerstand braucht...
Also ich hab diesen hier gekauft: https://www.amazon.de/ARCELI-Effekt-Magnetisches-Sensormodul-Arduino/dp/B07CB1ZW93/ref=sr_1_3?keywords=Hall-Sensor&qid=1563888986&s=gateway&sr=8-3
Nils schrieb: > Die Preisfrage ist jetzt warum zum Teufel es nicht andersrum mit dem > Pullup Widerstand funktioniert (den input PIN als Pullup Widerstand zu > deklarieren hab ich auch schon versucht ohne Erfolg). Hast du da einfach mal ein Messgerät an den Pin gehalten und die Spannung kontrolliert? Welche Spannungen hast du in welcher Konstellation bei welcher Belegung gemessen? Der AVR funktioniert nämlich nur, wenn die Eingangsspannung an seinem Pin so ist, wie es im Datenblatt verlangt wird. Wenn das funktioniert, dann kannst du anfangen zu programmieren.
:
Bearbeitet durch Moderator
Ist es nur der eigentliche lineare Sensor oder eine Platine mit Analogkomparator von Waveshare? https://www.waveshare.com/w/upload/2/28/Hall-Sensor-Schematic.pdf Letztere kann man entweder analog über ADC-Eingang am Ardino auswerten oder digital nur die Überschreitung einer mit Poti eingestellten Schwelle auswerten. https://sensing.honeywell.com/index.php?ci_id=50359 vermutlich das Original von Honeywell https://p.globalsources.com/IMAGES/PDT/SPEC/440/K1139513440.pdf das Datenblatt zum chinesischen Sensor 49E http://www.hallsensors.de/CYL49E.pdf dito, anderer Firmenname https://www.sunrom.com/get/324700 noch ein Chinese
Nils schrieb: > Ich habe einen HallSensor 49E Nils schrieb: > Also ich hab diesen hier gekauft: > https://www.amazon.de/ARCELI-Effekt-Magnetisches-Sensormodul-Arduino/dp/B07CB1ZW93/ref=sr_1_3?keywords=Hall-Sensor&qid=1563888986&s=gateway&sr=8-3 Das ist ein A3141 und kein 49E Ja, dann ist ein Pullup nötig.
Ich habe leider kein Spannungsmessgerät. Ja es ist diese Platine bei Amazon, heißt analog auswerten das ich es nicht über eine Interruptroutine des Arduinos benutzen kann? Oder wie genau ist das zu interpretieren. Eigentlich will ich ja über die fallende Flanke auslesen....
Nils schrieb: > Also ich hab diesen hier gekauft: > > https://www.amazon.de/ARCELI-Effekt-Magnetisches-Sensormodul-Arduino/dp/B07CB1ZW93/ref=sr_1_3?keywords=Hall-Sensor&qid=1563888986&s=gateway&sr=8-3 So wie's aussieht, ist das ein rein analoger Hallsensor. Der muss völlig anders angesprochen werden. Allerdings wüsste ich auch erstmal nicht, wie genau. Die Beschriftung der Anschlüsse ist nicht gerade selbsterklärend. War da nicht noch wenigstens noch irgend so'n Zettel im Lieferumfang?
Nein nichts. Allerdings steht ja unten in der Beschreibung: 4. Es ist durch den Spannungsregler, Hall Voltage Generator, Differentialverstärker, Schmidt Trigger, Temperaturkompensation und die Open Collector Output Stage Circuit bestehend aus magnetisch empfindlichen Sensor Circuit 5. Sein Eingang für die magnetische Induktionsintensität ist der Ausgang ein digitales Spannungssignal Die PINS sind meines Erachtens nach GND(-),5V und Daten (S)
Nils schrieb: > 4. Es ist durch den Spannungsregler, Hall Voltage Generator, > Differentialverstärker, Schmidt Trigger, Temperaturkompensation und die > Open Collector Output Stage Circuit bestehend aus magnetisch > empfindlichen Sensor Circuit > 5. Sein Eingang für die magnetische Induktionsintensität ist der Ausgang > ein digitales Spannungssignal Lausig übersetzt, das ist ja kaum verständlich. Mal anders: Ist auf dem Chip wie auf dem Foto bei Amazon die Bezeichnung A3141 zu lesen? Falls ja: Dann passt, was man der "Beschreibung" entnehmen kann, recht gut. Also doch Digital und braucht einen Pullup. Datenblatt für den Sensor ist im Internet zu finden. Sehr viel besser als diese lausige Beschreibung bei Amazon.
Das ist ein "Switch", also ein digitaler Ausgang, der nur das Überschreiten einer bestimmten Magnetfeldstärke anzeigt. https://arduinomodules.info/ky-003-hall-magnetic-sensor-module/ "The KY-003 Hall Magnetic Sensor consists of a 3144EUA-S sensitive Hall-effect switch for high-temperature operation, a 680Ω resistor and a LED." https://www.mpja.com/download/A3144EUl.pdf Das Datenblatt von Allegro. 3,3V ist anscheinend zu wenig, ab 4,5V Betriebsspannung brauchbar und ein pull-Up ist nötig, da er nur einen open-collector Ausgang hat. Der (680 Ohm) sitzt aber schon auf der Platine.
:
Bearbeitet durch User
c-hater schrieb: > So wie's aussieht, ist das ein rein analoger Hallsensor. Laut dieser Seite nicht: http://sensorkit.joy-it.net/index.php?title=KY-003_Hall_Magnetfeld-Sensor_Modul (auch wenn da "wieder" was von analog auslesen steht) Vielleicht mal mit der Lupe da ran gehen. Denn, ohne genau zu wissen, was das jetzt für eine Kröte ist, würde ich mir die nicht in den Mund (an den Arduino) stecken.
Also auf dem Sensor selbst steht 49E und darunter 419. Deswegen kam ich auf die Bezeichnung. Auf dem Chip selber steht nix, ich hab mal ein Bild angehängt. Mein Problem ist aber das ich inzwischen alle Varianten durchhabe. Mit Pullup, ohne, zich programmatische Varianten. Kann mir jemand vllt auch eine Alternative empfehlen die auf jeden Fall funktioniert?
Ok ich hab den Fehler gefunden, anscheinend waren auf mehreren der Module wie im Bild ersichtlich keine LEDs bzw die Widerstände montiert. Kann ja nicht funktionieren.... Danke für die Hilfe euch allen
Beitrag #5916812 wurde von einem Moderator gelöscht.
Nils schrieb: > anscheinend waren auf mehreren der Module wie im Bild ersichtlich keine > LEDs bzw die Widerstände montiert. Nett. Das hätte man mit dem Messgerät innerhalb einiger Minuten festgestellt. Nils schrieb: > Ich habe leider kein Spannungsmessgerät. Ändere das. Für drei Euronen hat die Raterei ein Ende: Ebay 362439762108 Elektronik zusammenzubasteln ohne Multimeter ist wie einen Reifen wechseln nur mit Zange und Hammer. Mit ein wenig Glück und Zufall geht das schon...
Du hast kein Spannungsmessgerät ? Häng dein Hobby anden Nagel!
Hallo, Lothar M. schrieb: > Elektronik zusammenzubasteln ohne Multimeter ist wie einen Reifen > wechseln nur mit Zange und Hammer. Eher wie kochen ohne Messer. Und beim Kochen sollte man auch immer mehrere Messer zur Hand haben. rhf
:
Bearbeitet durch User
Der 49E liefert eine analoges Signal. Daher benötigt man für die Auswertung einen analogen Eingang.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.