Segundo ejercicio

Dependencies:   Debounced TextLCDa mbed

Committer:
mandres7
Date:
Wed Dec 04 21:35:20 2013 +0000
Revision:
0:dff84c672b7e
ejercicio2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mandres7 0:dff84c672b7e 1 #include "mbed.h"
mandres7 0:dff84c672b7e 2 #include "TextLCD.h"
mandres7 0:dff84c672b7e 3 #include "DebouncedIn.h"
mandres7 0:dff84c672b7e 4
mandres7 0:dff84c672b7e 5 Timer timer1;
mandres7 0:dff84c672b7e 6 TextLCD lcd(PTC10, PTC11, PTC12, PTC13, PTC16, PTC17); // rs, e, d4-d7TextLCD lcd(PTC10, PTC11, PTC12, PTC13, PTC16, PTC17); // rs, e, d4-d7
mandres7 0:dff84c672b7e 7 DigitalOut myled(LED1);
mandres7 0:dff84c672b7e 8 AnalogOut Aout(PTE30);
mandres7 0:dff84c672b7e 9 AnalogIn Ain(PTC2);
mandres7 0:dff84c672b7e 10 DebouncedIn Arriba(PTE2);
mandres7 0:dff84c672b7e 11 DebouncedIn Abajo(PTE3);
mandres7 0:dff84c672b7e 12 DebouncedIn Ganancia(PTE4);
mandres7 0:dff84c672b7e 13
mandres7 0:dff84c672b7e 14 float i=0.7; // set point
mandres7 0:dff84c672b7e 15 float j=0; // salida planta
mandres7 0:dff84c672b7e 16 float k=0; // entrada planta
mandres7 0:dff84c672b7e 17 float m=3.4; // ganancia
mandres7 0:dff84c672b7e 18 float js=0;
mandres7 0:dff84c672b7e 19 float ji=1;
mandres7 0:dff84c672b7e 20 float re=0;
mandres7 0:dff84c672b7e 21 float jo=0;
mandres7 0:dff84c672b7e 22 float jd=0;
mandres7 0:dff84c672b7e 23 float t=0; //tiempo
mandres7 0:dff84c672b7e 24
mandres7 0:dff84c672b7e 25 int main() {
mandres7 0:dff84c672b7e 26 //float Setpoint=0.6;
mandres7 0:dff84c672b7e 27 while(1) {
mandres7 0:dff84c672b7e 28
mandres7 0:dff84c672b7e 29 if(Arriba.falling()){
mandres7 0:dff84c672b7e 30 i+=0.01;
mandres7 0:dff84c672b7e 31 }
mandres7 0:dff84c672b7e 32
mandres7 0:dff84c672b7e 33 if(Abajo.falling()){
mandres7 0:dff84c672b7e 34 i-=0.01;
mandres7 0:dff84c672b7e 35 }
mandres7 0:dff84c672b7e 36
mandres7 0:dff84c672b7e 37 if(Ganancia.falling()){
mandres7 0:dff84c672b7e 38 m+=0.01;
mandres7 0:dff84c672b7e 39 }
mandres7 0:dff84c672b7e 40
mandres7 0:dff84c672b7e 41 if(i<0.999){
mandres7 0:dff84c672b7e 42
mandres7 0:dff84c672b7e 43 j=Ain;
mandres7 0:dff84c672b7e 44 k=m*(i-j);
mandres7 0:dff84c672b7e 45 Aout=k;
mandres7 0:dff84c672b7e 46 wait(0.1);
mandres7 0:dff84c672b7e 47 jo=j-jo;
mandres7 0:dff84c672b7e 48 lcd.locate(0,0);
mandres7 0:dff84c672b7e 49 lcd.printf("y:%.3f jd:%.2f", j, jd);
mandres7 0:dff84c672b7e 50 lcd.locate(0,1);
mandres7 0:dff84c672b7e 51 lcd.printf("t:%f",t);
mandres7 0:dff84c672b7e 52 lcd.locate(10,1);
mandres7 0:dff84c672b7e 53 lcd.printf("K:%.2f",m);
mandres7 0:dff84c672b7e 54 }
mandres7 0:dff84c672b7e 55
mandres7 0:dff84c672b7e 56 if(j>js){
mandres7 0:dff84c672b7e 57 js=j;
mandres7 0:dff84c672b7e 58 }
mandres7 0:dff84c672b7e 59
mandres7 0:dff84c672b7e 60 if(j<ji){
mandres7 0:dff84c672b7e 61 ji=j;
mandres7 0:dff84c672b7e 62 }
mandres7 0:dff84c672b7e 63 //wait(0.2);
mandres7 0:dff84c672b7e 64 jo=j;
mandres7 0:dff84c672b7e 65 re=js-ji;
mandres7 0:dff84c672b7e 66 jd=ji+(re/2);
mandres7 0:dff84c672b7e 67
mandres7 0:dff84c672b7e 68 if(abs(jd-j)<=0.001){
mandres7 0:dff84c672b7e 69
mandres7 0:dff84c672b7e 70 t=timer1.read();
mandres7 0:dff84c672b7e 71 timer1.stop();
mandres7 0:dff84c672b7e 72 timer1.reset();
mandres7 0:dff84c672b7e 73 timer1.start();
mandres7 0:dff84c672b7e 74
mandres7 0:dff84c672b7e 75 }
mandres7 0:dff84c672b7e 76
mandres7 0:dff84c672b7e 77 }
mandres7 0:dff84c672b7e 78
mandres7 0:dff84c672b7e 79 }