111

Dependencies:   BufferedSerial FastPWM mbed

Committer:
sbh9428
Date:
Tue Apr 12 06:52:10 2016 +0000
Revision:
0:f3108add3d98
11

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sbh9428 0:f3108add3d98 1 /*
sbh9428 0:f3108add3d98 2 * controlt.cpp
sbh9428 0:f3108add3d98 3 *
sbh9428 0:f3108add3d98 4 * Created on: 2016. 2. 19.
sbh9428 0:f3108add3d98 5 * Author: sbh9428
sbh9428 0:f3108add3d98 6 */
sbh9428 0:f3108add3d98 7
sbh9428 0:f3108add3d98 8 #include "controlt.h"
sbh9428 0:f3108add3d98 9
sbh9428 0:f3108add3d98 10 control_t::control_t() {
sbh9428 0:f3108add3d98 11 // TODO Auto-generated constructor stub
sbh9428 0:f3108add3d98 12
sbh9428 0:f3108add3d98 13 }
sbh9428 0:f3108add3d98 14
sbh9428 0:f3108add3d98 15 control_t::control_t(pump_t *_dry, pump_t *_wet, humSensor_t *humSensor, BufferedSerial *_pc)
sbh9428 0:f3108add3d98 16 {
sbh9428 0:f3108add3d98 17 dry=_dry;
sbh9428 0:f3108add3d98 18 wet=_wet;
sbh9428 0:f3108add3d98 19
sbh9428 0:f3108add3d98 20 pc=_pc;
sbh9428 0:f3108add3d98 21
sbh9428 0:f3108add3d98 22 mode=0;
sbh9428 0:f3108add3d98 23 }
sbh9428 0:f3108add3d98 24
sbh9428 0:f3108add3d98 25 control_t::~control_t() {
sbh9428 0:f3108add3d98 26 // TODO Auto-generated destructor stub
sbh9428 0:f3108add3d98 27 }
sbh9428 0:f3108add3d98 28
sbh9428 0:f3108add3d98 29 void control_t::setP(float _P)
sbh9428 0:f3108add3d98 30 {
sbh9428 0:f3108add3d98 31 P=_P;
sbh9428 0:f3108add3d98 32 }
sbh9428 0:f3108add3d98 33
sbh9428 0:f3108add3d98 34 void control_t::setI(float _I)
sbh9428 0:f3108add3d98 35 {
sbh9428 0:f3108add3d98 36 I=_I;
sbh9428 0:f3108add3d98 37 }
sbh9428 0:f3108add3d98 38
sbh9428 0:f3108add3d98 39 void control_t::setD(float _D)
sbh9428 0:f3108add3d98 40 {
sbh9428 0:f3108add3d98 41 D=_D;
sbh9428 0:f3108add3d98 42 }
sbh9428 0:f3108add3d98 43
sbh9428 0:f3108add3d98 44 void control_t::setMode(int _mode)
sbh9428 0:f3108add3d98 45 {
sbh9428 0:f3108add3d98 46 mode=_mode;
sbh9428 0:f3108add3d98 47 }
sbh9428 0:f3108add3d98 48
sbh9428 0:f3108add3d98 49 void control_t::setPower(float _power)
sbh9428 0:f3108add3d98 50 {
sbh9428 0:f3108add3d98 51 power=_power;
sbh9428 0:f3108add3d98 52 }
sbh9428 0:f3108add3d98 53
sbh9428 0:f3108add3d98 54 void control_t::setRatio(float _ratio)
sbh9428 0:f3108add3d98 55 {
sbh9428 0:f3108add3d98 56 ratio=_ratio;
sbh9428 0:f3108add3d98 57 }
sbh9428 0:f3108add3d98 58
sbh9428 0:f3108add3d98 59 float control_t::getP()
sbh9428 0:f3108add3d98 60 {
sbh9428 0:f3108add3d98 61 return P;
sbh9428 0:f3108add3d98 62 }
sbh9428 0:f3108add3d98 63
sbh9428 0:f3108add3d98 64 float control_t::getI()
sbh9428 0:f3108add3d98 65 {
sbh9428 0:f3108add3d98 66 return I;
sbh9428 0:f3108add3d98 67 }
sbh9428 0:f3108add3d98 68
sbh9428 0:f3108add3d98 69 float control_t::getD()
sbh9428 0:f3108add3d98 70 {
sbh9428 0:f3108add3d98 71 return D;
sbh9428 0:f3108add3d98 72 }
sbh9428 0:f3108add3d98 73
sbh9428 0:f3108add3d98 74 int control_t::getMode()
sbh9428 0:f3108add3d98 75 {
sbh9428 0:f3108add3d98 76 return D;
sbh9428 0:f3108add3d98 77 }
sbh9428 0:f3108add3d98 78
sbh9428 0:f3108add3d98 79 float control_t::getPower()
sbh9428 0:f3108add3d98 80 {
sbh9428 0:f3108add3d98 81 return power;
sbh9428 0:f3108add3d98 82 }
sbh9428 0:f3108add3d98 83 float control_t::getRatio()
sbh9428 0:f3108add3d98 84 {
sbh9428 0:f3108add3d98 85 return ratio;
sbh9428 0:f3108add3d98 86 }
sbh9428 0:f3108add3d98 87
sbh9428 0:f3108add3d98 88 void control_t::refreshPWM()
sbh9428 0:f3108add3d98 89 {
sbh9428 0:f3108add3d98 90 humidity=humSensor->getHumidity();
sbh9428 0:f3108add3d98 91 switch(mode)
sbh9428 0:f3108add3d98 92 {
sbh9428 0:f3108add3d98 93 case 0:
sbh9428 0:f3108add3d98 94 dry->setPWM(0);
sbh9428 0:f3108add3d98 95 wet->setPWM(0);
sbh9428 0:f3108add3d98 96 break;
sbh9428 0:f3108add3d98 97 case 1:
sbh9428 0:f3108add3d98 98 dryValue=power*(1-ratio);
sbh9428 0:f3108add3d98 99 wetValue=power*ratio;
sbh9428 0:f3108add3d98 100 dry->setPWM(dryValue);
sbh9428 0:f3108add3d98 101 wet->setPWM(wetValue);
sbh9428 0:f3108add3d98 102 break;
sbh9428 0:f3108add3d98 103
sbh9428 0:f3108add3d98 104
sbh9428 0:f3108add3d98 105 }
sbh9428 0:f3108add3d98 106 printf("%d %1.3f %1.3f\n", mode, dryValue, wetValue);
sbh9428 0:f3108add3d98 107 }
sbh9428 0:f3108add3d98 108