Alex Pirciu
/
BFMC
a
include/SHARP_IR_distance/IR_DistanceSensorDriver/ir_distancesensordriver.hpp@1:ceee5a608e7c, 2019-03-28 (annotated)
- Committer:
- alexpirciu
- Date:
- Thu Mar 28 07:44:42 2019 +0000
- Revision:
- 1:ceee5a608e7c
assa
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
alexpirciu | 1:ceee5a608e7c | 1 | /** |
alexpirciu | 1:ceee5a608e7c | 2 | ****************************************************************************** |
alexpirciu | 1:ceee5a608e7c | 3 | * @file IR_DistanceSensorDriver.hpp |
alexpirciu | 1:ceee5a608e7c | 4 | * @author RBRO/PJ-IU |
alexpirciu | 1:ceee5a608e7c | 5 | * @version V1.0.0 |
alexpirciu | 1:ceee5a608e7c | 6 | * @date 08-January-2018 |
alexpirciu | 1:ceee5a608e7c | 7 | * @brief This file contains the class definition for the SHARP IR sensor read |
alexpirciu | 1:ceee5a608e7c | 8 | * methods (driver). |
alexpirciu | 1:ceee5a608e7c | 9 | ****************************************************************************** |
alexpirciu | 1:ceee5a608e7c | 10 | */ |
alexpirciu | 1:ceee5a608e7c | 11 | |
alexpirciu | 1:ceee5a608e7c | 12 | /* Include guard */ |
alexpirciu | 1:ceee5a608e7c | 13 | #ifndef IR_DISTANCESENSORDRIVER_HPP |
alexpirciu | 1:ceee5a608e7c | 14 | #define IR_DISTANCESENSORDRIVER_HPP |
alexpirciu | 1:ceee5a608e7c | 15 | |
alexpirciu | 1:ceee5a608e7c | 16 | #include <mbed.h> |
alexpirciu | 1:ceee5a608e7c | 17 | #include <math.h> |
alexpirciu | 1:ceee5a608e7c | 18 | |
alexpirciu | 1:ceee5a608e7c | 19 | /* Module defines */ |
alexpirciu | 1:ceee5a608e7c | 20 | #define C_IR_DistanceSensorDriver_A -19057.99103709 |
alexpirciu | 1:ceee5a608e7c | 21 | #define C_IR_DistanceSensorDriver_B 42562.72078701 |
alexpirciu | 1:ceee5a608e7c | 22 | #define C_IR_DistanceSensorDriver_C -37447.6482552 |
alexpirciu | 1:ceee5a608e7c | 23 | #define C_IR_DistanceSensorDriver_D 16482.62217927 |
alexpirciu | 1:ceee5a608e7c | 24 | #define C_IR_DistanceSensorDriver_E -3758.54454044 |
alexpirciu | 1:ceee5a608e7c | 25 | #define C_IR_DistanceSensorDriver_F 395.72452643 |
alexpirciu | 1:ceee5a608e7c | 26 | |
alexpirciu | 1:ceee5a608e7c | 27 | /* //scaling values, variant 1 |
alexpirciu | 1:ceee5a608e7c | 28 | a=733.06912872; |
alexpirciu | 1:ceee5a608e7c | 29 | b=-2221.23062859; |
alexpirciu | 1:ceee5a608e7c | 30 | c=2502.20535578; |
alexpirciu | 1:ceee5a608e7c | 31 | d=-1273.63067295; |
alexpirciu | 1:ceee5a608e7c | 32 | e=269.64209866; |
alexpirciu | 1:ceee5a608e7c | 33 | */ |
alexpirciu | 1:ceee5a608e7c | 34 | |
alexpirciu | 1:ceee5a608e7c | 35 | /* |
alexpirciu | 1:ceee5a608e7c | 36 | //scaling values, variant 2, used for obtaining more accurate values |
alexpirciu | 1:ceee5a608e7c | 37 | a=-6144.18274059; |
alexpirciu | 1:ceee5a608e7c | 38 | b=19775.78355498; |
alexpirciu | 1:ceee5a608e7c | 39 | c=-25056.00451678; |
alexpirciu | 1:ceee5a608e7c | 40 | d=15739.05258272; |
alexpirciu | 1:ceee5a608e7c | 41 | e=-4986.65539646; |
alexpirciu | 1:ceee5a608e7c | 42 | f=673.27540402; |
alexpirciu | 1:ceee5a608e7c | 43 | */ |
alexpirciu | 1:ceee5a608e7c | 44 | /*scaling values, variant 3 (media benzii) |
alexpirciu | 1:ceee5a608e7c | 45 | a=-19057.99103709; |
alexpirciu | 1:ceee5a608e7c | 46 | b=42562.72078701; |
alexpirciu | 1:ceee5a608e7c | 47 | c=-37447.6482552; |
alexpirciu | 1:ceee5a608e7c | 48 | d=16482.62217927; |
alexpirciu | 1:ceee5a608e7c | 49 | e=-3758.54454044; |
alexpirciu | 1:ceee5a608e7c | 50 | f=395.72452643; |
alexpirciu | 1:ceee5a608e7c | 51 | */ |
alexpirciu | 1:ceee5a608e7c | 52 | |
alexpirciu | 1:ceee5a608e7c | 53 | /** |
alexpirciu | 1:ceee5a608e7c | 54 | * @brief It is used for reading SHARP IR distance sensors. |
alexpirciu | 1:ceee5a608e7c | 55 | * |
alexpirciu | 1:ceee5a608e7c | 56 | */ |
alexpirciu | 1:ceee5a608e7c | 57 | class C_IR_DistanceSensorDriver |
alexpirciu | 1:ceee5a608e7c | 58 | { |
alexpirciu | 1:ceee5a608e7c | 59 | public: |
alexpirciu | 1:ceee5a608e7c | 60 | /* Construnctor */ |
alexpirciu | 1:ceee5a608e7c | 61 | C_IR_DistanceSensorDriver(AnalogIn ain_pin, DigitalOut en_pin); |
alexpirciu | 1:ceee5a608e7c | 62 | /* Destrunctor */ |
alexpirciu | 1:ceee5a608e7c | 63 | ~C_IR_DistanceSensorDriver(); |
alexpirciu | 1:ceee5a608e7c | 64 | /* Method for reading distance */ |
alexpirciu | 1:ceee5a608e7c | 65 | float ReadDistance(void); |
alexpirciu | 1:ceee5a608e7c | 66 | /* Method for enabling sensor */ |
alexpirciu | 1:ceee5a608e7c | 67 | void enable(void); |
alexpirciu | 1:ceee5a608e7c | 68 | /* Method for disabling sensor */ |
alexpirciu | 1:ceee5a608e7c | 69 | void disable(void); |
alexpirciu | 1:ceee5a608e7c | 70 | //void setValue(float); |
alexpirciu | 1:ceee5a608e7c | 71 | /* Method for obtaining read value */ |
alexpirciu | 1:ceee5a608e7c | 72 | float getValue(void); |
alexpirciu | 1:ceee5a608e7c | 73 | |
alexpirciu | 1:ceee5a608e7c | 74 | private: |
alexpirciu | 1:ceee5a608e7c | 75 | |
alexpirciu | 1:ceee5a608e7c | 76 | /* the analog pin, giving the proportional voltage value */ |
alexpirciu | 1:ceee5a608e7c | 77 | AnalogIn ain_pin; |
alexpirciu | 1:ceee5a608e7c | 78 | /* enable pin */ |
alexpirciu | 1:ceee5a608e7c | 79 | DigitalOut en_pin; |
alexpirciu | 1:ceee5a608e7c | 80 | /* distance value */ |
alexpirciu | 1:ceee5a608e7c | 81 | float value; |
alexpirciu | 1:ceee5a608e7c | 82 | }; |
alexpirciu | 1:ceee5a608e7c | 83 | |
alexpirciu | 1:ceee5a608e7c | 84 | /* Include guard */ |
alexpirciu | 1:ceee5a608e7c | 85 | #endif |