Régulateur de type proportionnel

Dependencies:   mbed C12832

Committer:
Bleiz038
Date:
Tue Dec 18 19:16:30 2018 +0000
Revision:
0:cabc061cb9e7
d

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Bleiz038 0:cabc061cb9e7 1 #include "mbed.h"
Bleiz038 0:cabc061cb9e7 2 #include "C12832.h"
Bleiz038 0:cabc061cb9e7 3 C12832 lcd(p5,p7,p6,p8,p11);
Bleiz038 0:cabc061cb9e7 4 AnalogIn Vcapt(p17);
Bleiz038 0:cabc061cb9e7 5 AnalogOut Vcde(p18);
Bleiz038 0:cabc061cb9e7 6 AnalogIn p1(p19);
Bleiz038 0:cabc061cb9e7 7 Ticker cadence;
Bleiz038 0:cabc061cb9e7 8 float E;
Bleiz038 0:cabc061cb9e7 9 int Tc = 35;
Bleiz038 0:cabc061cb9e7 10 float T;
Bleiz038 0:cabc061cb9e7 11 float K=1;
Bleiz038 0:cabc061cb9e7 12 Serial pc(USBTX, USBRX);
Bleiz038 0:cabc061cb9e7 13 char x;
Bleiz038 0:cabc061cb9e7 14
Bleiz038 0:cabc061cb9e7 15 void regulation() {
Bleiz038 0:cabc061cb9e7 16 T=330*Vcapt;
Bleiz038 0:cabc061cb9e7 17 E=Tc-T;
Bleiz038 0:cabc061cb9e7 18 Vcde=K*E;
Bleiz038 0:cabc061cb9e7 19 if(Vcde>1){
Bleiz038 0:cabc061cb9e7 20 Vcde=1;
Bleiz038 0:cabc061cb9e7 21 }
Bleiz038 0:cabc061cb9e7 22 if(Vcde<0){
Bleiz038 0:cabc061cb9e7 23 Vcde=0;
Bleiz038 0:cabc061cb9e7 24 }
Bleiz038 0:cabc061cb9e7 25 }
Bleiz038 0:cabc061cb9e7 26
Bleiz038 0:cabc061cb9e7 27 int main(){
Bleiz038 0:cabc061cb9e7 28 cadence.attach(&regulation,0.001);
Bleiz038 0:cabc061cb9e7 29 while (1){
Bleiz038 0:cabc061cb9e7 30 if (pc.readable()){
Bleiz038 0:cabc061cb9e7 31 x= pc.getc();
Bleiz038 0:cabc061cb9e7 32 if (x=='p'){
Bleiz038 0:cabc061cb9e7 33 Tc++;
Bleiz038 0:cabc061cb9e7 34 }
Bleiz038 0:cabc061cb9e7 35 if (x=='m'){
Bleiz038 0:cabc061cb9e7 36 Tc--;
Bleiz038 0:cabc061cb9e7 37 }
Bleiz038 0:cabc061cb9e7 38 }
Bleiz038 0:cabc061cb9e7 39 K = 0.1;
Bleiz038 0:cabc061cb9e7 40 lcd.cls();
Bleiz038 0:cabc061cb9e7 41 lcd.locate(0,0);
Bleiz038 0:cabc061cb9e7 42 lcd.printf("Temprature : %4.3f",T);
Bleiz038 0:cabc061cb9e7 43 lcd.locate(0,8);
Bleiz038 0:cabc061cb9e7 44 lcd.printf("Tc : %d",Tc);
Bleiz038 0:cabc061cb9e7 45 lcd.locate(0,16);
Bleiz038 0:cabc061cb9e7 46 lcd.printf("K : %4.2f",K);
Bleiz038 0:cabc061cb9e7 47 wait(0.1);
Bleiz038 0:cabc061cb9e7 48 }
Bleiz038 0:cabc061cb9e7 49 }