Javier Negrette
/
tarea_miercoles
egrfgfrgg
main.cpp@0:5d3dea91c85f, 2013-10-16 (annotated)
- Committer:
- javiernegrette
- Date:
- Wed Oct 16 22:56:47 2013 +0000
- Revision:
- 0:5d3dea91c85f
This code can increase, decrease or change of parameter of sp, kp, ki, kd, by push-button. Has reset button too. This code is the first part of a PID controler design
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
javiernegrette | 0:5d3dea91c85f | 1 | #include "mbed.h" |
javiernegrette | 0:5d3dea91c85f | 2 | #include "DebouncedIn.h" |
javiernegrette | 0:5d3dea91c85f | 3 | #include "TextLCD.h" |
javiernegrette | 0:5d3dea91c85f | 4 | |
javiernegrette | 0:5d3dea91c85f | 5 | AnalogIn Vin(PTC2); |
javiernegrette | 0:5d3dea91c85f | 6 | TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7 |
javiernegrette | 0:5d3dea91c85f | 7 | |
javiernegrette | 0:5d3dea91c85f | 8 | DigitalOut led1(LED1); |
javiernegrette | 0:5d3dea91c85f | 9 | DigitalOut led2(LED2); |
javiernegrette | 0:5d3dea91c85f | 10 | DigitalOut led3(LED3); |
javiernegrette | 0:5d3dea91c85f | 11 | DebouncedIn button1(PTC12); |
javiernegrette | 0:5d3dea91c85f | 12 | DebouncedIn button2(PTC13); |
javiernegrette | 0:5d3dea91c85f | 13 | DebouncedIn button3(PTC16); |
javiernegrette | 0:5d3dea91c85f | 14 | DebouncedIn button4(PTC17); |
javiernegrette | 0:5d3dea91c85f | 15 | |
javiernegrette | 0:5d3dea91c85f | 16 | //codigos movimiento del curzor |
javiernegrette | 0:5d3dea91c85f | 17 | //18 para izquierda |
javiernegrette | 0:5d3dea91c85f | 18 | //1A para derecha |
javiernegrette | 0:5d3dea91c85f | 19 | |
javiernegrette | 0:5d3dea91c85f | 20 | int C1=0x0E; // solo muestra el curzor |
javiernegrette | 0:5d3dea91c85f | 21 | int C2=0x18; // desplaza izquierda |
javiernegrette | 0:5d3dea91c85f | 22 | int C3=0x1A; // desplaza derecha |
javiernegrette | 0:5d3dea91c85f | 23 | int C4=0x0C; // quito cursor bajo |
javiernegrette | 0:5d3dea91c85f | 24 | |
javiernegrette | 0:5d3dea91c85f | 25 | int i; // indice de la variable |
javiernegrette | 0:5d3dea91c85f | 26 | int j; //variable controla cambio 4 posiciones |
javiernegrette | 0:5d3dea91c85f | 27 | int kp, ki, kd, sp; |
javiernegrette | 0:5d3dea91c85f | 28 | |
javiernegrette | 0:5d3dea91c85f | 29 | int main() { |
javiernegrette | 0:5d3dea91c85f | 30 | lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD |
javiernegrette | 0:5d3dea91c85f | 31 | lcd.cls(); |
javiernegrette | 0:5d3dea91c85f | 32 | lcd.locate(0,0); |
javiernegrette | 0:5d3dea91c85f | 33 | lcd.printf("Sp%d",sp);//primero print y luego locate?? o al contrario?? |
javiernegrette | 0:5d3dea91c85f | 34 | lcd.locate(8,0); |
javiernegrette | 0:5d3dea91c85f | 35 | lcd.printf("Kp%d",kp); |
javiernegrette | 0:5d3dea91c85f | 36 | lcd.locate(0,1); |
javiernegrette | 0:5d3dea91c85f | 37 | lcd.printf("Ki%d",ki); |
javiernegrette | 0:5d3dea91c85f | 38 | lcd.locate(8,1); |
javiernegrette | 0:5d3dea91c85f | 39 | lcd.printf("Kd%d",kd); |
javiernegrette | 0:5d3dea91c85f | 40 | |
javiernegrette | 0:5d3dea91c85f | 41 | |
javiernegrette | 0:5d3dea91c85f | 42 | while(1) { |
javiernegrette | 0:5d3dea91c85f | 43 | led3 =1; |
javiernegrette | 0:5d3dea91c85f | 44 | if (button3.falling()) { |
javiernegrette | 0:5d3dea91c85f | 45 | led3 =!led3; |
javiernegrette | 0:5d3dea91c85f | 46 | ++j; |
javiernegrette | 0:5d3dea91c85f | 47 | } //INCREMENTA POSICION DEL MENU CON BOTON 3 |
javiernegrette | 0:5d3dea91c85f | 48 | if (j==0){ |
javiernegrette | 0:5d3dea91c85f | 49 | lcd.locate(2,0); |
javiernegrette | 0:5d3dea91c85f | 50 | lcd.printf("%d",sp); |
javiernegrette | 0:5d3dea91c85f | 51 | wait(0.5); |
javiernegrette | 0:5d3dea91c85f | 52 | led1 =1; |
javiernegrette | 0:5d3dea91c85f | 53 | if (button1.falling()) { |
javiernegrette | 0:5d3dea91c85f | 54 | led1 =!led1; |
javiernegrette | 0:5d3dea91c85f | 55 | ++sp; // ademas revisa boton 1 para incrementar |
javiernegrette | 0:5d3dea91c85f | 56 | } |
javiernegrette | 0:5d3dea91c85f | 57 | led2 =1; |
javiernegrette | 0:5d3dea91c85f | 58 | if (button2.falling()) { |
javiernegrette | 0:5d3dea91c85f | 59 | led2 =!led2; |
javiernegrette | 0:5d3dea91c85f | 60 | --sp; // ademas revisa boton 2 para decrementar |
javiernegrette | 0:5d3dea91c85f | 61 | } |
javiernegrette | 0:5d3dea91c85f | 62 | if (sp>9999){ |
javiernegrette | 0:5d3dea91c85f | 63 | sp=9999; |
javiernegrette | 0:5d3dea91c85f | 64 | } |
javiernegrette | 0:5d3dea91c85f | 65 | |
javiernegrette | 0:5d3dea91c85f | 66 | if (sp<0){ |
javiernegrette | 0:5d3dea91c85f | 67 | sp=0; |
javiernegrette | 0:5d3dea91c85f | 68 | } |
javiernegrette | 0:5d3dea91c85f | 69 | if (button4.falling()){ |
javiernegrette | 0:5d3dea91c85f | 70 | sp=0; |
javiernegrette | 0:5d3dea91c85f | 71 | kp=0; |
javiernegrette | 0:5d3dea91c85f | 72 | ki=0; |
javiernegrette | 0:5d3dea91c85f | 73 | kd=0; |
javiernegrette | 0:5d3dea91c85f | 74 | } |
javiernegrette | 0:5d3dea91c85f | 75 | } |
javiernegrette | 0:5d3dea91c85f | 76 | if (j==1) { |
javiernegrette | 0:5d3dea91c85f | 77 | lcd.locate(10,0); |
javiernegrette | 0:5d3dea91c85f | 78 | lcd.printf("%d",kp); |
javiernegrette | 0:5d3dea91c85f | 79 | wait(0.5); |
javiernegrette | 0:5d3dea91c85f | 80 | led1 =1; |
javiernegrette | 0:5d3dea91c85f | 81 | if (button1.falling()) { |
javiernegrette | 0:5d3dea91c85f | 82 | led1 =!led1; |
javiernegrette | 0:5d3dea91c85f | 83 | ++kp; |
javiernegrette | 0:5d3dea91c85f | 84 | } |
javiernegrette | 0:5d3dea91c85f | 85 | led2 =1; |
javiernegrette | 0:5d3dea91c85f | 86 | if (button2.falling()) { |
javiernegrette | 0:5d3dea91c85f | 87 | led2 =!led2; |
javiernegrette | 0:5d3dea91c85f | 88 | --kp; |
javiernegrette | 0:5d3dea91c85f | 89 | } |
javiernegrette | 0:5d3dea91c85f | 90 | if (kp>9999){ |
javiernegrette | 0:5d3dea91c85f | 91 | kp=9999; |
javiernegrette | 0:5d3dea91c85f | 92 | lcd.locate(10,0); |
javiernegrette | 0:5d3dea91c85f | 93 | lcd.printf("%d",kp); |
javiernegrette | 0:5d3dea91c85f | 94 | } |
javiernegrette | 0:5d3dea91c85f | 95 | |
javiernegrette | 0:5d3dea91c85f | 96 | if (kp<0){ |
javiernegrette | 0:5d3dea91c85f | 97 | kp=0; |
javiernegrette | 0:5d3dea91c85f | 98 | lcd.locate(10,0); |
javiernegrette | 0:5d3dea91c85f | 99 | lcd.printf("%d",kp); |
javiernegrette | 0:5d3dea91c85f | 100 | } |
javiernegrette | 0:5d3dea91c85f | 101 | if (button4.falling()){ |
javiernegrette | 0:5d3dea91c85f | 102 | sp=0; |
javiernegrette | 0:5d3dea91c85f | 103 | kp=0; |
javiernegrette | 0:5d3dea91c85f | 104 | ki=0; |
javiernegrette | 0:5d3dea91c85f | 105 | kd=0; |
javiernegrette | 0:5d3dea91c85f | 106 | lcd.locate(10,1); |
javiernegrette | 0:5d3dea91c85f | 107 | lcd.printf("%d",kd); |
javiernegrette | 0:5d3dea91c85f | 108 | lcd.locate(2,1); |
javiernegrette | 0:5d3dea91c85f | 109 | lcd.printf("%d",ki); |
javiernegrette | 0:5d3dea91c85f | 110 | lcd.locate(10,0); |
javiernegrette | 0:5d3dea91c85f | 111 | lcd.printf("%d",kp); |
javiernegrette | 0:5d3dea91c85f | 112 | lcd.locate(2,0); |
javiernegrette | 0:5d3dea91c85f | 113 | lcd.printf("%d",sp); |
javiernegrette | 0:5d3dea91c85f | 114 | } |
javiernegrette | 0:5d3dea91c85f | 115 | } |
javiernegrette | 0:5d3dea91c85f | 116 | if (j==2) { |
javiernegrette | 0:5d3dea91c85f | 117 | lcd.locate(2,1); |
javiernegrette | 0:5d3dea91c85f | 118 | lcd.printf("%d",ki); |
javiernegrette | 0:5d3dea91c85f | 119 | wait(0.5); |
javiernegrette | 0:5d3dea91c85f | 120 | led1 =1; |
javiernegrette | 0:5d3dea91c85f | 121 | if (button1.falling()){ |
javiernegrette | 0:5d3dea91c85f | 122 | led1 =!led1; |
javiernegrette | 0:5d3dea91c85f | 123 | ++ki; |
javiernegrette | 0:5d3dea91c85f | 124 | } |
javiernegrette | 0:5d3dea91c85f | 125 | led2 =1; |
javiernegrette | 0:5d3dea91c85f | 126 | if (button2.falling()){ |
javiernegrette | 0:5d3dea91c85f | 127 | led2 =!led2; |
javiernegrette | 0:5d3dea91c85f | 128 | --ki; |
javiernegrette | 0:5d3dea91c85f | 129 | } |
javiernegrette | 0:5d3dea91c85f | 130 | if (ki>9999){ |
javiernegrette | 0:5d3dea91c85f | 131 | ki=9999; |
javiernegrette | 0:5d3dea91c85f | 132 | lcd.locate(2,1); |
javiernegrette | 0:5d3dea91c85f | 133 | lcd.printf("%d",ki); |
javiernegrette | 0:5d3dea91c85f | 134 | } |
javiernegrette | 0:5d3dea91c85f | 135 | |
javiernegrette | 0:5d3dea91c85f | 136 | if (ki<0){ |
javiernegrette | 0:5d3dea91c85f | 137 | ki=0; |
javiernegrette | 0:5d3dea91c85f | 138 | lcd.locate(2,1); |
javiernegrette | 0:5d3dea91c85f | 139 | lcd.printf("%d",ki); |
javiernegrette | 0:5d3dea91c85f | 140 | } |
javiernegrette | 0:5d3dea91c85f | 141 | if (button4.falling()){ |
javiernegrette | 0:5d3dea91c85f | 142 | sp=0; |
javiernegrette | 0:5d3dea91c85f | 143 | kp=0; |
javiernegrette | 0:5d3dea91c85f | 144 | ki=0; |
javiernegrette | 0:5d3dea91c85f | 145 | kd=0; |
javiernegrette | 0:5d3dea91c85f | 146 | lcd.locate(10,1); |
javiernegrette | 0:5d3dea91c85f | 147 | lcd.printf("%d",kd); |
javiernegrette | 0:5d3dea91c85f | 148 | lcd.locate(2,1); |
javiernegrette | 0:5d3dea91c85f | 149 | lcd.printf("%d",ki); |
javiernegrette | 0:5d3dea91c85f | 150 | lcd.locate(10,0); |
javiernegrette | 0:5d3dea91c85f | 151 | lcd.printf("%d",kp); |
javiernegrette | 0:5d3dea91c85f | 152 | lcd.locate(2,0); |
javiernegrette | 0:5d3dea91c85f | 153 | lcd.printf("%d",sp); |
javiernegrette | 0:5d3dea91c85f | 154 | } |
javiernegrette | 0:5d3dea91c85f | 155 | |
javiernegrette | 0:5d3dea91c85f | 156 | } |
javiernegrette | 0:5d3dea91c85f | 157 | if (j==3) { |
javiernegrette | 0:5d3dea91c85f | 158 | lcd.locate(10,1); |
javiernegrette | 0:5d3dea91c85f | 159 | lcd.printf("%d",kd); |
javiernegrette | 0:5d3dea91c85f | 160 | wait(0.5); |
javiernegrette | 0:5d3dea91c85f | 161 | led1 =1; |
javiernegrette | 0:5d3dea91c85f | 162 | if (button1.falling()){ |
javiernegrette | 0:5d3dea91c85f | 163 | led1 =!led1; |
javiernegrette | 0:5d3dea91c85f | 164 | ++kd; |
javiernegrette | 0:5d3dea91c85f | 165 | } |
javiernegrette | 0:5d3dea91c85f | 166 | led2 =1; |
javiernegrette | 0:5d3dea91c85f | 167 | if (button2.falling()){ |
javiernegrette | 0:5d3dea91c85f | 168 | led2 =!led2; |
javiernegrette | 0:5d3dea91c85f | 169 | --kd; |
javiernegrette | 0:5d3dea91c85f | 170 | } |
javiernegrette | 0:5d3dea91c85f | 171 | if (kd>9999){ |
javiernegrette | 0:5d3dea91c85f | 172 | kd=9999; |
javiernegrette | 0:5d3dea91c85f | 173 | lcd.locate(10,1); |
javiernegrette | 0:5d3dea91c85f | 174 | lcd.printf("%d",kd); |
javiernegrette | 0:5d3dea91c85f | 175 | } |
javiernegrette | 0:5d3dea91c85f | 176 | |
javiernegrette | 0:5d3dea91c85f | 177 | if (kd<0){ |
javiernegrette | 0:5d3dea91c85f | 178 | kd=0; |
javiernegrette | 0:5d3dea91c85f | 179 | lcd.locate(10,1); |
javiernegrette | 0:5d3dea91c85f | 180 | lcd.printf("%d",kd); |
javiernegrette | 0:5d3dea91c85f | 181 | } |
javiernegrette | 0:5d3dea91c85f | 182 | if (button4.falling()){ |
javiernegrette | 0:5d3dea91c85f | 183 | sp=0; |
javiernegrette | 0:5d3dea91c85f | 184 | kp=0; |
javiernegrette | 0:5d3dea91c85f | 185 | ki=0; |
javiernegrette | 0:5d3dea91c85f | 186 | kd=0; |
javiernegrette | 0:5d3dea91c85f | 187 | lcd.locate(10,1); |
javiernegrette | 0:5d3dea91c85f | 188 | lcd.printf("%d",kd); |
javiernegrette | 0:5d3dea91c85f | 189 | lcd.locate(2,1); |
javiernegrette | 0:5d3dea91c85f | 190 | lcd.printf("%d",ki); |
javiernegrette | 0:5d3dea91c85f | 191 | lcd.locate(10,0); |
javiernegrette | 0:5d3dea91c85f | 192 | lcd.printf("%d",kp); |
javiernegrette | 0:5d3dea91c85f | 193 | lcd.locate(2,0); |
javiernegrette | 0:5d3dea91c85f | 194 | lcd.printf("%d",sp); |
javiernegrette | 0:5d3dea91c85f | 195 | } |
javiernegrette | 0:5d3dea91c85f | 196 | |
javiernegrette | 0:5d3dea91c85f | 197 | } |
javiernegrette | 0:5d3dea91c85f | 198 | if (j==4) { |
javiernegrette | 0:5d3dea91c85f | 199 | j=0; |
javiernegrette | 0:5d3dea91c85f | 200 | } |
javiernegrette | 0:5d3dea91c85f | 201 | |
javiernegrette | 0:5d3dea91c85f | 202 | |
javiernegrette | 0:5d3dea91c85f | 203 | |
javiernegrette | 0:5d3dea91c85f | 204 | } |
javiernegrette | 0:5d3dea91c85f | 205 | } |