Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: TextLCD mbed Debounced
Revision 1:e3356f2c75c3, committed 2013-11-01
- Comitter:
- fvelasquezv
- Date:
- Fri Nov 01 00:12:45 2013 +0000
- Parent:
- 0:da8c12e25806
- Commit message:
- ninguna
Changed in this revision
| Debounced.lib | Show annotated file Show diff for this revision Revisions of this file |
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Debounced.lib Fri Nov 01 00:12:45 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/WarwickRacing/code/Debounced/#8992c13bbb9b
--- a/main.cpp Wed Oct 23 15:42:55 2013 +0000
+++ b/main.cpp Fri Nov 01 00:12:45 2013 +0000
@@ -1,24 +1,79 @@
#include "mbed.h"
#include "TextLCD.h"
+#include "DebouncedIn.h"
+Timer timer1;
TextLCD lcd(PTC10, PTC11, PTC12, PTC13, PTC16, PTC17); // rs, e, d4-d7TextLCD lcd(PTC10, PTC11, PTC12, PTC13, PTC16, PTC17); // rs, e, d4-d7
DigitalOut myled(LED1);
AnalogOut Aout(PTE30);
AnalogIn Ain(PTC2);
-float i=0;
-float j=0;
+DebouncedIn Arriba(PTE2);
+DebouncedIn Abajo(PTE3);
+DebouncedIn Ganancia(PTE4);
+
+float i=0.7; // set point
+float j=0; // salida planta
+float k=0; // entrada planta
+float m=3.4; // ganancia
+float js=0;
+float ji=1;
+float re=0;
+float jo=0;
+float jd=0;
+float t=0; //tiempo
+
int main() {
-float Setpoint=0.6;
+//float Setpoint=0.6;
while(1) {
- if(i<0.999&&j<=Setpoint){
- i+=0.001;
- Aout=i;
+
+ if(Arriba.falling()){
+ i+=0.01;
+ }
+
+ if(Abajo.falling()){
+ i-=0.01;
+ }
+
+ if(Ganancia.falling()){
+ m+=0.01;
+ }
+
+ if(i<0.999){
+
j=Ain;
- //wait(0);
+ k=m*(i-j);
+ Aout=k;
+ wait(0.1);
+ jo=j-jo;
lcd.locate(0,0);
- lcd.printf("Out:%f", i);
+ lcd.printf("y:%.3f jd:%.2f", j, jd);
lcd.locate(0,1);
- lcd.printf("In:%f", j);
+ lcd.printf("t:%f",t);
+ lcd.locate(10,1);
+ lcd.printf("K:%.2f",m);
+ }
+
+ if(j>js){
+ js=j;
+ }
+
+ if(j<ji){
+ ji=j;
}
+ //wait(0.2);
+ jo=j;
+ re=js-ji;
+ jd=ji+(re/2);
+
+ if(abs(jd-j)<=0.001){
+
+ t=timer1.read();
+ timer1.stop();
+ timer1.reset();
+ timer1.start();
+
+ }
+
}
+
}