GY-63_MS5611/libraries/hmc6352/README.md

95 lines
3.3 KiB
Markdown
Raw Normal View History

2021-01-29 06:31:58 -05:00
[![Arduino CI](https://github.com/RobTillaart/HMC6352/workflows/Arduino%20CI/badge.svg)](https://github.com/marketplace/actions/arduino_ci)
2021-12-19 07:57:35 -05:00
[![Arduino-lint](https://github.com/RobTillaart/HMC6352/actions/workflows/arduino-lint.yml/badge.svg)](https://github.com/RobTillaart/HMC6352/actions/workflows/arduino-lint.yml)
[![JSON check](https://github.com/RobTillaart/HMC6352/actions/workflows/jsoncheck.yml/badge.svg)](https://github.com/RobTillaart/HMC6352/actions/workflows/jsoncheck.yml)
2021-01-29 06:31:58 -05:00
[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/RobTillaart/HMC6352/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/release/RobTillaart/HMC6352.svg?maxAge=3600)](https://github.com/RobTillaart/HMC6352/releases)
2021-12-19 07:57:35 -05:00
2020-11-27 05:16:22 -05:00
# HMC6352
Arduino library for HMC6352 compass sensor
2021-12-19 07:57:35 -05:00
2020-11-27 05:16:22 -05:00
## Description
2021-01-29 06:31:58 -05:00
**BETA: WARNING: BETA: WARNING: BETA: WARNING: BETA:**
2020-11-27 05:16:22 -05:00
This library is BETA, only tested partially and not thoroughly
No guarantees, use at own risk, all disclaimers apply
2021-12-19 07:57:35 -05:00
The example sketch can be used to configuration the compass.
2021-06-07 12:21:42 -04:00
For switching operational mode one must reboot the device.
2020-11-27 05:16:22 -05:00
2021-01-29 06:31:58 -05:00
**WARNING: BETA: WARNING: BETA: WARNING: BETA: WARNING:**
2021-06-07 12:21:42 -04:00
## Interface
2021-01-29 06:31:58 -05:00
### Constructor
2021-06-07 12:21:42 -04:00
- **hmc6352(uint8_t address, TwoWire \*wire = &Wire)** set the I2C address and optional the Wire interface.
- **bool begin(uint8_t sda, uint8_t scl)** for ESP32 ea. Returns true if address can be seen on the I2C bus.
- **bool begin()** for UNO, Returns true if address can be seen on the I2C bus.
- **bool isConnected()** Returns true if address can be seen on the I2C bus. Can be used as 1st order diagnostics.
2021-01-29 06:31:58 -05:00
### Base calls standby mode
2021-06-07 12:21:42 -04:00
- **int getHeading()** is a combination of **askHeading()** and **readHeading()**
- **int askHeading()** requests a new read of the heading (compass direction).
- **int readHeading()** reads the new value from the device.
- **int wakeUp()** if the deivice is in sleep mode, wake it up.
- **int sleep()** puts the device in sleep mode.
2021-01-29 06:31:58 -05:00
### Expert calls
2021-06-07 12:21:42 -04:00
Warning: use with care: read the datasheet for the details
- **int factoryReset()** idem
- **int setOperationalModus(hmcMode mode, uint8_t frequency, bool periodicReset)**
2021-01-29 06:31:58 -05:00
- **int getOperationalModus()**
2021-06-07 12:21:42 -04:00
- **int setOutputModus(uint8_t outputModus)**
2021-01-29 06:31:58 -05:00
- **int getOutputModus()**
2021-06-07 12:21:42 -04:00
- **int callibrationOn()**
- **int callibrationOff()**
- **int setI2CAddress(uint8_t address)** writes the I2C address in EEPROM to use after the next reboot.
- **int getI2CAddress()** reads the I2C address stored in EEPROM.
### Helper functions
Warning: use with care: read the datasheet for the details
- **int writeEEPROM(uint8_t address, uint8_t data)** EEPROM IO function
- **int readEEPROM(uint8_t address)** EEPROM IO function
- **int writeRAM(uint8_t address, uint8_t data)** RAM IO function
- **int readRAM(uint8_t address)** RAM IO function
2021-01-29 06:31:58 -05:00
- **int saveOpMode(byte OpMode)** allow power users to set operational mode flags
2021-06-07 12:21:42 -04:00
### NOT TESTED
Warning: use with care: read the datasheet for the details
2021-01-29 06:31:58 -05:00
2021-06-07 12:21:42 -04:00
- **int setTimeDelay(uint8_t milliSeconds)**
2021-01-29 06:31:58 -05:00
- **int getTimeDelay()**
2021-06-07 12:21:42 -04:00
- **int setMeasurementSumming(uint8_t NrOfMeasurements)** 1..16
- **int getMeasurementSumming()** returns 1..16
2021-01-29 06:31:58 -05:00
- **int updateOffsets(void)**
2020-11-27 05:16:22 -05:00
## Operation
See examples
2021-12-19 07:57:35 -05:00
## Future
- update documentation
- testing AVR
- testing ESP32
- test examples => more specific?