
If you want to use BLDC with FUTABA without going backward, use it
Dependencies: mbed Servo Pulse1
Diff: main.cpp
- Revision:
- 3:c47e538f3aec
- Parent:
- 2:4e3761881124
- Child:
- 4:c9fda60b0332
--- a/main.cpp Sat Dec 21 08:32:27 2019 +0000 +++ b/main.cpp Sat Dec 21 08:52:52 2019 +0000 @@ -47,14 +47,14 @@ printf("raw1=%.0f mV\t", raw1); - mod1 = map(raw1, 1450, 1000, 0, 100); // 후진 - mod2 = map(raw1, 1550, 2000, 0, 100); // 전진 + mod1 = map(raw1, 1450, 1000, 0, 60); // 후진 //PWM 150을 변환 + mod2 = map(raw1, 1550, 2000, 0, 60); // 전진 //PWM 150을 변환 printf("raw2=%.0f mV\t", raw2); - mod3 = map(raw2, 1450, 1000, 0, 100); // 좌회전 - mod4 = map(raw2, 1550, 2000, 0, 100); // 우회전 + mod3 = map(raw2, 1450, 1000, 0, 60); // 좌회전 //PWM 150을 변환 + mod4 = map(raw2, 1550, 2000, 0, 60); // 우회전 //PWM 150을 변환 printf("raw3=%.0f mV\t", raw3); mod5 = map(raw3, 920, 2080, 0, 100); @@ -79,26 +79,39 @@ printf("measure5 = %f mV\n", mod5); - if(mod3 > 2) { + if(mod3 > 0.02) { // 2 mod4 = 0; } - if(mod4 > 2) { + if(mod4 > 0.02) { // 2 mod3 = 0; } - float bldc_l, bldc_r; + float bldc_l, bldc_r; // bldc 왼쪽 오른쪽 선언 bldc_l = mod1 - mod3 + mod4; bldc_r = mod1 + mod3 - mod4; + if(bldc_l >= 0.6) { // PWM 150을 변환 + bldc_l = 0.6; + } + if(bldc_l <= 0.08) { // PWM 20을 변환 + bldc_l = 0; + } + + if(bldc_r >= 0.6) { // PWM 150을 변환 + bldc_r = 0.6; + } + if(bldc_r <= 0.08) { // PWM 20을 변환 + bldc_r = 0; + } - bldc_left.write(mod1); - bldc_right.write(mod2); + bldc_left.write(bldc_l); + bldc_right.write(bldc_r); - led_left.write(mod1); - led_right.write(mod2); + led_left.write(bldc_l); + led_right.write(bldc_r); } }