Measuring a Magnetic Field
To use the device to measure a magnetic field—for instance that of a small bar magnet, or the field generated by an electric current in a wire—you should first make a zero-point measurement of the ambient magnetic field of the Earth. Further readings should subtract this zero-point measurement.
When measuring, move the magnet to the device rather than moving the device to the magnet. Moving the device will cause the magnetic field of the Earth across the measuring sensor to change, which will spoil the zero point calibration you took earlier. If the device must be moved, only small movements should be attempted.
You can retrieve the raw magnetic field measurements along the X, Y
and Z-axes by querying the CLHeading
object passed to the locationManager:didUpdateHeading: method:
- (void)locationManager:(CLLocationManager *)manager
didUpdateHeading:(CLHeading *)heading {
double x = heading.x;
double y = heading.y;
double z = heading.z;
double magnitude = sqrt(x*x + y*y + z*z);
... code ...
}The values returned are normalized into a ±128 range, measured in microtesla (µT), representing the offset from the magnetic field lines measured by the magnetometer.
Note
Apple provides sample code that displays the raw x, y, and z magnetometer values, a plotted history of those values, and a computed magnitude (size or strength) of the magnetic field. The code can be downloaded from the iPhone developer website at http://developer.apple.com/library/ios/#samplecode/Teslameter ...