Tarea 2. Con cualquier pulso del teclado, se acciona la salid a PWM de un Speaker, dejando fijo el ancho de pulso y la frecuencia.

Dependencies:   FPointer TextLCD keypad mbed

Fork of Tarea3_Teclado by Jesse Beltran

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //Jesse Mauricio Beltran Soto
00002 //Michelle Maceas Henao
00003 
00004 //Manejo Basico del Teclado Matcicial , teclado matricial
00005 
00006 #include "mbed.h"
00007 #include "keypad.h"
00008 #include "TextLCD.h"
00009  
00010 //Definicion de puertos de la LCD
00011 
00012 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
00013 
00014 //Defino Salidas Digitales
00015 DigitalOut myled(LED1);
00016 DigitalOut Sonido(PTB8);
00017 
00018 
00019 
00020 //Defino salida a Pwm
00021 PwmOut Pwm(PTA5);
00022 
00023 //Definicion de Variables
00024  
00025 float pp=0.001;
00026 float Dd=0.1;
00027 char key,keyy;
00028 int C1=0x0F;
00029 //int C1=0x0F;
00030 int sp=0,kp=0,kd=0,ki=0,p=0;
00031 
00032 // Define your own keypad values
00033 char Keytable[] = { '1', '2', '3', 'A',
00034                      '4', '5', '6', 'B',
00035                       '7', '8', '9', 'C',
00036                       '*', '0', '#', 'D'
00037                     };
00038  
00039  
00040 //Funcion de PWM                   
00041 int PWMmodule(float pp,float Dd)
00042 {
00043         Pwm.period(pp);
00044         Pwm.write(Dd);
00045         wait(0.1);
00046         Pwm.write(0); 
00047         return 0;
00048 }
00049 
00050 uint32_t cbAfterInput(uint32_t Key)
00051 {
00052         
00053     //lcd.cls();
00054     //lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
00055     //lcd.locate(9,0);
00056     //lcd.printf("kp=%d", kp);
00057     //lcd.locate(0,1);
00058     //lcd.printf("Ki=%d", ki);
00059     //lcd.locate(9,1);
00060     //lcd.printf("Kd=%d", kd);
00061     //lcd.locate(0,0);
00062     //lcd.printf("Sp=%d", sp);
00063         
00064         key=Key;
00065         //lcd.locate(0,0);
00066         //lcd.printf("%c",Keytable[key]);
00067         if(Keytable[key]=='A')
00068         {
00069             ++p;
00070             PWMmodule(pp,Dd);
00071             if (p==1)
00072             {
00073                 //++p;
00074                 lcd.locate(12,0);
00075                 lcd.printf("%d", kp);
00076             }
00077             else if (p==2)
00078             {
00079                 //++p;
00080                 lcd.locate(3,1);
00081                 lcd.printf("%d", ki);
00082                 lcd.locate(3,1);
00083             }
00084             else if (p==3)
00085             {
00086                 //++p;
00087                 lcd.locate(12,1);
00088                 lcd.printf("%d", kd);
00089                 
00090             }
00091             else if (p==4)
00092             {
00093                 lcd.locate(3,0);
00094                 lcd.printf("%d", sp);
00095                 p=0;
00096             }
00097         }
00098   
00099             
00100         return 0;
00101 }
00102  
00103 int main()
00104 
00105 {
00106     
00107     
00108     lcd.cls();
00109     lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
00110     lcd.locate(9,0);
00111     lcd.printf("kp=%d", kp);
00112     lcd.locate(0,1);
00113     lcd.printf("Ki=%d", ki);
00114     lcd.locate(9,1);
00115     lcd.printf("Kd=%d", kd);
00116     lcd.locate(0,0);
00117     lcd.printf("Sp=%d", sp);
00118     //lcd.locate(12,0);
00119     //lcd.printf("F=%d",Dd);
00120     //lcd.locate(12,1);
00121     //lcd.printf("D=%d",Pp);
00122     //Configuracion de Pines:
00123     //Filas van a Resistencia que van a tierra, y tambien a los puertos 
00124     //Columnas van directamente a los pines de la tarjeta.
00125     
00126     //             r0   r1   r2   r3   c0   c1   c2   c3
00127     Keypad keypad(PTA2,PTD4,PTD3,PTD1,PTD2,PTD0,PTD5,PTA13);
00128     //keypad.attach(&cbAfterInput);
00129     keypad.CallAfterInput(&cbAfterInput);
00130     keypad.Start();  // energiza las columnas C0-C3 Del Keypad
00131 
00132  
00133     while (1) 
00134     {
00135                     
00136     }
00137 }
00138