BTSmartFan Servo/DC motor controlled using Bluetooth

Dependencies:   Servo mbed-src

http://www.instructables.com/id/Just-make-it-BT-Smart-Fan-/

Committer:
justinkim
Date:
Mon Jun 29 01:27:03 2015 +0000
Revision:
0:7441087c2a16
first release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
justinkim 0:7441087c2a16 1 /**
justinkim 0:7441087c2a16 2 ******************************************************************************
justinkim 0:7441087c2a16 3 * @project Smart BT Fan
justinkim 0:7441087c2a16 4 * @author Justin Kim
justinkim 0:7441087c2a16 5 * @version V1.0.0
justinkim 0:7441087c2a16 6 * @date 29-JUN-2015
justinkim 0:7441087c2a16 7 * @brief Main program body
justinkim 0:7441087c2a16 8 *******************************************************************************
justinkim 0:7441087c2a16 9 **/
justinkim 0:7441087c2a16 10
justinkim 0:7441087c2a16 11 /* Includes ------------------------------------------------------------------*/
justinkim 0:7441087c2a16 12 #include "mbed.h"
justinkim 0:7441087c2a16 13 #include "Servo.h"
justinkim 0:7441087c2a16 14
justinkim 0:7441087c2a16 15 /* Private typedef -----------------------------------------------------------*/
justinkim 0:7441087c2a16 16 /* Private define ------------------------------------------------------------*/
justinkim 0:7441087c2a16 17 /* Private variables ---------------------------------------------------------*/
justinkim 0:7441087c2a16 18 Serial pc(USBTX, USBRX);
justinkim 0:7441087c2a16 19 Serial bt(PA_14, PA_13);
justinkim 0:7441087c2a16 20 Servo myservo(D14);
justinkim 0:7441087c2a16 21 PwmOut Motor(D3);
justinkim 0:7441087c2a16 22 DigitalOut direction(D12);
justinkim 0:7441087c2a16 23
justinkim 0:7441087c2a16 24 /* Private function prototypes -----------------------------------------------*/
justinkim 0:7441087c2a16 25
justinkim 0:7441087c2a16 26 /* Private functions ---------------------------------------------------------*/
justinkim 0:7441087c2a16 27 /**
justinkim 0:7441087c2a16 28 * @brief Main Function
justinkim 0:7441087c2a16 29 * @param None
justinkim 0:7441087c2a16 30 * @retval None
justinkim 0:7441087c2a16 31 */
justinkim 0:7441087c2a16 32 int main(void)
justinkim 0:7441087c2a16 33 {
justinkim 0:7441087c2a16 34 char ch;
justinkim 0:7441087c2a16 35 pc.baud(115200);
justinkim 0:7441087c2a16 36 bt.baud(115200);
justinkim 0:7441087c2a16 37 pc.printf("Hello World!\n\r");
justinkim 0:7441087c2a16 38 bt.printf("Hello World!\r\n");
justinkim 0:7441087c2a16 39
justinkim 0:7441087c2a16 40 direction.write(1);
justinkim 0:7441087c2a16 41 Motor.period_ms(1);
justinkim 0:7441087c2a16 42
justinkim 0:7441087c2a16 43 while(1)
justinkim 0:7441087c2a16 44 {
justinkim 0:7441087c2a16 45 if(bt.readable())
justinkim 0:7441087c2a16 46 {
justinkim 0:7441087c2a16 47 ch=bt.getc();
justinkim 0:7441087c2a16 48 pc.printf("%c",ch);
justinkim 0:7441087c2a16 49 bt.printf("%c",ch);
justinkim 0:7441087c2a16 50
justinkim 0:7441087c2a16 51 if(ch == '*')
justinkim 0:7441087c2a16 52 {
justinkim 0:7441087c2a16 53 myservo = 0.5;
justinkim 0:7441087c2a16 54 }
justinkim 0:7441087c2a16 55 else if(ch == '+')
justinkim 0:7441087c2a16 56 {
justinkim 0:7441087c2a16 57 myservo = myservo + 0.1;
justinkim 0:7441087c2a16 58 }
justinkim 0:7441087c2a16 59 else if(ch == '-')
justinkim 0:7441087c2a16 60 {
justinkim 0:7441087c2a16 61 myservo = myservo - 0.1;
justinkim 0:7441087c2a16 62 }
justinkim 0:7441087c2a16 63 else if(ch == '@')
justinkim 0:7441087c2a16 64 {
justinkim 0:7441087c2a16 65 Motor.write(0.8);
justinkim 0:7441087c2a16 66 }
justinkim 0:7441087c2a16 67 else if(ch == '!')
justinkim 0:7441087c2a16 68 {
justinkim 0:7441087c2a16 69 Motor.write(0);
justinkim 0:7441087c2a16 70 }
justinkim 0:7441087c2a16 71 }
justinkim 0:7441087c2a16 72
justinkim 0:7441087c2a16 73 else if(pc.readable())
justinkim 0:7441087c2a16 74 {
justinkim 0:7441087c2a16 75 ch=pc.getc();
justinkim 0:7441087c2a16 76 bt.printf("%c",ch);
justinkim 0:7441087c2a16 77 pc.printf("%c",ch);
justinkim 0:7441087c2a16 78
justinkim 0:7441087c2a16 79 if(ch == '*')
justinkim 0:7441087c2a16 80 {
justinkim 0:7441087c2a16 81 myservo = 0.5;
justinkim 0:7441087c2a16 82 }
justinkim 0:7441087c2a16 83 else if(ch == '+')
justinkim 0:7441087c2a16 84 {
justinkim 0:7441087c2a16 85 myservo = myservo + 0.1;
justinkim 0:7441087c2a16 86 }
justinkim 0:7441087c2a16 87 else if(ch == '-')
justinkim 0:7441087c2a16 88 {
justinkim 0:7441087c2a16 89 myservo = myservo - 0.1;
justinkim 0:7441087c2a16 90 }
justinkim 0:7441087c2a16 91 else if(ch == '@')
justinkim 0:7441087c2a16 92 {
justinkim 0:7441087c2a16 93 Motor.write(0.8);
justinkim 0:7441087c2a16 94 }
justinkim 0:7441087c2a16 95 else if(ch == '!')
justinkim 0:7441087c2a16 96 {
justinkim 0:7441087c2a16 97 Motor.write(0);
justinkim 0:7441087c2a16 98 }
justinkim 0:7441087c2a16 99 }
justinkim 0:7441087c2a16 100 }
justinkim 0:7441087c2a16 101 }