Tarea1

Dependencies:   Debounced TextLCD1 mbed

main.cpp

Committer:
lcorralesc1
Date:
2013-10-20
Revision:
0:964cee3e89ee

File content as of revision 0:964cee3e89ee:

#include "mbed.h"
#include "DebouncedIn.h"
#include "TextLCD.h"

AnalogIn Vin(PTC2);
TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7

DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalIn button1(PTC12);
DigitalIn button2(PTC13);
DigitalIn button3(PTC16);
//DigitalIn button4(PTC17);

//DebouncedIn button1(PTC12);
//DebouncedIn button2(PTC13);
//DebouncedIn button3(PTC16);
//DebouncedIn button4(PTC17);

      //codigos movimiento del curzor
      //18 para izquierda
      //1A para derecha

int C1=0x0E; // solo muestra el curzor
int C2=0x18; // desplaza izquierda
int C3=0x1A; // desplaza derecha
int C4=0x0C; // quito cursor bajo

int contador1, contador2, contador3, contador4; // variable con la que controlo disminucion de conteo
int j=0; //variable controla cambio 4 posiciones
int kp, ki, kd, sp, i; 

int main() {
    lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
    lcd.cls();
    lcd.locate(0,0);
    lcd.printf("Sp%d",sp);//primero print y luego locate
    lcd.locate(8,0);
    lcd.printf("Kp%d",kp);
    lcd.locate(0,1);
    lcd.printf("Ki%d",ki);
    lcd.locate(8,1);
    lcd.printf("Kd%d",kd);

while(1) {

   if(!button3){
     j=j+1;
    
     lcd.locate(2,0);
     lcd.writeCommand(C1);
       if(button3){
       break;
                  }
               }      

                                                                
           while (j==0){
              
               wait(0.3);
               
                  if (!button1) {                                //primer if button1 j=0
                    wait(0.3); 
                    while(sp<5){
                    sp=sp+1;
                    lcd.locate(0,0);
                    lcd.printf("Sp%d ",sp);
                    wait(0.3);
                    
                      if(button1){
                      break;
                                 }       
                                }                      
                    wait(0.3);   
                    
                       if(!button1){                             //segundo if button1 j=0
                          wait(0.3);
                          while(sp<50){
                          sp=sp+5;
                          lcd.locate(0,0);
                          lcd.printf("Sp%d ",sp);
                          wait(0.3);
                            if(button1){
                            break;
                                       }   
                                      }
                          wait(0.3);
                             
                             if(!button1){                       //tercer if button1 j=0
                                wait(0.3);
                                while(sp<100){
                                sp=sp+10;
                                lcd.locate(0,0);
                                lcd.printf("Sp%d ",sp);
                                wait(0.3);
                                  if(button1){
                                  break;
                                             }
                                             }           
                                wait(0.3);
                                
                                  if(!button1){                  //cuarto if button1 j=0
                                    wait(0.3);
                                    while(sp<1000){
                                    sp=sp+100;
                                    lcd.locate(0,0);
                                    lcd.printf("Sp%d ",sp);
                                    wait(0.3);
                                      if(button1){
                                      break;
                                                 } 
                                                 }
                                    wait(0.3);
                                    
                                      if(!button1){              //quinto if button1 j=0
                                        wait(0.3);
                                        while(sp<10000){
                                        sp=sp+1000;
                                        lcd.locate(0,0);
                                        lcd.printf("Sp%d ",sp);
                                        wait(0.3);
                                          if(button1){
                                          break;
                                                      }
                                                      }
                                                      
                                                      
                                                      
                                                     
                                                  }        //cierro quinto if button1 j=0        
                                                 
                                                 
                                                 
                                              }           //cierro cuarto if button1 j=0
                                               
                                             
                                         }                //cierro tercer if button1 j=0
                       
                                   }                      //cierro segundo if button1 j=0
                  
                   
                   
               
                               }                          //cierro primer if button1 j=0
                               
             
                               
                        
                    if(!button2){
                         wait(0.2);
                         
                         while(contador1<10 & sp>0){
                         contador1=contador1+1;
                           sp=sp-1;
                             if(sp<0){
                             sp=0;
                                     }
                           lcd.locate(0,0);
                           lcd.printf("Sp%d ",sp);
                           //lcd.locate(12,0);
                           //lcd.printf("C%d",contador1);
                           wait(0.3);  
                           
                             if(button2){
                               break;
                                        }     
                                               }
                           wait(0.3);
                             
                             if(!button2){
                               wait(0.2);
                               while(contador1>=10 & contador1<19){
                                 contador1=contador1+1;
                                 sp=sp-10;
                                   if(sp<0){
                                   sp=0;
                                           }
                                 lcd.locate(0,0);
                                 lcd.printf("Sp%d ",sp);
                                 //lcd.locate(12,0);
                                 //lcd.printf("C%d",contador1);
                                 wait(0.3);
                                 
                                   if(button2){
                                     break;
                                              }
                                                   }
                                 wait(0.3);
                                 
                                   if(!button2){
                                     wait(0.2);
                                     while(contador1>=19){
                                       contador1=contador1+1;
                                       sp=sp-100;
                                         if(sp<0){
                                         sp=0;
                                                 }
                                       lcd.locate(0,0);
                                       lcd.printf("Sp%d ",sp);
                                       //lcd.locate(12,0);
                                       //lcd.printf("C%d",contador1);
                                       wait(0.3);
                                         
                                         if(button2){
                                         break;
                                                    }          
                                                          }
                                                          
                                               }          //cierro tercer if button2 j=0        
                                                   
                               
                               
                                         }                //cierro segundo if button2 j=0           
                                               
                                               
                                }                         //cierro primer if button2 j=0  
                                
  if(!button3){
    j=j+1;
     
    lcd.locate(10,0);
    lcd.writeCommand(C1);
    if(button3){
       break;
               }
              }                                           
                               
                        }                                 //cierro while con j=0
                        
                         
//%------------------------------------------------------------------------------------------                     

                        
                        
                        
while (j==1){
              
               wait(0.3);
               
                  if (!button1) {                                //primer if button1 j=1 
                    wait(0.2); 
                    while(kp<5){
                    kp=kp+1;
                    lcd.locate(8,0);
                    lcd.printf("Kp%d ",kp);
                    wait(0.4);
                      if(button1){
                      break;
                                 }
                                }                      
                    wait(0.4);   
                    
                       if(!button1){                             //segundo if button1 j=1 
                          wait(0.3);
                          while(kp<50){
                          kp=kp+5;
                          lcd.locate(8,0);
                          lcd.printf("Kp%d ",kp);
                          wait(0.4);
                            if(button1){
                            break;
                                       }   
                                      }
                          wait(0.4);
                             
                             if(!button1){                       //tercer if button1 j=1 
                                wait(0.3);
                                while(kp<100){
                                kp=kp+10;
                                lcd.locate(8,0);
                                lcd.printf("Kp%d ",kp);
                                wait(0.4);
                                  if(button1){
                                  break;
                                             }
                                             }           
                                wait(0.4);
                                
                                  if(!button1){                  //cuarto if button1 j=1 
                                    wait(0.3);
                                    while(kp<1000){
                                    kp=kp+100;
                                    lcd.locate(8,0);
                                    lcd.printf("Kp%d ",kp);
                                    wait(0.4);
                                      if(button1){
                                      break;
                                                 } 
                                                 }
                                    wait(0.4);
                                    
                                      if(!button1){              //quinto if button1 j=1 
                                        wait(0.3);
                                        while(kp<10000){
                                        kp=kp+1000;
                                        lcd.locate(8,0);
                                        lcd.printf("Kp%d ",kp);
                                        wait(0.4);
                                          if(button1){
                                          break;
                                                      }
                                                      }
                                                      
                                                      
                                                      
                                                     
                                                  }        //cierro quinto if button1 j=1        
                                                 
                                                 
                                                 
                                              }           //cierro cuarto if button1 j=1
                                               
                                             
                                         }                //cierro tercer if button1 j=1
                       
                                   }                      //cierro segundo if button1 j=1
                  
                   
                   
               
                               }                          //cierro primer if button1 j=1
                               
                               
                               
                               
                    if(!button2){
                         wait(0.2);
                         
                         while(contador2<10 & kp>0){
                         contador2=contador2+1;
                           kp=kp-1;
                             if(kp<0){
                             kp=0;
                                     }
                           lcd.locate(8,0);
                           lcd.printf("Kp%d ",kp);
                           //lcd.locate(12,1);
                           //lcd.printf("C%d",contador2);
                           wait(0.3);  
                           
                             if(button2){
                               break;
                                        }     
                                               }
                           wait(0.3);
                             
                             if(!button2){
                               wait(0.2);
                               while(contador2>=10 & contador2<19){
                                 contador2=contador2+1;
                                 kp=kp-10;
                                   if(kp<0){
                                   kp=0;
                                           }
                                 lcd.locate(8,0);
                                 lcd.printf("Kp%d ",kp);
                                 //lcd.locate(12,1);
                                 //lcd.printf("C%d",contador2);
                                 wait(0.3);
                                 
                                   if(button2){
                                     break;
                                              }
                                                   }
                                 wait(0.3);
                                 
                                   if(!button2){
                                     wait(0.2);
                                     while(contador2>=19){
                                       contador2=contador2+1;
                                       kp=kp-100;
                                         if(kp<0){
                                         kp=0;
                                                 }
                                       lcd.locate(8,0);
                                       lcd.printf("Kp%d ",kp);
                                       //lcd.locate(12,1);
                                       //lcd.printf("C%d",contador2);
                                       wait(0.3);
                                         
                                         if(button2){
                                         break;
                                                    }          
                                                          }
                                                          
                                               }          //cierro tercer if button2 j=1        
                                                   
                               
                               
                                         }                //cierro segundo if button2 j=1           
                                               
                                               
                                }                         //cierro primer if button2 j=1             
                               
   if(!button3){
    j=j+1;
    
    lcd.locate(0,2);
    lcd.writeCommand(C1);
    if(button3){
       break;
               }
              } 
                               
                        }                                 //cierro while con j=1
                        
                        
                        
//%----------------------------------------------------------------------------------------------                        



while (j==2){
              
               wait(0.3);
               
                  if (!button1) {                                //primer if button1 j=2 
                    wait(0.2); 
                    while(ki<5){
                    ki=ki+1;
                    lcd.locate(0,1);
                    lcd.printf("Ki%d ",ki);
                    wait(0.4);
                      if(button1){
                      break;
                                 }
                                }                      
                    wait(0.4);   
                    
                       if(!button1){                             //segundo if button1 j=2 
                          wait(0.3);
                          while(ki<50){
                          ki=ki+5;
                          lcd.locate(0,1);
                          lcd.printf("Ki%d ",ki);
                          wait(0.4);
                            if(button1){
                            break;
                                       }   
                                      }
                          wait(0.4);
                             
                             if(!button1){                       //tercer if button1 j=2 
                                wait(0.3);
                                while(ki<100){
                                ki=ki+10;
                                lcd.locate(0,1);
                                lcd.printf("Ki%d ",ki);
                                wait(0.4);
                                  if(button1){
                                  break;
                                             }
                                             }           
                                wait(0.4);
                                
                                  if(!button1){                  //cuarto if button1 j=2 
                                    wait(0.3);
                                    while(ki<1000){
                                    ki=ki+100;
                                    lcd.locate(0,1);
                                    lcd.printf("Ki%d ",ki);
                                    wait(0.4);
                                      if(button1){
                                      break;
                                                 } 
                                                 }
                                    wait(0.4);
                                    
                                      if(!button1){              //quinto if button1 j=2
                                        wait(0.3);
                                        while(ki<10000){
                                        ki=ki+1000;
                                        lcd.locate(0,1);
                                        lcd.printf("Ki%d ",ki);
                                        wait(0.4);
                                          if(button1){
                                          break;
                                                      }
                                                      }
                                                      
                                                      
                                                      
                                                     
                                                  }        //cierro quinto if button1 j=2        
                                                 
                                                 
                                                 
                                              }           //cierro cuarto if button1 j=2
                                               
                                             
                                         }                //cierro tercer if button1 j=2
                       
                                   }                      //cierro segundo if button1 j=2
                  
                   
                   
               
                               }                          //cierro primer if button1 j=2
                               
                               
                               
                               
                    if(!button2){
                         wait(0.2);
                         
                         while(contador3<10 & ki>0){
                         contador3=contador3+1;
                           ki=ki-1;
                             if(ki<0){
                             ki=0;
                                     }
                           lcd.locate(0,1);
                           lcd.printf("Ki%d ",ki);
                           //lcd.locate(12,1);
                           //lcd.printf("C%d",contador3);
                           wait(0.3);  
                           
                             if(button2){
                               break;
                                        }     
                                               }
                           wait(0.3);
                             
                             if(!button2){
                               wait(0.2);
                               while(contador3>=10 & contador3<19){
                                 contador3=contador3+1;
                                 ki=ki-10;
                                   if(ki<0){
                                   ki=0;
                                           }
                                 lcd.locate(0,1);
                                 lcd.printf("Ki%d ",ki);
                                 //lcd.locate(12,1);
                                 //lcd.printf("C%d",contador3);
                                 wait(0.3);
                                 
                                   if(button2){
                                     break;
                                              }
                                                   }
                                 wait(0.3);
                                 
                                   if(!button2){
                                     wait(0.2);
                                     while(contador3>=19){
                                       contador3=contador3+1;
                                       ki=ki-100;
                                         if(ki<0){
                                         ki=0;
                                                 }
                                       lcd.locate(0,1);
                                       lcd.printf("Ki%d ",ki);
                                       //lcd.locate(12,1);
                                       //lcd.printf("C%d",contador3);
                                       wait(0.3);
                                         
                                         if(button2){
                                         break;
                                                    }          
                                                          }
                                                          
                                               }          //cierro tercer if button2 j=2        
                                                   
                               
                               
                                         }                //cierro segundo if button2 j=2           
                                               
                                               
                                }                         //cierro primer if button2 j=2               
                               
  if(!button3){
    j=j+1;
     
    lcd.locate(10,1);
    lcd.writeCommand(C1);
    if(button3){
       break;
               }
              }                       
                             
                        }                                 //cierro while con j=2

                     
           
//%----------------------------------------------------------------------------------------------                  




while (j==3){
              
               wait(0.3);
               
                  if (!button1) {                                //primer if button1 j=3 
                    wait(0.2); 
                    while(kd<5){
                    kd=kd+1;
                    lcd.locate(8,1);
                    lcd.printf("Kd%d ",kd);
                    wait(0.4);
                      if(button1){
                      break;
                                 }
                                }                      
                    wait(0.4);   
                    
                       if(!button1){                             //segundo if button1 j=3 
                          wait(0.3);
                          while(kd<50){
                          kd=kd+5;
                          lcd.locate(8,1);
                          lcd.printf("Kd%d ",kd);
                          wait(0.4);
                            if(button1){
                            break;
                                       }   
                                      }
                          wait(0.4);
                             
                             if(!button1){                       //tercer if button1 j=3
                                wait(0.3);
                                while(kd<100){
                                kd=kd+10;
                                lcd.locate(8,1);
                                lcd.printf("Kd%d ",kd);
                                wait(0.4);
                                  if(button1){
                                  break;
                                             }
                                             }           
                                wait(0.4);
                                
                                  if(!button1){                  //cuarto if button1 j=2 
                                    wait(0.3);
                                    while(kd<1000){
                                    kd=kd+100;
                                    lcd.locate(8,1);
                                    lcd.printf("Kd%d ",kd);
                                    wait(0.4);
                                      if(button1){
                                      break;
                                                 } 
                                                 }
                                    wait(0.4);
                                    
                                      if(!button1){              //quinto if button1 j=2
                                        wait(0.3);
                                        while(kd<10000){
                                        kd=kd+1000;
                                        lcd.locate(8,1);
                                        lcd.printf("Kd%d ",kd);
                                        wait(0.4);
                                          if(button1){
                                          break;
                                                      }
                                                      }
                                                      
                                                      
                                                      
                                                     
                                                  }        //cierro quinto if button1 j=3        
                                                 
                                                 
                                                 
                                              }           //cierro cuarto if button1 j=3
                                               
                                             
                                         }                //cierro tercer if button1 j=3
                       
                                   }                      //cierro segundo if button1 j=3
                  
                   
               
                               }                          //cierro primer if button1 j=3
                               
                               
                               
                               
                    if(!button2){
                         wait(0.2);
                         
                         while(contador4<10 & kd>0){
                         contador4=contador4+1;
                           kd=kd-1;
                             if(kd<0){
                             kd=0;
                                     }
                           lcd.locate(8,1);
                           lcd.printf("Kd%d ",kd);
                           //lcd.locate(12,0);
                           //lcd.printf("C%d",contador4);
                           wait(0.3);  
                           
                             if(button2){
                               break;
                                        }     
                                               }
                           wait(0.3);
                             
                             if(!button2){
                               wait(0.2);
                               while(contador4>=10 & contador4<19){
                                 contador4=contador4+1;
                                 kd=kd-10;
                                   if(kd<0){
                                   kd=0;
                                           }
                                 lcd.locate(8,1);
                                 lcd.printf("Kd%d ",kd);
                                 //lcd.locate(12,0);
                                 //lcd.printf("C%d",contador4);
                                 wait(0.3);
                                 
                                   if(button2){
                                     break;
                                              }
                                                   }
                                 wait(0.3);
                                 
                                   if(!button2){
                                     wait(0.2);
                                     while(contador4>=19){
                                       contador4=contador4+1;
                                       kd=kd-100;
                                         if(kd<0){
                                         kd=0;
                                                 }
                                       lcd.locate(8,1);
                                       lcd.printf("Kd%d ",kd);
                                       //lcd.locate(12,0);
                                       //lcd.printf("C%d",contador4);
                                       wait(0.3);
                                         
                                         if(button2){
                                         break;
                                                    }          
                                                          }
                                                          
                                               }          //cierro tercer if button2 j=3       
                                                   
                               
                               
                                         }                //cierro segundo if button2 j=3           
                                               
                                               
                                }                         //cierro primer if button2 j=3                
                   
   if(!button3){
    j=j+1;
     
    lcd.locate(0,0);
    lcd.writeCommand(C1);
    if(button3){
       break;
               }
              }                                     
                        }                                 //cierro while con j=3


//%----------------------------------------------------------------------------------------------
 while(j==4){
    j=-1;
         } 
                  
          }                                               //cierro while(1)
         
            }                                             //cierro main