Buggy bois / Mbed 2 deprecated HEATS_1

Dependencies:   mbed

Committer:
mazdo25
Date:
Sun Mar 03 00:54:07 2019 +0000
Revision:
1:813f4b17ae65
Child:
3:01b5e80d842d
Buggy project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mazdo25 1:813f4b17ae65 1 class lineSensor
mazdo25 1:813f4b17ae65 2 {
mazdo25 1:813f4b17ae65 3
mazdo25 1:813f4b17ae65 4 private:
mazdo25 1:813f4b17ae65 5 DigitalOut emitter;
mazdo25 1:813f4b17ae65 6 AnalogIn receiver;
mazdo25 1:813f4b17ae65 7 float static const vREF = 3.3f;
mazdo25 1:813f4b17ae65 8 Timeout sampleTime;
mazdo25 1:813f4b17ae65 9 float lineVoltage;
mazdo25 1:813f4b17ae65 10
mazdo25 1:813f4b17ae65 11 public:
mazdo25 1:813f4b17ae65 12
mazdo25 1:813f4b17ae65 13 lineSensor(PinName E, PinName R):emitter(E), receiver(R)
mazdo25 1:813f4b17ae65 14 {
mazdo25 1:813f4b17ae65 15 sampleTime.detach();
mazdo25 1:813f4b17ae65 16 }
mazdo25 1:813f4b17ae65 17
mazdo25 1:813f4b17ae65 18 //Turn on the emitter i.e emit a light
mazdo25 1:813f4b17ae65 19 void turnOn(void)
mazdo25 1:813f4b17ae65 20 {
mazdo25 1:813f4b17ae65 21 emitter.write(1);
mazdo25 1:813f4b17ae65 22 }
mazdo25 1:813f4b17ae65 23
mazdo25 1:813f4b17ae65 24 //turn off the emitter i.e don't emit a light
mazdo25 1:813f4b17ae65 25 void turnOff(void)
mazdo25 1:813f4b17ae65 26 {
mazdo25 1:813f4b17ae65 27 emitter.write(0);
mazdo25 1:813f4b17ae65 28 }
mazdo25 1:813f4b17ae65 29
mazdo25 1:813f4b17ae65 30 //toggle the emitter i.e if its on turn it off, if its off turn it on
mazdo25 1:813f4b17ae65 31 void toggleEmitter(void)
mazdo25 1:813f4b17ae65 32 {
mazdo25 1:813f4b17ae65 33 emitter.write(!emitter.read());
mazdo25 1:813f4b17ae65 34 }
mazdo25 1:813f4b17ae65 35
mazdo25 1:813f4b17ae65 36 //return an int representing the state of the emitter i.e is it on or off where 1 represents on and 0 represents off
mazdo25 1:813f4b17ae65 37 int returnEmitterState(void)
mazdo25 1:813f4b17ae65 38 {
mazdo25 1:813f4b17ae65 39 return emitter.read();
mazdo25 1:813f4b17ae65 40 }
mazdo25 1:813f4b17ae65 41
mazdo25 1:813f4b17ae65 42 void calcLineVoltage(void)
mazdo25 1:813f4b17ae65 43 {
mazdo25 1:813f4b17ae65 44 lineVoltage = receiver.read() * vREF;
mazdo25 1:813f4b17ae65 45 turnOff();
mazdo25 1:813f4b17ae65 46 }
mazdo25 1:813f4b17ae65 47
mazdo25 1:813f4b17ae65 48 float returnLineVoltage(void)
mazdo25 1:813f4b17ae65 49 {
mazdo25 1:813f4b17ae65 50 return lineVoltage;
mazdo25 1:813f4b17ae65 51 }
mazdo25 1:813f4b17ae65 52
mazdo25 1:813f4b17ae65 53 void takeReading()
mazdo25 1:813f4b17ae65 54 {
mazdo25 1:813f4b17ae65 55 turnOn();
mazdo25 1:813f4b17ae65 56 sampleTime.attach(callback(this, &lineSensor::calcLineVoltage),0.09); //time till turn off
mazdo25 1:813f4b17ae65 57 }
mazdo25 1:813f4b17ae65 58
mazdo25 1:813f4b17ae65 59 };