a

Dependencies:   mbed mbed-rtos

Committer:
alexpirciu
Date:
Thu Mar 28 07:44:42 2019 +0000
Revision:
1:ceee5a608e7c
assa

Who changed what in which revision?

UserRevisionLine numberNew 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