stock mbed AnalogReads current loop closed and working
Fork of priustroller_2 by
currentsensors.cpp@6:99ee0ce47fb2, 2015-03-04 (annotated)
- Committer:
- nki
- Date:
- Wed Mar 04 15:33:32 2015 +0000
- Revision:
- 6:99ee0ce47fb2
- Parent:
- 1:1f58bdcf2956
- Child:
- 7:76d6ceb23e0d
3/4;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bwang | 0:54cf32d35f4d | 1 | #include "includes.h" |
bwang | 1:1f58bdcf2956 | 2 | #include "sensors.h" |
bwang | 0:54cf32d35f4d | 3 | |
bwang | 0:54cf32d35f4d | 4 | AnalogCurrentSensor::AnalogCurrentSensor(PinName pin, float volts_per_amp) { |
bwang | 0:54cf32d35f4d | 5 | _in = new AnalogIn(pin); |
bwang | 0:54cf32d35f4d | 6 | _volts_per_amp = volts_per_amp; |
bwang | 0:54cf32d35f4d | 7 | Zero(); |
bwang | 0:54cf32d35f4d | 8 | } |
bwang | 0:54cf32d35f4d | 9 | |
bwang | 0:54cf32d35f4d | 10 | void AnalogCurrentSensor::Zero() { |
nki | 6:99ee0ce47fb2 | 11 | float mean = 0; |
nki | 6:99ee0ce47fb2 | 12 | for(int i = 1; i<=1000; i++){ |
nki | 6:99ee0ce47fb2 | 13 | mean = 0.1f*((float) *_in) + 0.9f*mean; |
nki | 6:99ee0ce47fb2 | 14 | } |
nki | 6:99ee0ce47fb2 | 15 | _zero_level = mean; |
bwang | 0:54cf32d35f4d | 16 | } |
bwang | 0:54cf32d35f4d | 17 | |
bwang | 0:54cf32d35f4d | 18 | float AnalogCurrentSensor::GetCurrent() { |
bwang | 0:54cf32d35f4d | 19 | return ((float) *_in - _zero_level) * 3.3f / _volts_per_amp; |
bwang | 0:54cf32d35f4d | 20 | } |