Segundo ejercicio
Dependencies: Debounced TextLCDa mbed
main.cpp@0:dff84c672b7e, 2013-12-04 (annotated)
- Committer:
- mandres7
- Date:
- Wed Dec 04 21:35:20 2013 +0000
- Revision:
- 0:dff84c672b7e
ejercicio2
Who changed what in which revision?
User | Revision | Line number | New 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 | } |