
If you want to use BLDC with FUTABA without going backward, use it
Dependencies: mbed Servo Pulse1
main.cpp@0:b806d9855f21, 2019-12-20 (annotated)
- Committer:
- kyucheol
- Date:
- Fri Dec 20 07:32:15 2019 +0000
- Revision:
- 0:b806d9855f21
- Child:
- 1:1e4ebe0da2ea
14
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kyucheol | 0:b806d9855f21 | 1 | #include "mbed.h" |
kyucheol | 0:b806d9855f21 | 2 | #include "Servo.h" |
kyucheol | 0:b806d9855f21 | 3 | #include "Map.h" |
kyucheol | 0:b806d9855f21 | 4 | |
kyucheol | 0:b806d9855f21 | 5 | |
kyucheol | 0:b806d9855f21 | 6 | |
kyucheol | 0:b806d9855f21 | 7 | PwmOut led_left(LED1); //확인용 LED1 |
kyucheol | 0:b806d9855f21 | 8 | PwmOut led_right(LED2); //확인용 LED2 |
kyucheol | 0:b806d9855f21 | 9 | |
kyucheol | 0:b806d9855f21 | 10 | Servo bldc_left(D12); // 왼쪽 BLDC |
kyucheol | 0:b806d9855f21 | 11 | Servo bldc_right(PC_7); // 오른쪽 BLDC |
kyucheol | 0:b806d9855f21 | 12 | |
kyucheol | 0:b806d9855f21 | 13 | AnalogIn joystick_X(A0); |
kyucheol | 0:b806d9855f21 | 14 | AnalogIn joystick_Y(A1); |
kyucheol | 0:b806d9855f21 | 15 | |
kyucheol | 0:b806d9855f21 | 16 | int main() { |
kyucheol | 0:b806d9855f21 | 17 | bldc_left.write(0); // BLDC 초기 설정 |
kyucheol | 0:b806d9855f21 | 18 | bldc_right.write(0); |
kyucheol | 0:b806d9855f21 | 19 | |
kyucheol | 0:b806d9855f21 | 20 | led_left = 1; |
kyucheol | 0:b806d9855f21 | 21 | led_right=1; |
kyucheol | 0:b806d9855f21 | 22 | |
kyucheol | 0:b806d9855f21 | 23 | wait(0.5); |
kyucheol | 0:b806d9855f21 | 24 | |
kyucheol | 0:b806d9855f21 | 25 | bldc_left.write(1); |
kyucheol | 0:b806d9855f21 | 26 | bldc_right.write(1); |
kyucheol | 0:b806d9855f21 | 27 | |
kyucheol | 0:b806d9855f21 | 28 | led_left =0; |
kyucheol | 0:b806d9855f21 | 29 | led_right=0; |
kyucheol | 0:b806d9855f21 | 30 | wait(2); |
kyucheol | 0:b806d9855f21 | 31 | |
kyucheol | 0:b806d9855f21 | 32 | bldc_left.write(0); |
kyucheol | 0:b806d9855f21 | 33 | bldc_right.write(0); |
kyucheol | 0:b806d9855f21 | 34 | wait(2); |
kyucheol | 0:b806d9855f21 | 35 | |
kyucheol | 0:b806d9855f21 | 36 | float raw1,raw2; |
kyucheol | 0:b806d9855f21 | 37 | float mod1,mod2; |
kyucheol | 0:b806d9855f21 | 38 | printf("\nBLDC Setup & end\n"); |
kyucheol | 0:b806d9855f21 | 39 | |
kyucheol | 0:b806d9855f21 | 40 | while (1) { |
kyucheol | 0:b806d9855f21 | 41 | |
kyucheol | 0:b806d9855f21 | 42 | raw1 = joystick_X.read(); |
kyucheol | 0:b806d9855f21 | 43 | raw2 = joystick_Y.read(); |
kyucheol | 0:b806d9855f21 | 44 | raw1 = raw1 * 1000; |
kyucheol | 0:b806d9855f21 | 45 | raw2 = raw2 * 1000; |
kyucheol | 0:b806d9855f21 | 46 | |
kyucheol | 0:b806d9855f21 | 47 | printf("measure1 = %.0f mV\t", raw1); |
kyucheol | 0:b806d9855f21 | 48 | mod1 = map(raw1, 520, 1000, 0, 100); |
kyucheol | 0:b806d9855f21 | 49 | |
kyucheol | 0:b806d9855f21 | 50 | printf("measure2 = %.0f mV\t", raw2); |
kyucheol | 0:b806d9855f21 | 51 | mod2 = map(raw2, 520, 1000, 0, 100); |
kyucheol | 0:b806d9855f21 | 52 | |
kyucheol | 0:b806d9855f21 | 53 | |
kyucheol | 0:b806d9855f21 | 54 | |
kyucheol | 0:b806d9855f21 | 55 | printf("measure1 = %.0f mV\t", mod1); |
kyucheol | 0:b806d9855f21 | 56 | printf("measure2 = %.0f mV\t", mod2); |
kyucheol | 0:b806d9855f21 | 57 | |
kyucheol | 0:b806d9855f21 | 58 | mod1 = mod1/100; |
kyucheol | 0:b806d9855f21 | 59 | mod2 = mod2/100; |
kyucheol | 0:b806d9855f21 | 60 | printf("measure1 = %f mV\n", mod1); |
kyucheol | 0:b806d9855f21 | 61 | printf("measure2 = %f mV\t", mod2); |
kyucheol | 0:b806d9855f21 | 62 | |
kyucheol | 0:b806d9855f21 | 63 | bldc_left.write(mod1); |
kyucheol | 0:b806d9855f21 | 64 | bldc_right.write(mod2); |
kyucheol | 0:b806d9855f21 | 65 | |
kyucheol | 0:b806d9855f21 | 66 | |
kyucheol | 0:b806d9855f21 | 67 | led_left.write(mod1); |
kyucheol | 0:b806d9855f21 | 68 | led_right.write(mod2); |
kyucheol | 0:b806d9855f21 | 69 | } |
kyucheol | 0:b806d9855f21 | 70 | } |