Code for our FYDP -only one IMU works right now -RTOS is working

Dependencies:   mbed

Committer:
majik
Date:
Wed Mar 18 22:23:48 2015 +0000
Revision:
0:964eb6a2ef00
This is our FYDP code, but only one IMU works with the RTOS.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
majik 0:964eb6a2ef00 1 #ifndef ACS712_H
majik 0:964eb6a2ef00 2 #define ACS712_H
majik 0:964eb6a2ef00 3
majik 0:964eb6a2ef00 4 /****
majik 0:964eb6a2ef00 5 This class calculates the current drawn by the robot. It requires that EVERYTHING else is turned off when
majik 0:964eb6a2ef00 6 calibration is in progress.
majik 0:964eb6a2ef00 7 Requirement: Turn off mouse sensors somehow.
majik 0:964eb6a2ef00 8 */
majik 0:964eb6a2ef00 9
majik 0:964eb6a2ef00 10 #include "mbed.h"
majik 0:964eb6a2ef00 11 //#include "robot.h"
majik 0:964eb6a2ef00 12
majik 0:964eb6a2ef00 13 #define HIGH_CURRENT 130 //increase of current when switch is turned on [mA]
majik 0:964eb6a2ef00 14 #define LOW_CURRENT 36 //current draw when everything is turned off [mA]
majik 0:964eb6a2ef00 15 #define SWITCH_PIN PTB18//HIGH_CURRENT_SWITCH
majik 0:964eb6a2ef00 16 #define SENSOR_PIN PTC2//CURRENTSENSOR_PIN
majik 0:964eb6a2ef00 17
majik 0:964eb6a2ef00 18 #define CALIBRATION_SAMPLES 50 //the number of samples taken for the calibration
majik 0:964eb6a2ef00 19
majik 0:964eb6a2ef00 20 class ACS712
majik 0:964eb6a2ef00 21 {
majik 0:964eb6a2ef00 22 private:
majik 0:964eb6a2ef00 23
majik 0:964eb6a2ef00 24 AnalogIn sensor; //reads the value from current sensor
majik 0:964eb6a2ef00 25 DigitalOut currentSwitch; //turn this on to send current through a resistor
majik 0:964eb6a2ef00 26
majik 0:964eb6a2ef00 27 float b; //offset
majik 0:964eb6a2ef00 28 float m; //slope
majik 0:964eb6a2ef00 29 float current; //[mA]
majik 0:964eb6a2ef00 30 float sensor_val; //[% of 3.3V]
majik 0:964eb6a2ef00 31
majik 0:964eb6a2ef00 32 public:
majik 0:964eb6a2ef00 33
majik 0:964eb6a2ef00 34 ACS712();
majik 0:964eb6a2ef00 35 void calibrate(); //calculates m and b
majik 0:964eb6a2ef00 36 float get_current(); //returns the current [mA]
majik 0:964eb6a2ef00 37 float read_sensor(); //reads sensor [% of 3.3V]
majik 0:964eb6a2ef00 38 float read_sensor(int n, int t); //reads sensor <n> times and returns the average
majik 0:964eb6a2ef00 39 };
majik 0:964eb6a2ef00 40
majik 0:964eb6a2ef00 41
majik 0:964eb6a2ef00 42
majik 0:964eb6a2ef00 43 #endif