BTSmartFan Servo/DC motor controlled using Bluetooth
http://www.instructables.com/id/Just-make-it-BT-Smart-Fan-/
main.cpp@0:7441087c2a16, 2015-06-29 (annotated)
- Committer:
- justinkim
- Date:
- Mon Jun 29 01:27:03 2015 +0000
- Revision:
- 0:7441087c2a16
first release
Who changed what in which revision?
User | Revision | Line number | New 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 | } |