PID en pantalla LCD con botones incremental, decremental y cambiador de variable (Sp, Kp, Ki, Kd) que tambien suenan con diferente frecuencia cuando se pulsan.

Dependencies:   Debounced TextLCD mbed

Fork of pid_teclas by Gustavo Ramirez

Files at this revision

API Documentation at this revision

Comitter:
walterg
Date:
Wed Apr 02 17:37:10 2014 +0000
Parent:
0:9aa80672eb3d
Commit message:
This program use three buttons to increment, decrement and change of variable on a LCD, wich is the visual interface of a PID controller that show Sp, Kp, Ki, Kd. Aditionally, each button send a different PWM signal to make sound a little speaker.

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Wed Oct 16 17:10:11 2013 +0000
+++ b/main.cpp	Wed Apr 02 17:37:10 2014 +0000
@@ -2,9 +2,16 @@
 #include "DebouncedIn.h"
 #include "TextLCD.h"
 
-AnalogIn Vin(PTC2);
+float Tdo=1/2093.005;
+float Pdo=Tdo/2;
+float Tre=1/2637.02;
+float Pre=Tre/2;
+float Tmi=1/3135.963;
+float Pmi=Tmi/2;
+
+
 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
-
+ 
 DigitalOut led1(LED1);
 DigitalOut led2(LED2);
 DigitalOut led3(LED3);
@@ -12,6 +19,9 @@
 DebouncedIn button2(PTC13);
 DebouncedIn button3(PTC16);
 
+//DigitalOut Vparlante(PTC5);
+PwmOut pw(PTA12);
+
 int C1=0x0F;
 int sp=0,kp=0,kd=0,ki=0,p=1;
 int main()
@@ -26,11 +36,17 @@
     lcd.printf("Kd=%d", kd);
     lcd.locate(0,0);
     lcd.printf("Sp=%d", sp);
-
+ 
+ 
     while(1)
     {
         if (button1.falling())
         {
+            pw.period(Tdo);
+            pw.pulsewidth(Pdo);
+            wait(0.1);
+            pw=0;
+            
             led1 =!led1;
             if (p==1)
             {
@@ -67,6 +83,11 @@
         }
         if (button2.falling())
         {
+            pw.period(Tre);
+            pw.pulsewidth(Pre);
+            wait(0.1);
+            pw=0;
+            
             led2 =!led2;
             if (p==1)
             {
@@ -127,6 +148,12 @@
         }
         if (button3.falling())
         {
+            
+            pw.period(Tmi);
+            pw.pulsewidth(Pmi);
+            wait(0.1);
+            pw=0;
+            
             led3 =!led3;
             if (p==1)
             {
@@ -162,4 +189,4 @@
             }
         }
     }
-}
+}
\ No newline at end of file