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.
main.cpp
00001 #include "mbed.h" 00002 #include "TextLCD.h" 00003 00004 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7 00005 int i,Sp=0,Kp,Ki,Kd,j; 00006 DigitalOut l1(LED1); 00007 DigitalOut l2(LED2); 00008 int main() 00009 { 00010 00011 DigitalIn button1(PTC12); 00012 DigitalIn button2(PTC13); 00013 DigitalIn button3(PTC16); 00014 lcd.writeCommand(0x0E); 00015 lcd.printf("Sp= Kp="); 00016 lcd.locate(0,1); 00017 lcd.printf("Ki= Kd="); 00018 lcd.locate(2,0); 00019 lcd.printf("="); 00020 00021 while(1) { 00022 00023 if (!button1) { 00024 switch(i) { 00025 case 0: 00026 wait(0.5); 00027 j++; // <-----ANTIREBOTE AQUI!!! 00028 while(!button1) { 00029 if((j>=1) &&(j<6)) { 00030 j++; 00031 Sp+=1; 00032 } 00033 if((j>=6)&&(j<11)&&(Sp<9999)) { 00034 j++; 00035 Sp+=10; 00036 } 00037 if((j>=11)&&(j<16)&&(Sp<9999)) { 00038 j++; 00039 Sp+=100; 00040 } 00041 if((j>=16)&&(Sp<9999)) { 00042 j++; 00043 Sp+=500; 00044 } 00045 if(Sp>9999) 00046 Sp=9999; 00047 lcd.locate(2,0); 00048 lcd.printf("= "); 00049 lcd.locate(3,0); 00050 lcd.printf("%d",Sp); 00051 wait(1); 00052 } 00053 if(j==1) 00054 ++Sp; 00055 if(Sp>9999) 00056 Sp=9999; 00057 lcd.locate(2,0); 00058 lcd.printf("= "); 00059 lcd.locate(3,0); 00060 lcd.printf("%d",Sp); 00061 break; 00062 case 1: 00063 wait(0.5); 00064 j++; // <-----ANTIREBOTE AQUI!!! 00065 while(!button1) { 00066 if((j>=1) &&(j<6)) { 00067 j++; 00068 Kp+=1; 00069 } 00070 if((j>=6)&&(j<11)&&(Kp<9999)) { 00071 j++; 00072 Kp+=10; 00073 } 00074 if((j>=11)&&(j<16)&&(Kp<9999)) { 00075 j++; 00076 Kp+=100; 00077 } 00078 if((j>=16)&&(Kp<9999)) { 00079 j++; 00080 Kp+=500; 00081 } 00082 if(Kp>9999) 00083 Kp=9999; 00084 lcd.locate(10,0); 00085 lcd.printf("= "); 00086 lcd.locate(11,0); 00087 lcd.printf("%d",Kp); 00088 wait(1); 00089 } 00090 if(j==1) 00091 ++Kp; 00092 if(Kp>9999) 00093 Kp=9999; 00094 lcd.locate(10,0); 00095 lcd.printf("= "); 00096 lcd.locate(11,0); 00097 lcd.printf("%d",Kp); 00098 break; 00099 case 2: 00100 wait(0.5); 00101 j++; // <-----ANTIREBOTE AQUI!!! 00102 while(!button1) { 00103 if((j>=1) &&(j<6)) { 00104 j++; 00105 Ki+=1; 00106 } 00107 if((j>=6)&&(j<11)&&(Ki<9999)) { 00108 j++; 00109 Ki+=10; 00110 } 00111 if((j>=11)&&(j<16)&&(Ki<9999)) { 00112 j++; 00113 Ki+=100; 00114 } 00115 if((j>=16)&&(Ki<9999)) { 00116 j++; 00117 Ki+=500; 00118 } 00119 if(Ki>9999) 00120 Ki=9999; 00121 lcd.locate(2,1); 00122 lcd.printf("= "); 00123 lcd.locate(3,1); 00124 lcd.printf("%d",Ki); 00125 wait(1); 00126 } 00127 if(j==1) 00128 ++Ki; 00129 if(Ki>9999) 00130 Ki=9999; 00131 lcd.locate(2,1); 00132 lcd.printf("= "); 00133 lcd.locate(3,1); 00134 lcd.printf("%d",Ki); 00135 break; 00136 case 3: 00137 wait(0.5); 00138 j++; // <-----ANTIREBOTE AQUI!!! 00139 while(!button1) { 00140 if((j>=1) &&(j<6)) { 00141 j++; 00142 Kd+=1; 00143 } 00144 if((j>=6)&&(j<11)&&(Kd<9999)) { 00145 j++; 00146 Kd+=10; 00147 } 00148 if((j>=11)&&(j<16)&&(Kd<9999)) { 00149 j++; 00150 Kd+=100; 00151 } 00152 if((j>=16)&&(Kd<9999)) { 00153 j++; 00154 Kd+=500; 00155 } 00156 if(Kd>9999) 00157 Kd=9999; 00158 lcd.locate(10,1); 00159 lcd.printf("= "); 00160 lcd.locate(11,1); 00161 lcd.printf("%d",Kd); 00162 wait(1); 00163 } 00164 if(j==1) 00165 ++Kd; 00166 if(Kd>9999) 00167 Kd=9999; 00168 lcd.locate(10,1); 00169 lcd.printf("= "); 00170 lcd.locate(11,1); 00171 lcd.printf("%d",Kd); 00172 break; 00173 } 00174 } 00175 j=0; 00176 if (!button2) { 00177 switch(i) { 00178 case 0: 00179 wait(0.5); 00180 j++; // <-----ANTIREBOTE AQUI!!! 00181 while(!button2) { 00182 if((j>=1) &&(j<6)) { 00183 j++; 00184 Sp-=1; 00185 } 00186 if((j>=6)&&(j<11)&&(Sp>0)) { 00187 j++; 00188 Sp-=10; 00189 } 00190 if((j>=11)&&(j<16)&&(Sp>0)) { 00191 j++; 00192 Sp-=100; 00193 } 00194 if((j>=16)&&(Sp>0)) { 00195 j++; 00196 Sp-=500; 00197 } 00198 if(Sp<0) 00199 Sp=0; 00200 lcd.locate(2,0); 00201 lcd.printf("= "); 00202 lcd.locate(3,0); 00203 lcd.printf("%d",Sp); 00204 wait(1); 00205 } 00206 if(j==1) 00207 --Sp; 00208 if(Sp<0) 00209 Sp=0; 00210 lcd.locate(2,0); 00211 lcd.printf("= "); 00212 lcd.locate(3,0); 00213 lcd.printf("%d",Sp); 00214 break; 00215 case 1: 00216 wait(0.5); 00217 j++; // <-----ANTIREBOTE AQUI!!! 00218 while(!button2) { 00219 if((j>=1) &&(j<6)) { 00220 j++; 00221 Kp-=1; 00222 } 00223 if((j>=6)&&(j<11)&&(Kp>0)) { 00224 j++; 00225 Kp-=10; 00226 } 00227 if((j>=11)&&(j<16)&&(Kp>0)) { 00228 j++; 00229 Kp-=100; 00230 } 00231 if((j>=16)&&(Kp>0)) { 00232 j++; 00233 Kp-=500; 00234 } 00235 if(Kp<0) 00236 Kp=0; 00237 lcd.locate(10,0); 00238 lcd.printf("= "); 00239 lcd.locate(11,0); 00240 lcd.printf("%d",Kp); 00241 wait(1); 00242 } 00243 if(j==1) 00244 --Kp; 00245 if(Kp<0) 00246 Kp=0; 00247 lcd.locate(10,0); 00248 lcd.printf("= "); 00249 lcd.locate(11,0); 00250 lcd.printf("%d",Kp); 00251 break; 00252 case 2: 00253 wait(0.5); 00254 j++; // <-----ANTIREBOTE AQUI!!! 00255 while(!button2) { 00256 if((j>=1) &&(j<6)) { 00257 j++; 00258 Ki-=1; 00259 } 00260 if((j>=6)&&(j<11)&&(Ki>0)) { 00261 j++; 00262 Ki-=10; 00263 } 00264 if((j>=11)&&(j<16)&&(Ki>0)) { 00265 j++; 00266 Ki-=100; 00267 } 00268 if((j>=16)&&(Ki>0)) { 00269 j++; 00270 Ki-=500; 00271 } 00272 if(Ki<0) 00273 Ki=0; 00274 lcd.locate(2,1); 00275 lcd.printf("= "); 00276 lcd.locate(3,1); 00277 lcd.printf("%d",Ki); 00278 wait(1); 00279 } 00280 if(j==1) 00281 --Ki; 00282 if(Ki<0) 00283 Ki=0; 00284 lcd.locate(2,1); 00285 lcd.printf("= "); 00286 lcd.locate(3,1); 00287 lcd.printf("%d",Ki); 00288 break; 00289 case 3: 00290 wait(0.5); 00291 j++; // <-----ANTIREBOTE AQUI!!! 00292 while(!button1) { 00293 if((j>=1) &&(j<6)) { 00294 j++; 00295 Kd-=1; 00296 } 00297 if((j>=6)&&(j<11)&&(Kd>0)) { 00298 j++; 00299 Kd-=10; 00300 } 00301 if((j>=11)&&(j<16)&&(Kd>0)) { 00302 j++; 00303 Kd-=100; 00304 } 00305 if((j>=16)&&(Kd>0)) { 00306 j++; 00307 Kd-=500; 00308 } 00309 if(Kd>0) 00310 Kd=0; 00311 lcd.locate(10,1); 00312 lcd.printf("= "); 00313 lcd.locate(11,1); 00314 lcd.printf("%d",Kd); 00315 wait(1); 00316 } 00317 if(j==1) 00318 ++Kd; 00319 if(Kd>0) 00320 Kd=0; 00321 lcd.locate(10,1); 00322 lcd.printf("= "); 00323 lcd.locate(11,1); 00324 lcd.printf("%d",Kd); 00325 break; 00326 } 00327 } 00328 j=0; 00329 if(!button3) { 00330 wait(0.5); // <-----ANTIREBOTE AQUI!!! 00331 while(!button1); 00332 i++; 00333 if(i>3) 00334 i=0; 00335 switch (i) { 00336 case 0: 00337 lcd.locate(2,0); 00338 lcd.printf("="); 00339 break; 00340 case 1: 00341 lcd.locate(10,0); 00342 lcd.printf("="); 00343 break; 00344 case 2: 00345 lcd.locate(2,1); 00346 lcd.printf("="); 00347 break; 00348 case 3: 00349 lcd.locate(10,1); 00350 lcd.printf("="); 00351 break; 00352 } 00353 } 00354 } 00355 }
Generated on Fri Jul 15 2022 11:07:49 by
1.7.2