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.
Dependencies: QEI TextLCD mbed
Revision 0:f705e4de51eb, committed 2014-05-07
- Comitter:
- payarito32
- Date:
- Wed May 07 16:25:34 2014 +0000
- Commit message:
- Tarea 4 - Configuraci?n Encoder y LCD; ; Juan Salvador Payares; Ernesto Guevara; ; Configuraci?n movimiento Encoder entre variables controlador PI; Visualizaci?n en Display LCD
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/QEI.lib Wed May 07 16:25:34 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/aberk/code/QEI/#5c2ad81551aa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Wed May 07 16:25:34 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/avallejopo/code/TextLCD/#aba8ab3dde9d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Wed May 07 16:25:34 2014 +0000
@@ -0,0 +1,227 @@
+#include "mbed.h"
+#include "QEI.h"
+#include "TextLCD.h"
+
+//AnalogIn Vin(PTC2);
+TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
+QEI encoder (PTD6, PTD7, PTA17, 624);
+AnalogIn Vin(PTB0);//Voltaje de alimentación
+DigitalOut sound(PTC5); //Salida de Audio Digital
+AnalogOut Vout(PTE30); //Marcar la salida analógica
+DigitalIn button3(PTA17);
+int i;
+//codigos movimiento del curzor
+
+ //int C1=0x0E; // solo muestra el cursor
+int C2=0x18; // desplaza izquierda
+int C3=0x1A; // desplaza derecha
+int C4=0x0C; // quito cursor bajo
+int C1=0x0F;
+int err, med, yr, pid, ap, ai, ad, err_v, cambio=0, diferencia=0;
+int spnum=0,kinum=0,kpnum=0,kdnum=0,pos=1;
+int flagt=0;
+Timer t;
+
+int main()
+{
+ lcd.cls(); // Borrar Pantalla
+ lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
+
+ lcd.locate(8,0);
+ lcd.printf("Kp=%d",kpnum);
+ lcd.locate(0,1);
+ lcd.printf("Ki=%d",kinum);
+ lcd.locate(8,1);
+ lcd.printf("Kd=%d",kdnum);
+ lcd.locate(0,0);
+ lcd.printf("Sp=%d",spnum);
+
+ while(1)
+ {
+ //lcd.locate(8,0);
+ //lcd.printf("Kp=%d",encoder.getPulses());
+ //wait(.5);
+
+ diferencia=encoder.getPulses()-cambio;
+ cambio=encoder.getPulses();
+
+ if (diferencia==0)
+ {
+ //nada
+ }
+ else if(diferencia>0)
+ {
+ if(pos==1)
+ {
+ if(spnum+diferencia>=999)
+ {
+ spnum=999;
+ lcd.locate(3,0);
+ lcd.printf(" ");
+ lcd.locate(3,0);
+ lcd.printf("%d", spnum);
+ }
+ else
+ {
+ spnum+=diferencia;
+ lcd.locate(3,0);
+ lcd.printf("%d", spnum);
+ }
+ }
+ else if(pos==2)
+ {
+ if(kpnum+diferencia>=999)
+ {
+ kpnum=999;
+ lcd.locate(11,0);
+ lcd.printf(" ");
+ lcd.locate(11,0);
+ lcd.printf("%d", kpnum);
+ }
+ else
+ {
+ kpnum+=diferencia;
+ lcd.locate(11,0);
+ lcd.printf("%d", kpnum);
+ }
+ }
+ else if(pos==3)
+ {
+ if(kinum+diferencia>=999)
+ {
+ kinum=999;
+ lcd.locate(3,1);
+ lcd.printf(" ");
+ lcd.locate(3,1);
+ lcd.printf("%d", kinum);
+ }
+ else
+ {
+ kinum+=diferencia;
+ lcd.locate(3,1);
+ lcd.printf("%d", kinum);
+ }
+ }
+ else if(pos==4)
+ {
+ if(kdnum+diferencia>=999)
+ {
+ kdnum=999;
+ lcd.locate(11,1);
+ lcd.printf(" ");
+ lcd.locate(11,1);
+ lcd.printf("%d", kdnum);
+ }
+ else
+ {
+ kdnum+=diferencia;
+ lcd.locate(11,1);
+ lcd.printf("%d", kdnum);
+ }
+ }
+ }
+
+ else if(diferencia<0)
+ {
+ if(pos==1)
+ {
+ if(spnum+diferencia<0)
+ {
+ //No ocurre nada
+ }
+ else
+ {
+ spnum+=diferencia;
+ lcd.locate(3,0);
+ lcd.printf(" ");
+ lcd.locate(3,0);
+ lcd.printf("%d", spnum);
+ }
+ }
+ else if(pos==2)
+ {
+ if(kpnum+diferencia<0)
+ {
+ //No ocurre nada
+ }
+ else
+ {
+ kpnum+=diferencia;
+ lcd.locate(11,0);
+ lcd.printf(" ");
+ lcd.locate(11,0);
+ lcd.printf("%d", kpnum);
+ }
+ }
+ else if(pos==3)
+ {
+ if(kinum+diferencia<0)
+ {
+ //No ocurre nada
+ }
+ else
+ {
+ kinum+=diferencia;
+ lcd.locate(3,1);
+ lcd.printf(" ");
+ lcd.locate(3,1);
+ lcd.printf("%d", kinum);
+ }
+ }
+ else if(pos==4)
+ {
+ if(kdnum+diferencia<0)
+ {
+ //No ocurre nada
+ }
+ else
+ {
+ kdnum+=diferencia;
+ lcd.locate(11,1);
+ lcd.printf(" ");
+ lcd.locate(11,1);
+ lcd.printf("%d", kdnum);
+ }
+ }
+ }
+
+ if (!button3)
+ {
+ {
+ for(i=1; i<= 100; ++i){ //ONDA CUADRADA, OSCILACIONES A 10 KHZ.... A VER SI FUNCIONA
+ sound = 0;
+ wait(0.00015); // Medio ciclo de dureza Arriba
+ sound=1;
+ wait(0.0005); // Medio ciclo Abajo
+ }
+ if(pos==4)
+ {
+ pos=1;
+ lcd.locate(3,0);
+ lcd.printf("%d", spnum);
+ }
+ else if (pos==1)
+ {
+ pos++;
+ lcd.locate(11,0);
+ lcd.printf("%d", kpnum);
+ }
+ else if(pos==2)
+ {
+ pos++;
+ lcd.locate(3,1);
+ lcd.printf("%d", kinum);
+ }
+ else if(pos==3)
+ {
+ pos++;
+ lcd.locate(11,1);
+ lcd.printf("%d", kdnum);
+ }
+ wait(0.25);
+
+ }
+
+ }
+ }
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed May 07 16:25:34 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/6473597d706e \ No newline at end of file