Author
|
Matrix TSL
|
Version
|
1.6
|
Category
|
Movement Orientation
|
Magnetometer 3-Axis (HMC5883L) component
HMC5883L 3-Axis Magnetometer sensor Useful for working out data such as compass orientation.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_Magnetometer_HMC5883.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_Magnetometer_HMC5883.fcfx
Detailed description
No detailed description exists yet for this component
Examples
Here is a very simple demonstration on how to use the sensor to read X, Y, Z magnetometer data from the sensor.
HMC5883L Demo
Macro reference
|
Read_Register
|
Reads a value from a register on the accelerometer.
|
- BYTE
|
Reg
|
|
- BYTE
|
Return
|
|
Write_Register
|
Writes a data value to a specific register on the accelerometer
|
- BYTE
|
Reg
|
|
- BYTE
|
Data
|
|
- BYTE
|
Return
|
|
UpdateCompassData
|
Reads from the compass and updates the local XYZ variables. Returns 1 for new data and 0 for no new data
|
- BYTE
|
Return
|
|
CollectXYZData
|
Collect the data from the local accelerometer buffers. The Axis parameter specifies the Axis to be read. 0 / 'x' / 'X' - X axis 1 / 'y' / 'Y' - Y axis 2 / 'z' / 'Z' - Z axis
|
- BYTE
|
Axis
|
|
- INT
|
Return
|
|
SimSetCompass
|
Allows the XYZ slider values to be set via the simulation
|
- INT
|
X
|
|
- INT
|
Y
|
|
- INT
|
Z
|
|
- VOID
|
Return
|
|
Read_Bearing
|
Reads the current sensor compass bearing based on degrees CW from magnetic north. Returns 0-359 where 0 = North, 90 = East, 180 = South, 270 = West Requires the ArcTan floating point function to be available to work correctly. Supported on AVR, 16-bit
|
- BYTE
|
NumSamples
|
The number of readings to base the bearing on
|
- UINT
|
Return
|
|
Initialise
|
Sets up up the communication bus and initialises the accelerometer module. Returns 0 for success and > 0 for fail.
|
- BYTE
|
Return
|
Property reference
|
Properties
|
|
Bit Depth
|
|
|
Measurement Mode
|
Continuous mode makes constant sensor readings setting the RDY pin when new data is available. Single mode does a single sensor read setting the RDY pin when done and then waits for data to be read.
|
|
Num Samples
|
The number of samples that are averaged together to provide the readings.
|
|
Compass Data Rate
|
Sets the output conversion rate.
|
|
Compass Scale
|
|
|
Connections
|
|
Channel
|
Channel selection
|
|
Baud Select
|
Baud rate option selector
|
|
Baud Rate
|
Baud rate to be used
|
|
Stop Delay
|
On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not a 10ms delay between an I2C stop event and the next I2C start event. Most modern microcontrollers will not have a problem so this property can be disabled to speed up the I2C communications.
|
|
SDA
|
Pin used for SDA (data signal)
|
|
SCL
|
Pin used for SCL (clock signal)
|
|
Use RDY Pin
|
|
|
Simulation
|
|
Simulate Comms
|
Yes: Accelerometer data will come from the simulation component sliders. No: Accelerometer data will come from the I2C CAL component - Injector etc
|
==Macro reference==
|
Read_Register
|
Reads a value from a register on the accelerometer.
|
- BYTE
|
Reg
|
|
- BYTE
|
Return
|
|
Write_Register
|
Writes a data value to a specific register on the accelerometer
|
- BYTE
|
Reg
|
|
- BYTE
|
Data
|
|
- BYTE
|
Return
|
|
UpdateCompassData
|
Reads from the compass and updates the local XYZ variables. Returns 1 for new data and 0 for no new data
|
- BYTE
|
Return
|
|
CollectXYZData
|
Collect the data from the local accelerometer buffers. The Axis parameter specifies the Axis to be read. 0 / 'x' / 'X' - X axis 1 / 'y' / 'Y' - Y axis 2 / 'z' / 'Z' - Z axis
|
- BYTE
|
Axis
|
|
- INT
|
Return
|
|
SimSetCompass
|
Allows the XYZ slider values to be set via the simulation
|
- INT
|
X
|
|
- INT
|
Y
|
|
- INT
|
Z
|
|
- VOID
|
Return
|
|
Read_Bearing
|
Reads the current sensor compass bearing based on degrees CW from magnetic north. Returns 0-359 where 0 = North, 90 = East, 180 = South, 270 = West Requires the ArcTan floating point function to be available to work correctly. Supported on AVR, 16-bit
|
- BYTE
|
NumSamples
|
The number of readings to base the bearing on
|
- UINT
|
Return
|
|
Initialise
|
Sets up up the communication bus and initialises the accelerometer module. Returns 0 for success and > 0 for fail.
|
- BYTE
|
Return
|
Property reference
|
Properties
|
|
Bit Depth
|
|
|
Measurement Mode
|
Continuous mode makes constant sensor readings setting the RDY pin when new data is available. Single mode does a single sensor read setting the RDY pin when done and then waits for data to be read.
|
|
Num Samples
|
The number of samples that are averaged together to provide the readings.
|
|
Compass Data Rate
|
Sets the output conversion rate.
|
|
Compass Scale
|
|
|
Connections
|
|
Channel
|
Channel selection
|
|
Baud Select
|
Baud rate option selector
|
|
Baud Rate
|
Baud rate to be used
|
|
Stop Delay
|
On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not a 10ms delay between an I2C stop event and the next I2C start event. Most modern microcontrollers will not have a problem so this property can be disabled to speed up the I2C communications.
|
|
SDA
|
Pin used for SDA (data signal)
|
|
SCL
|
Pin used for SCL (clock signal)
|
|
Use RDY Pin
|
|
|
Simulation
|
|
Simulate Comms
|
Yes: Accelerometer data will come from the simulation component sliders. No: Accelerometer data will come from the I2C CAL component - Injector etc
|
==Macro reference==
|
Read_Register
|
Reads a value from a register on the accelerometer.
|
- BYTE
|
Reg
|
|
- BYTE
|
Return
|
|
Write_Register
|
Writes a data value to a specific register on the accelerometer
|
- BYTE
|
Reg
|
|
- BYTE
|
Data
|
|
- BYTE
|
Return
|
|
UpdateCompassData
|
Reads from the compass and updates the local XYZ variables. Returns 1 for new data and 0 for no new data
|
- BYTE
|
Return
|
|
CollectXYZData
|
Collect the data from the local accelerometer buffers. The Axis parameter specifies the Axis to be read. 0 / 'x' / 'X' - X axis 1 / 'y' / 'Y' - Y axis 2 / 'z' / 'Z' - Z axis
|
- BYTE
|
Axis
|
|
- INT
|
Return
|
|
SimSetCompass
|
Allows the XYZ slider values to be set via the simulation
|
- INT
|
X
|
|
- INT
|
Y
|
|
- INT
|
Z
|
|
- VOID
|
Return
|
|
Read_Bearing
|
Reads the current sensor compass bearing based on degrees CW from magnetic north. Returns 0-359 where 0 = North, 90 = East, 180 = South, 270 = West Requires the ArcTan floating point function to be available to work correctly. Supported on AVR, 16-bit
|
- BYTE
|
NumSamples
|
The number of readings to base the bearing on
|
- UINT
|
Return
|
|
Initialise
|
Sets up up the communication bus and initialises the accelerometer module. Returns 0 for success and > 0 for fail.
|
- BYTE
|
Return
|
Property reference
|
Properties
|
|
Bit Depth
|
|
|
Measurement Mode
|
Continuous mode makes constant sensor readings setting the RDY pin when new data is available. Single mode does a single sensor read setting the RDY pin when done and then waits for data to be read.
|
|
Num Samples
|
The number of samples that are averaged together to provide the readings.
|
|
Compass Data Rate
|
Sets the output conversion rate.
|
|
Compass Scale
|
|
|
Connections
|
|
Channel
|
Channel selection
|
|
Baud Select
|
Baud rate option selector
|
|
Baud Rate
|
Baud rate to be used
|
|
Stop Delay
|
On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not a 10ms delay between an I2C stop event and the next I2C start event. Most modern microcontrollers will not have a problem so this property can be disabled to speed up the I2C communications.
|
|
SDA
|
Pin used for SDA (data signal)
|
|
SCL
|
Pin used for SCL (clock signal)
|
|
Use RDY Pin
|
|
|
Simulation
|
|
Simulate Comms
|
Yes: Accelerometer data will come from the simulation component sliders. No: Accelerometer data will come from the I2C CAL component - Injector etc
|