This is the development sandbox for the DRV425EVM and its magnetic sensing.
Dependencies: mbed
Repository for the 2015 OhmBoyZ Capstone group.
main.cpp@13:51e3bfd1f6c0, 2015-12-08 (annotated)
- Committer:
- Krabby127
- Date:
- Tue Dec 08 02:28:57 2015 +0000
- Revision:
- 13:51e3bfd1f6c0
- Parent:
- 12:b9d71de8733d
- Child:
- 14:9748a17f6bce
Typo (uT to Gauss)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Krabby127 | 0:cbee968c2ec3 | 1 | #include "mbed.h" |
Krabby127 | 0:cbee968c2ec3 | 2 | #include <math.h> |
Krabby127 | 0:cbee968c2ec3 | 3 | |
Krabby127 | 0:cbee968c2ec3 | 4 | AnalogIn analog_value(A0); |
Krabby127 | 0:cbee968c2ec3 | 5 | |
Krabby127 | 0:cbee968c2ec3 | 6 | DigitalOut led(LED1); |
Krabby127 | 0:cbee968c2ec3 | 7 | |
Krabby127 | 0:cbee968c2ec3 | 8 | int main() { |
Krabby127 | 0:cbee968c2ec3 | 9 | float meas; |
Krabby127 | 0:cbee968c2ec3 | 10 | float b; |
Krabby127 | 12:b9d71de8733d | 11 | printf("\n\rAnalogIn example\n\r"); |
Krabby127 | 0:cbee968c2ec3 | 12 | while(1) { |
Krabby127 | 0:cbee968c2ec3 | 13 | meas = analog_value.read(); // Converts and read the analog input value (value from 0.0 to 1.0) |
Krabby127 | 12:b9d71de8733d | 14 | meas = meas * 3.3; // Change the value to be in the 0 to 3.3 range (currently to mV) |
Krabby127 | 12:b9d71de8733d | 15 | printf("meas = %fmV\n\r",meas*1000); // Print out raw measurement in terms of mV |
Krabby127 | 12:b9d71de8733d | 16 | b=(meas-(3.3/2.0))/(4.0*12.2*100.0); // Based on equation 1 from DRV425EVM pdf |
Krabby127 | 12:b9d71de8733d | 17 | //VVOUT [V] = B × G × RSHUNT × GAMP = B [uT] × 12.2 mA/mT × RSHUNT [Ω] × 4 [V/V] |
Krabby127 | 11:791839389530 | 18 | //VVOUT is with reference to REFIN |
Krabby127 | 12:b9d71de8733d | 19 | // 0 Tesla is VDD/2 |
Krabby127 | 3:7285d6ff672b | 20 | // 12.2 mA/mT |
Krabby127 | 12:b9d71de8733d | 21 | printf("b = %fuT\n\r",b); // Print out b field measure in micro-Tesla |
Krabby127 | 13:51e3bfd1f6c0 | 22 | printf("b = %f Gauss\n\r", b/100.0); // Output B field in Gauss |
Krabby127 | 12:b9d71de8733d | 23 | if (meas > 1.65) { // If the value is greater than 1.65V then switch the LED on |
Krabby127 | 12:b9d71de8733d | 24 | // positive magnetic field |
Krabby127 | 0:cbee968c2ec3 | 25 | led = 1; |
Krabby127 | 0:cbee968c2ec3 | 26 | } |
Krabby127 | 0:cbee968c2ec3 | 27 | else { |
Krabby127 | 0:cbee968c2ec3 | 28 | led = 0; |
Krabby127 | 0:cbee968c2ec3 | 29 | } |
davidcerrone | 9:4b887a45ac8c | 30 | wait(1); // wait 1 second |
Krabby127 | 0:cbee968c2ec3 | 31 | } |
Krabby127 | 0:cbee968c2ec3 | 32 | } |