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
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
Generated on Sat Jul 16 2022 02:04:53 by 1.7.2