![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Create this program
Dependencies: mbed HCSR04 HMC6352 PID TextLCD
compass.h
- Committer:
- KoiShin_Sakana
- Date:
- 2015-08-11
- Revision:
- 6:44c3bfbe2553
- Parent:
- 5:e07e380ddb93
File content as of revision 6:44c3bfbe2553:
/** * @file : compass.h (1.0) * @brief : measure angle * @author : Shinnosuke KOIKE * @date : 2015/08/04 */ #ifndef COMPASS_H #define COMPASS_H #include "mbed.h" #include "HMC6352.h" class Compass { public: Compass(PinName sda, PinName scl); ~Compass(); float measureAngle(void); private: float initialAngle; HMC6352* hmc6352; }; // initialize and set initial angle Compass::Compass(PinName sda, PinName scl) { hmc6352 = new HMC6352(sda, scl); hmc6352->setOpMode(HMC6352_CONTINUOUS, 1, 20); wait(0.1); this->initialAngle = hmc6352->sample() / 10.0; } Compass::~Compass() { delete hmc6352; } // return difference of angle float Compass::measureAngle(void) { wait(0.1); float diffAngle = hmc6352->sample() / 10.0 - initialAngle; return diffAngle; } #endif /** * example program #include "mbed.h" #include "compass.h" int main(void) { Compass compass(D14, D15); while (1) { pc.printf("%f\r\n", compass.measureAngle()); // for example, display "130.143..." } } */