stock mbed AnalogReads current loop closed and working

Dependencies:   mbed

Fork of priustroller_2 by N K

Committer:
bwang
Date:
Sun Jan 31 06:44:58 2016 +0000
Revision:
56:85a26f839af2
Parent:
33:e7b132029bae
latest rev

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nki 33:e7b132029bae 1 #include "includes.h"
nki 33:e7b132029bae 2 #include "sensors.h"
nki 33:e7b132029bae 3
nki 33:e7b132029bae 4 AnalogCurrentSensor::AnalogCurrentSensor(PinName pin, float volts_per_amp) {
nki 33:e7b132029bae 5 _in = new AnalogIn(pin);
nki 33:e7b132029bae 6 _volts_per_amp = volts_per_amp;
nki 33:e7b132029bae 7 wait_us(100000);
nki 33:e7b132029bae 8 Zero();
nki 33:e7b132029bae 9 }
nki 33:e7b132029bae 10
nki 33:e7b132029bae 11 void AnalogCurrentSensor::Zero() {
nki 33:e7b132029bae 12 float mean = 0;
nki 33:e7b132029bae 13 for(int i = 0; i < 1000; i++){
nki 33:e7b132029bae 14 mean += (float) *_in;
nki 33:e7b132029bae 15 }
nki 33:e7b132029bae 16 _zero_level = mean / 1000;
nki 33:e7b132029bae 17 }
nki 33:e7b132029bae 18
nki 33:e7b132029bae 19 float AnalogCurrentSensor::GetCurrent() {
nki 33:e7b132029bae 20 return ((float) *_in - _zero_level) * 3.3f / _volts_per_amp;
nki 33:e7b132029bae 21 }