Author
|
Matrix TSL
|
Version
|
1.6
|
Category
|
Movement & Orientation
|
Magnetometer 3-Axis component
HMC5883L 3-Axis Magnetometer sensor Useful for working out data such as compass orientation.
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
Downloadable 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
|
|
[[File:]] -
|
Return
|
|
SimSetCompass
|
Allows the XYZ slider values to be set via the simulation
|
[[File:]] -
|
X
|
|
[[File:]] -
|
Y
|
|
[[File:]] -
|
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
|
|
Initialise
|
Configures the I2C peripheral and puts the sensor into one shot mode ready to be sampled. Must be called before calling any of the other component macros. Returns 1 if the sensor has been intialised correctly, else returns 0.
|
- BYTE
|
Return
|
|
Initialise
|
Sets up up the communication bus and initialises the accelerometer module. Returns 0 for success and > 0 for fail.
|
- BYTE
|
Return
|
|
SimSetGyro
|
Allows the XYZ slider values to be set via the simulation
|
[[File:]] -
|
X
|
|
[[File:]] -
|
Y
|
|
[[File:]] -
|
Z
|
|
- VOID
|
Return
|
|
UpdateAccelerometerData
|
Reads from the accelerometer and updates the local XYZ variables. Returns 1 for new data and 0 for no new data
|
- BYTE
|
Return
|
|
SimSetCompass
|
Allows the XYZ slider values to be set via the simulation
|
[[File:]] -
|
X
|
|
[[File:]] -
|
Y
|
|
[[File:]] -
|
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
|
|
IOSetOutputPin
|
Sets the selected digital pin to an output and assigns the output state.
|
- BYTE
|
Pin
|
Range: 0-29
|
[[File:]] -
|
State
|
Range: 0-1
|
- VOID
|
Return
|
|
UARTReceive
|
Receives a data byte from the UART. Recommend calling the UARTCheckRx function first to ensure data is available.
|
- BYTE
|
Channel
|
Channel Index: Range 0 - UART Bus Count - 1
|
- BYTE
|
Return
|
|
ADCSampleAverage10
|
Reads the voltage present on an Analog pin as an 10-bit value range 0-1023. Performs the selected number of samples with the selected time in microseconds in between samples
|
- BYTE
|
ADCChannel
|
Range: 0, 3-7
|
- BYTE
|
SampleCount
|
Range: 1- 100
|
- BYTE
|
SampleDelay
|
Delay in us between each sample
|
- UINT
|
Return
|
|
OneWireScanBus
|
Scans the one wire bus to detect all connected devices. Returns the number of one wire devices found.
|
- BYTE
|
Channel
|
Channel Index: Range 0 - I2C Bus Count - 1
|
- BYTE
|
Return
|
|
SPIInitialise
|
Initialsie the SPI module ready for communications
|
- BYTE
|
Channel
|
Channel Index: Range 0 - SPI Bus Count - 1
|
- VOID
|
Return
|
|
OneWireReceiveByte
|
Receives a byte from the one wire bus a bit at a time
|
- BYTE
|
Channel
|
Channel Index: Range 0 - I2C Bus Count - 1
|
- BYTE
|
Return
|
|
I2CSend
|
Transmit a byte using the I2C bus
|
- BYTE
|
Channel
|
Channel Index: Range 0 - I2C Bus Count - 1
|
- BYTE
|
DataOut
|
|
[[File:]] -
|
Return
|
|
UARTSend
|
Send a byte via the UART module
|
- BYTE
|
Channel
|
Channel Index: Range 0 - UART Bus Count - 1
|
- BYTE
|
Data
|
Data Byte to send. Range: 0-255
|
- VOID
|
Return
|
|
OneWireGetDeviceCount
|
Returns the number of devices found by the last ScanBus operation.
|
- BYTE
|
Channel
|
Channel Index: Range 0 - I2C Bus Count - 1
|
- BYTE
|
Return
|
|
PWMSetPrescaler
|
Sets the prescaler for the PWM output
|
- BYTE
|
Channel
|
Range: 0 - 11
|
- BYTE
|
Prescaler
|
|
- BYTE
|
Period
|
|
- VOID
|
Return
|
|
PWMEnable
|
Enable a PWM output
|
- BYTE
|
Channel
|
Range: 0-11
|
- VOID
|
Return
|
|
ADCSampleArray10
|
Reads the voltage present on an Analog pin as an 10-bit value range 0-1023 Performs the selected number of samples with the selected time in microseconds in between samples and returns each sample in a single packet
|
- BYTE
|
ADCChannel
|
Range: 0, 3-7
|
- BYTE
|
SampleCount
|
Range: 1- 32
|
- UINT
|
SampleDelay
|
Delay in us between each sample
|
- UINT
|
Samples
|
10-bit samples returned from the function
|
- VOID
|
Return
|
|
ADCSampleAverage8
|
Reads the voltage present on an Analog pin as an 8-bit value range 0-255 Performs the selected number of samples with the selected time in microseconds in between samples
|
- BYTE
|
ADCChannel
|
Range: 0, 3-7
|
- BYTE
|
SampleCount
|
Range: 1- 100
|
- BYTE
|
SampleDelay
|
Delay in us between each sample
|
- BYTE
|
Return
|
|
Initialise
|
Initialise the comms to the Arduino board ready for commands to be sent.
|
- VOID
|
Return
|
|
PWMEnable
|
Allows pulse width modulated transistor outputs to be switched on or off. Bit 0 = Enable AB Bit 1 = A / Bit 2 = B Bit 3 = C / Bit 4 = D Bit 5 = Enable CD
|
- BYTE
|
EnableMask
|
Range 0-63 or 0b00000 to 0b111111
|
- VOID
|
Return
|
|
Initialise
|
|
- VOID
|
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
|
|
|
Scope Traces
|
Selects if the scope traces are automatically generated or not
|
|
Console Data
|
Selects if the console data is automatically generated or not
|
|
API
|
|
|
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
|
|
|
Simulations
|
|
Simulate Comms
|
Yes: Accelerometer data will come from the simulation component sliders. No: Accelerometer data will come from the I2C CAL component - Injector etc
|