Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 6:9bd1da494e0b
- Parent:
- 5:237c49800e14
- Child:
- 7:de699a50fc63
diff -r 237c49800e14 -r 9bd1da494e0b main.cpp
--- a/main.cpp Mon Dec 17 12:02:19 2018 +0000
+++ b/main.cpp Tue Dec 18 19:04:49 2018 +0000
@@ -11,7 +11,8 @@
AnalogIn in2(A4); //フォトリフレクタ真ん中
AnalogIn in3(A3); //フォトリフレクタ右
-float g = 0.0f;//目標値(パルス数)
+float g1 = 0.0f;//目標値(パルス数)
+float g2 = 0.0f;//目標値(パルス数)
float gain1 = 0.0f;//左ゲイン
float gain2 = 0.0f;//右ゲイン
float dif1 = 0.0f;//目標との差左
@@ -25,6 +26,7 @@
int mode1 = 10;
int mode2 = 2;
int mode3 = 2;
+int curve_num = 1;
int main() {
pwm11.period(0.01f); //100Hz
@@ -41,7 +43,7 @@
while(1) {
distance = (distance1+distance2)/2;
- if(distance < 43*2*12*mode1){
+ // if(distance < 43*2*12*mode1){
/*
if( led_count1 + led_count2 > 43*2*12){ //200mm毎にLEDを点滅
LED = 1.0f;
@@ -75,78 +77,162 @@
switch(n){
case(2)://白黒白進む
- g = 500.0f;
- gain1 = g - c1;
- gain2 = g - c2;
+ g1 = 500.0f;
+ g2 = 500.0f;
+ dif1 = g1 - c1;
+ dif2 = g2 - c2;
+
+ pwm11.write(0.35f);
+ pwm12.write(0.10f);
+ pwm21.write(0.35f);
+ pwm22.write(0.10f);
+ break;
+
+
+ case(1)://黒白白左回転強
+
+ pwm11.write(0.30f);
+ pwm12.write(0.20f);
+ pwm21.write(0.38f);
+ pwm22.write(0.20f);
+ break;
+ case(3)://黒黒白左回転弱
+ pwm11.write(0.27f);
+ pwm12.write(0.10f);
+ pwm21.write(0.33f);
+ pwm22.write(0.10f);
+ break;
+
+
+ case(4)://白白黒右回転強
pwm11.write(0.40f);
+ pwm12.write(0.20f);
+ pwm21.write(0.30f);
+ pwm22.write(0.20f);
+ break;
+
+
+ case(6)://白黒黒右回転弱
+ pwm11.write(0.33f);
+ pwm12.write(0.10f);
+ pwm21.write(0.27f);
+ pwm22.write(0.10f);
+ break;
+
+ case(7)://黒黒黒爆走
+ pwm11.write(0.45f);
pwm12.write(0.30f);
- pwm21.write(0.40f);
+ pwm21.write(0.45f);
pwm22.write(0.30f);
break;
case(0)://白白白
- g = 600.0f;
- gain1 = g - c1;
- gain2 = g - c2;
- pwm11.write(0.30f);
- pwm12.write(0.40f);
- pwm21.write(0.30f);
- pwm22.write(0.40f);
+ switch(curve_num){
+ case(1):
+
+ pwm11.write(0.10f);
+ pwm12.write(0.20f);
+ pwm21.write(0.10f);
+ pwm22.write(0.20f);
+
+ while(in2 < thr2){
+ pwm11.write(0.30f);
+ pwm12.write(0.30f);
+ pwm21.write(0.48f);
+ pwm22.write(0.30f);
+ }
+ curve_num++;
+
+ pwm11.write(0.40f);
+ pwm12.write(0.10f);
+ pwm21.write(0.20f);
+ pwm22.write(0.45f);
+
+
+ break;
+
+ case(2):
+ pwm11.write(0.20f);
+ pwm12.write(0.40f);
+ pwm21.write(0.20f);
+ pwm22.write(0.40f);
+
+
+ while(in1 < thr1){
+ pwm11.write(1.00f);
+ pwm12.write(1.00f);
+ pwm21.write(0.40f);
+ pwm22.write(0.20f);
+ }
+ curve_num++;
+
+ while(in2 > thr2){
+ pwm11.write(0.80f);
+ pwm12.write(0.10f);
+ pwm21.write(0.20f);
+ pwm22.write(0.20f);
+ }
+
+ break;
+ case(3):
+ while(in2 < thr2){
+ pwm11.write(0.45f);
+ pwm12.write(0.10f);
+ pwm21.write(0.20f);
+ pwm22.write(0.20f);
+ }
+ curve_num++;
+
+ while(in2 > thr2){
+ pwm11.write(0.90f);
+ pwm12.write(0.20f);
+ pwm21.write(0.20f);
+ pwm22.write(0.10f);
+ }
+
+ break;
+ case(4):
+ while(in1 < thr1){
+ pwm11.write(0.35f);
+ pwm12.write(0.10f);
+ pwm21.write(0.48f);
+ pwm22.write(0.20f);
+ }
+ curve_num++;
+ pwm11.write(0.20f);
+ pwm12.write(0.20f);
+ pwm21.write(0.40f);
+ pwm22.write(0.10f);
+
+ break;
+
+ default:
+ pwm11.write(0.30f);
+ pwm12.write(0.40f);
+ pwm21.write(0.30f);
+ pwm22.write(0.40f);
+ break;
+
+ }
+
break;
-
-
- case(1)://黒白白左回転強
- pwm11.write(0.30f);
- pwm12.write(0.30f);
- pwm21.write(0.30f);
- pwm22.write(0.20f);
- break;
-
- case(4)://白白黒右回転
- pwm11.write(0.30f);
- pwm12.write(0.20f);
- pwm21.write(0.30f);
- pwm22.write(0.30f);
- break;
-
- case(3)://黒黒白左回転弱
- pwm11.write(0.30f);
- pwm12.write(0.30f);
- pwm21.write(0.30f);
- pwm22.write(0.20f);
- break;
-
- case(6)://白黒黒右回転弱
- pwm11.write(0.30f);
- pwm12.write(0.20f);
- pwm21.write(0.30f);
- pwm22.write(0.30f);
- break;
-
- case(7)://黒黒黒爆走
- pwm11.write(0.40f);
- pwm12.write(0.30f);
- pwm21.write(0.40f);
- pwm22.write(0.30f);
- break;
-
default://それ以外(ないけど)
pwm11.write(0.00f);
pwm12.write(0.00f);
pwm21.write(0.00f);
pwm22.write(0.00f);
break;
- }
}
- else{
+
+ /* else{
pwm11.write(0.00f);
pwm12.write(0.00f);
pwm21.write(0.00f);
pwm22.write(0.00f);
- }
+ }*/
}
}
\ No newline at end of file