Difference between revisions of "Externer Magnetfeldsensor"
Line 63: | Line 63: | ||
==Auswertung== | ==Auswertung== | ||
− | |||
Revision as of 14:21, 18 August 2023
Experiment | Externer Magnetfeldsensor |
---|---|
Category | Arduino library experiments |
Used sensors | Magentic Field |
Magnetfeldern von Permanentmagneten oder stromdurchflossenen Spulen lassen sich mit den in Smartphones integrierten Magnetfeldsensoren praktisch nicht messen. Das liegt daran, dass die ingebauten Sensoren für sehr schwache Magnetfelder ausgelegt sind, um eine Kompassfunktion zu ermöglichen. In der Regel geht der Messbereich bis maximal 2 bis 5 mT.
Möchte man z. B. das Magnetfeld einer Spule entlang der Spulenachse ausmessen, muss der Messbereich eine Größenordnung darüberliegen. Im Folgenden Versuch wird mittels eines Hallsensors (Typ 49e) ein einfach zu benutzender Magnetfeldsensor verwendet, der auch von Oberstufenschülern selbst gebaut werden kann (aktuelle Sicherheitsrichtlinien nach RISU beachten!).
Aufbau
Zuerst muss der ESP32 programmiert und verbunden werden. Die Spannung wird zwischen PINXY und GND gemessen.
Aufbauanleitung
Anschließend kann direkt losgelegt werden. Die entsprechenden Schaltbilder sind in den Arbeitsblättern zu finden.
Programmierung
Der ESP32 wird über die Arduino IDE programmiert. Es müssen die Definitionen für den ESP32 und die phyphox-Bibliothek installiert sein. Siehe dazu das Video unter Category: Arduino library experiments.
Es ist darauf zu achten, dass jeder ESP32 eine eigene Kennung hat (diese wird in PhyphoxBLE::start("Magnetfeldsensor_01") festgelegt). Anschließend kann über das Plus-Symbol in phyphox ein Bluetooth-Experiment hinzugefügt werden, das Experiment wird dann automatisch geladen.
#include <phyphoxBle.h> int AnalogPin=27; float Messwert; float Magnetfeld; void setup() { PhyphoxBLE::start("Magnetfeldsensor_01"); //Experiment PhyphoxBleExperiment experiment; experiment.setTitle("Magnetfeld"); experiment.setCategory("Arduino Experiments"); experiment.setDescription("Plot the magnetic field of time"); //View PhyphoxBleExperiment::View view; //Graph PhyphoxBleExperiment::Graph graph; graph.setLabel("B over time"); graph.setUnitX("s"); graph.setUnitY("mT"); graph.setLabelX("time"); graph.setLabelY("B"); + - Vout view.addElement(graph); experiment.addView(view); PhyphoxBLE::addExperiment(experiment); } void loop() { Messwert=analogRead(AnalogPin); Magnetfeld=(Messwert-1972)*(-0.064); PhyphoxBLE::write(Magnetfeld); delay(50); }
Auswertung
Probleme und Lösungen
- test
- test