Zoltan Hudak / Mbed OS HMC1501_Hello

Dependencies:   HMC1501 HX711

Committer:
hudakz
Date:
Sat Sep 19 20:22:45 2020 +0000
Revision:
1:668c95f5e6f9
Parent:
0:7eed1f44df4a
Example program for the HMC1501 magnetic angle sensor.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hudakz 0:7eed1f44df4a 1 #include "mbed.h"
hudakz 0:7eed1f44df4a 2 #include "HX711.h"
hudakz 0:7eed1f44df4a 3 #include "HMC1501.h"
hudakz 0:7eed1f44df4a 4
hudakz 0:7eed1f44df4a 5 //
hudakz 0:7eed1f44df4a 6 DigitalOut led1(LED1);
hudakz 0:7eed1f44df4a 7 HX711 hx711(3.2f, D2, D3, 32); // avdd in Volts, sck pin, dout pin, gain
hudakz 1:668c95f5e6f9 8 HMC1501 hmc1501(-35.5, 47.05); // minV [mV], maxV [mV]: measured by rotating a magnet in front of the chip
hudakz 0:7eed1f44df4a 9 Ticker ticker;
hudakz 0:7eed1f44df4a 10 volatile bool tick = false;
hudakz 0:7eed1f44df4a 11 //
hudakz 0:7eed1f44df4a 12
hudakz 0:7eed1f44df4a 13 /**
hudakz 0:7eed1f44df4a 14 * @brief
hudakz 0:7eed1f44df4a 15 * @note
hudakz 0:7eed1f44df4a 16 * @param
hudakz 0:7eed1f44df4a 17 * @retval
hudakz 0:7eed1f44df4a 18 */
hudakz 0:7eed1f44df4a 19 void onTick()
hudakz 0:7eed1f44df4a 20 {
hudakz 0:7eed1f44df4a 21 tick = true;
hudakz 0:7eed1f44df4a 22 }
hudakz 0:7eed1f44df4a 23
hudakz 0:7eed1f44df4a 24 /**
hudakz 0:7eed1f44df4a 25 * @brief
hudakz 0:7eed1f44df4a 26 * @note
hudakz 0:7eed1f44df4a 27 * @param
hudakz 0:7eed1f44df4a 28 * @retval
hudakz 0:7eed1f44df4a 29 */
hudakz 0:7eed1f44df4a 30 int main()
hudakz 0:7eed1f44df4a 31 {
hudakz 0:7eed1f44df4a 32 printf("Starting...\r\n");
hudakz 0:7eed1f44df4a 33 ticker.attach_us(onTick, 1000 * 1000); // 500ms
hudakz 0:7eed1f44df4a 34 hx711.powerUp();
hudakz 0:7eed1f44df4a 35 while (true) {
hudakz 0:7eed1f44df4a 36 if (tick) {
hudakz 0:7eed1f44df4a 37 tick = false;
hudakz 0:7eed1f44df4a 38 led1 = !led1;
hudakz 0:7eed1f44df4a 39 if (hx711.isReady()) {
hudakz 0:7eed1f44df4a 40 float mV = hx711.read(); // read voltage in mV
hudakz 0:7eed1f44df4a 41 printf("hx711 voltage \t= %fmV\r\n", mV);
hudakz 0:7eed1f44df4a 42 printf("hmc1501 offset \t= %f mV\r\n", hmc1501.getOffset());
hudakz 0:7eed1f44df4a 43 printf("hmc1501 angle \t= %f deg\r\n", hmc1501.angle(mV));
hudakz 0:7eed1f44df4a 44 printf("-------------------------------------------\r\n");
hudakz 0:7eed1f44df4a 45 }
hudakz 0:7eed1f44df4a 46 }
hudakz 0:7eed1f44df4a 47 }
hudakz 0:7eed1f44df4a 48 }