Updated to latest version. Added in new version of the Siren
Dependencies: mbed-src
Fork of VolundrIntroCase2015 by
main.cpp@1:fad61b6e660b, 2015-08-04 (annotated)
- Committer:
- tweaker1331
- Date:
- Tue Aug 04 21:22:56 2015 +0000
- Revision:
- 1:fad61b6e660b
- Parent:
- 0:9826a0b36948
- Child:
- 2:7ca8b2154664
Hierbij, Bluetooth werkend.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tweaker1331 | 0:9826a0b36948 | 1 | #include "mbed.h" |
tweaker1331 | 1:fad61b6e660b | 2 | /* |
tweaker1331 | 1:fad61b6e660b | 3 | MOTOR A |
tweaker1331 | 1:fad61b6e660b | 4 | ENA - p21 |
tweaker1331 | 1:fad61b6e660b | 5 | IN1 - p5 --> OUT1 - MOTORA+ |
tweaker1331 | 1:fad61b6e660b | 6 | IN2 - p6 --> OUT2 - MOTORA- |
tweaker1331 | 1:fad61b6e660b | 7 | MOTOR B |
tweaker1331 | 1:fad61b6e660b | 8 | ENB - p22 |
tweaker1331 | 1:fad61b6e660b | 9 | IN3 - p26 --> OUT3 - MOTORB+ |
tweaker1331 | 1:fad61b6e660b | 10 | IN4 - p25 --> OUT4 - MOTORB- |
tweaker1331 | 1:fad61b6e660b | 11 | */ |
tweaker1331 | 1:fad61b6e660b | 12 | |
tweaker1331 | 1:fad61b6e660b | 13 | PwmOut in1(p5); |
tweaker1331 | 1:fad61b6e660b | 14 | PwmOut in2(p6); |
tweaker1331 | 1:fad61b6e660b | 15 | |
tweaker1331 | 1:fad61b6e660b | 16 | PwmOut in3(p26); |
tweaker1331 | 1:fad61b6e660b | 17 | PwmOut in4(p25); |
tweaker1331 | 1:fad61b6e660b | 18 | |
tweaker1331 | 1:fad61b6e660b | 19 | DigitalOut en_a(p21); |
tweaker1331 | 1:fad61b6e660b | 20 | DigitalOut en_b(p22); |
tweaker1331 | 1:fad61b6e660b | 21 | |
tweaker1331 | 1:fad61b6e660b | 22 | DigitalOut LED(LED1); |
tweaker1331 | 1:fad61b6e660b | 23 | |
tweaker1331 | 1:fad61b6e660b | 24 | Serial bluetooth(p9, p10); |
tweaker1331 | 1:fad61b6e660b | 25 | //Serial pc(USBTX, USBRX); |
tweaker1331 | 1:fad61b6e660b | 26 | |
tweaker1331 | 1:fad61b6e660b | 27 | |
tweaker1331 | 1:fad61b6e660b | 28 | /* Initialize timers for the H-bridge*/ |
tweaker1331 | 1:fad61b6e660b | 29 | int init_drive() |
tweaker1331 | 1:fad61b6e660b | 30 | { |
tweaker1331 | 1:fad61b6e660b | 31 | // Set PWM frequency to 10 kHz |
tweaker1331 | 1:fad61b6e660b | 32 | in1.period_us(100); |
tweaker1331 | 1:fad61b6e660b | 33 | in2.period_us(100); |
tweaker1331 | 1:fad61b6e660b | 34 | in3.period_us(100); |
tweaker1331 | 1:fad61b6e660b | 35 | in4.period_us(100); |
tweaker1331 | 1:fad61b6e660b | 36 | /* Set enable pin high. NEVER set this pins low during driving. |
tweaker1331 | 1:fad61b6e660b | 37 | There are no protection diodes and with EN low, H-bridge is in Hi-Z mode. |
tweaker1331 | 1:fad61b6e660b | 38 | This can generate a high voltage that breaks the H-bridge.*/ |
tweaker1331 | 1:fad61b6e660b | 39 | en_a.write(1); |
tweaker1331 | 1:fad61b6e660b | 40 | en_b.write(1); |
tweaker1331 | 1:fad61b6e660b | 41 | |
tweaker1331 | 1:fad61b6e660b | 42 | return 1; |
tweaker1331 | 1:fad61b6e660b | 43 | } |
tweaker1331 | 1:fad61b6e660b | 44 | |
tweaker1331 | 1:fad61b6e660b | 45 | /*Handler for Bluetooth messages*/ |
tweaker1331 | 1:fad61b6e660b | 46 | void rxCallback() |
tweaker1331 | 1:fad61b6e660b | 47 | { |
tweaker1331 | 1:fad61b6e660b | 48 | char a; |
tweaker1331 | 1:fad61b6e660b | 49 | a = bluetooth.getc(); |
tweaker1331 | 1:fad61b6e660b | 50 | if(a == 'g') { |
tweaker1331 | 1:fad61b6e660b | 51 | LED = 1; |
tweaker1331 | 1:fad61b6e660b | 52 | } |
tweaker1331 | 1:fad61b6e660b | 53 | } |
tweaker1331 | 1:fad61b6e660b | 54 | |
tweaker1331 | 1:fad61b6e660b | 55 | /* Initialize the bluetooth module*/ |
tweaker1331 | 1:fad61b6e660b | 56 | int init_bluetooth() |
tweaker1331 | 1:fad61b6e660b | 57 | { |
tweaker1331 | 1:fad61b6e660b | 58 | bluetooth.baud(9600); |
tweaker1331 | 1:fad61b6e660b | 59 | //wait(0.2); |
tweaker1331 | 1:fad61b6e660b | 60 | //bluetooth.printf("AT+NAMETHOR1\r\n"); |
tweaker1331 | 1:fad61b6e660b | 61 | bluetooth.attach(&rxCallback, Serial::RxIrq); |
tweaker1331 | 0:9826a0b36948 | 62 | |
tweaker1331 | 0:9826a0b36948 | 63 | return 1; |
tweaker1331 | 1:fad61b6e660b | 64 | } |
tweaker1331 | 1:fad61b6e660b | 65 | |
tweaker1331 | 1:fad61b6e660b | 66 | /* Initialize ADC ports*/ |
tweaker1331 | 1:fad61b6e660b | 67 | int init_ADC() |
tweaker1331 | 1:fad61b6e660b | 68 | { |
tweaker1331 | 1:fad61b6e660b | 69 | return 1; |
tweaker1331 | 1:fad61b6e660b | 70 | } |
tweaker1331 | 1:fad61b6e660b | 71 | |
tweaker1331 | 1:fad61b6e660b | 72 | |
tweaker1331 | 1:fad61b6e660b | 73 | /* Initialize GPIO's*/ |
tweaker1331 | 1:fad61b6e660b | 74 | int init_GPIO() |
tweaker1331 | 1:fad61b6e660b | 75 | { |
tweaker1331 | 1:fad61b6e660b | 76 | return 1; |
tweaker1331 | 0:9826a0b36948 | 77 | } |
tweaker1331 | 0:9826a0b36948 | 78 | |
tweaker1331 | 1:fad61b6e660b | 79 | int main() |
tweaker1331 | 1:fad61b6e660b | 80 | { |
tweaker1331 | 0:9826a0b36948 | 81 | |
tweaker1331 | 0:9826a0b36948 | 82 | init_drive(); |
tweaker1331 | 1:fad61b6e660b | 83 | init_bluetooth(); |
tweaker1331 | 0:9826a0b36948 | 84 | |
tweaker1331 | 0:9826a0b36948 | 85 | while(1) { |
tweaker1331 | 1:fad61b6e660b | 86 | /* if(pc.readable()) { |
tweaker1331 | 1:fad61b6e660b | 87 | bluetooth.putc(pc.getc()); |
tweaker1331 | 1:fad61b6e660b | 88 | } |
tweaker1331 | 1:fad61b6e660b | 89 | if(bluetooth.readable()) { |
tweaker1331 | 1:fad61b6e660b | 90 | pc.putc(bluetooth.getc()); |
tweaker1331 | 1:fad61b6e660b | 91 | }*/ |
tweaker1331 | 0:9826a0b36948 | 92 | } |
tweaker1331 | 1:fad61b6e660b | 93 | |
tweaker1331 | 1:fad61b6e660b | 94 | } |