roverSTM  UM2 2013
Projet M1 Navarro Benjamin
 All Classes Files Functions Groups Pages
UltrasonicSensor.h
1 /*
2  * UltrasonicSensor.h
3  *
4  * Created on: 9 fŽvr. 2013
5  * Author: Benjamin Navarro
6  */
7 
8 #ifndef ULTRASONICSENSOR_H_
9 #define ULTRASONICSENSOR_H_
10 
11 #include <stm32f4xx.h>
12 #include <I2CDevice.h>
13 
14 enum rangingMode {
15  centimeters,
16  inches,
17  microseconds
18 };
19 
20 class UltrasonicSensor : public I2CDevice {
21 public:
22 
23  UltrasonicSensor(I2C_TypeDef* I2C_Port, uint8_t address = 0xE0, uint32_t speed = 400000) : I2CDevice(I2C_Port, address, speed) {};
24 
25  void ranging(rangingMode mode);
26  void FakeRanging(rangingMode mode);
27  void sendBurst();
28 
29  uint16_t readResult();
30 
31 private:
32  enum commands {
33  cmdInches = 0x50,
34  cmdCentimeters = 0x51,
35  cmdUS = 0x52,
36  fakeCmdInches = 0x56,
37  fakeCmdCentimeters = 0x57,
38  fakeCmdUS = 0x58,
39  cmdBurst = 0x5C
40  };
41 
42  enum registers {
43  cmdRegister = 0,
44  rangingHighRegister = 2,
45  rangingLowRegister = 3,
46  minimumHighRegister = 4,
47  minimumLowRegister = 5,
48 
49  };
50 
51 };
52 
53 #endif /* ULTRASONICSENSOR_H_ */