This program is the begin to realize a control for a VTOL system from a android phone via bluetooth and show the variables in a LCD

Dependencies:   TextLCD mbed

Fork of LCD_FRDM_KL25Z by Gustavo Ramirez

Committer:
stevenjigo
Date:
Tue Nov 11 03:19:39 2014 +0000
Revision:
1:29966f67edda
Parent:
0:a6771cc1a056
This program help to generate a PWM for a Brushless Motor with send parameters from a android system via Bluetooth

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tony63 0:a6771cc1a056 1 #include "mbed.h"
tony63 0:a6771cc1a056 2 #include "TextLCD.h"
tony63 0:a6771cc1a056 3
stevenjigo 1:29966f67edda 4 Serial device(D14, D15); // tx, rx
stevenjigo 1:29966f67edda 5 DigitalOut L1(LED1);
stevenjigo 1:29966f67edda 6 PwmOut pwm(PTA5);
stevenjigo 1:29966f67edda 7 AnalogIn Sens(A0);
stevenjigo 1:29966f67edda 8
stevenjigo 1:29966f67edda 9 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
stevenjigo 1:29966f67edda 10
stevenjigo 1:29966f67edda 11 char value;
stevenjigo 1:29966f67edda 12 float SP=0.05;
stevenjigo 1:29966f67edda 13 float SPd=0;
stevenjigo 1:29966f67edda 14 float Cai=0;
stevenjigo 1:29966f67edda 15 float Asen;
stevenjigo 1:29966f67edda 16 float p=0;
stevenjigo 1:29966f67edda 17 float SPdroid;
tony63 0:a6771cc1a056 18
tony63 0:a6771cc1a056 19 int main() {
stevenjigo 1:29966f67edda 20 pwm.period_ms(20);
stevenjigo 1:29966f67edda 21 L1=1;
stevenjigo 1:29966f67edda 22 lcd.locate(0,0);
stevenjigo 1:29966f67edda 23 lcd.printf("Bienvenido");
stevenjigo 1:29966f67edda 24 lcd.locate(0,1);
stevenjigo 1:29966f67edda 25 lcd.printf("Control del VTOL");
stevenjigo 1:29966f67edda 26 wait(2);
stevenjigo 1:29966f67edda 27 lcd.cls();
stevenjigo 1:29966f67edda 28 lcd.locate(0,0);
stevenjigo 1:29966f67edda 29 lcd.printf("D:");
stevenjigo 1:29966f67edda 30 lcd.locate(5,0);
stevenjigo 1:29966f67edda 31 lcd.printf("S:");
stevenjigo 1:29966f67edda 32 lcd.locate(10,0);
stevenjigo 1:29966f67edda 33 lcd.printf("BT:");
stevenjigo 1:29966f67edda 34 while(1){
stevenjigo 1:29966f67edda 35 if(device.readable()){
stevenjigo 1:29966f67edda 36 value=device.getc();
stevenjigo 1:29966f67edda 37 lcd.cls();
stevenjigo 1:29966f67edda 38 lcd.locate(0,0);
stevenjigo 1:29966f67edda 39 lcd.printf("D:");
stevenjigo 1:29966f67edda 40 lcd.locate(5,0);
stevenjigo 1:29966f67edda 41 lcd.printf("S:");
stevenjigo 1:29966f67edda 42 lcd.locate(10,0);
stevenjigo 1:29966f67edda 43 lcd.printf("BT:");
stevenjigo 1:29966f67edda 44 if(value=='0'){
stevenjigo 1:29966f67edda 45 SP=0.054;
stevenjigo 1:29966f67edda 46 }
stevenjigo 1:29966f67edda 47 if(value=='3'){
stevenjigo 1:29966f67edda 48 SP=0.0745;
stevenjigo 1:29966f67edda 49 }
stevenjigo 1:29966f67edda 50 if(value=='1'){
stevenjigo 1:29966f67edda 51 if(SP<1.00) SP=SP+0.0001;
stevenjigo 1:29966f67edda 52 }
stevenjigo 1:29966f67edda 53 if(value=='2'){
stevenjigo 1:29966f67edda 54 if(SP>0.00) SP=SP-0.0001;
stevenjigo 1:29966f67edda 55 }
stevenjigo 1:29966f67edda 56 if(value=='4'){
stevenjigo 1:29966f67edda 57 Cai=1;
stevenjigo 1:29966f67edda 58 }
stevenjigo 1:29966f67edda 59 if(value=='X'){
stevenjigo 1:29966f67edda 60 SPdroid=device.getc()-48;
stevenjigo 1:29966f67edda 61 fflush(stdin);
stevenjigo 1:29966f67edda 62 SP=(SPdroid+1)/200+0.05;
stevenjigo 1:29966f67edda 63 }
stevenjigo 1:29966f67edda 64 }
stevenjigo 1:29966f67edda 65 Asen=(7.21/8)*Sens.read();
stevenjigo 1:29966f67edda 66 //pwm=1;
stevenjigo 1:29966f67edda 67 //wait_ms(SP);
stevenjigo 1:29966f67edda 68 //pwm=0;
stevenjigo 1:29966f67edda 69 //wait_ms(20-SP);
stevenjigo 1:29966f67edda 70 if(Cai==1){
stevenjigo 1:29966f67edda 71 while(!Cai==0){
stevenjigo 1:29966f67edda 72 SP=SP-0.0001;
stevenjigo 1:29966f67edda 73 if(SP<0.054){
stevenjigo 1:29966f67edda 74 Cai=0;
stevenjigo 1:29966f67edda 75 }
stevenjigo 1:29966f67edda 76 wait_ms(50);
stevenjigo 1:29966f67edda 77 SPd=SP*100;
stevenjigo 1:29966f67edda 78 lcd.locate(0,1);
stevenjigo 1:29966f67edda 79 lcd.printf("%.2f ",SPd);
stevenjigo 1:29966f67edda 80 pwm.write(SP);
stevenjigo 1:29966f67edda 81 }
stevenjigo 1:29966f67edda 82 }
stevenjigo 1:29966f67edda 83 SPd=SP*100;
stevenjigo 1:29966f67edda 84 lcd.locate(0,1);
stevenjigo 1:29966f67edda 85 lcd.printf("%.2f %.2f %.2f",SPd,Asen,SPdroid);
stevenjigo 1:29966f67edda 86 pwm.write(SP);
stevenjigo 1:29966f67edda 87 }
stevenjigo 1:29966f67edda 88 }