mech / Mbed OS line-trace
Committer:
isshikiyuya
Date:
Sat Nov 24 17:57:44 2018 +0000
Revision:
1:752025c69f32
Parent:
0:0dbcf2958540
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
isshikiyuya 0:0dbcf2958540 1 #include "mbed.h"
isshikiyuya 0:0dbcf2958540 2
isshikiyuya 0:0dbcf2958540 3 int count1 = 0;
isshikiyuya 0:0dbcf2958540 4 int count2 = 0;
isshikiyuya 0:0dbcf2958540 5 PwmOut pwm11(D5); //左正転
isshikiyuya 0:0dbcf2958540 6 PwmOut pwm12(D1); //左逆転
isshikiyuya 0:0dbcf2958540 7 PwmOut pwm21(D6); //右正転
isshikiyuya 0:0dbcf2958540 8 PwmOut pwm22(D9); //右逆転
isshikiyuya 0:0dbcf2958540 9 DigitalOut LED(D2);
isshikiyuya 0:0dbcf2958540 10 InterruptIn button1(A1); //フォトインタラプタ
isshikiyuya 0:0dbcf2958540 11 InterruptIn button2(A2); //フォトインタラプタ
isshikiyuya 0:0dbcf2958540 12 AnalogIn in1(A3); //フォトリフレクタ左?要確認
isshikiyuya 0:0dbcf2958540 13 AnalogIn in2(A4); //フォトリフレクタ真ん中
isshikiyuya 1:752025c69f32 14 AnalogIn in3(A6); //フォトリフレクタ右?要確認
isshikiyuya 0:0dbcf2958540 15
isshikiyuya 1:752025c69f32 16 float thr1 = 0.25f;
isshikiyuya 1:752025c69f32 17 float thr2 = 0.25f;
isshikiyuya 1:752025c69f32 18 float thr3 = 0.25f;
isshikiyuya 0:0dbcf2958540 19
isshikiyuya 0:0dbcf2958540 20 void flip1() {
isshikiyuya 0:0dbcf2958540 21 count1++;
isshikiyuya 0:0dbcf2958540 22 }
isshikiyuya 0:0dbcf2958540 23
isshikiyuya 0:0dbcf2958540 24 void flip2() {
isshikiyuya 0:0dbcf2958540 25 count2++;
isshikiyuya 0:0dbcf2958540 26 }
isshikiyuya 0:0dbcf2958540 27
isshikiyuya 0:0dbcf2958540 28
isshikiyuya 0:0dbcf2958540 29 int main() {
isshikiyuya 0:0dbcf2958540 30 pwm11.period(0.01f); //100Hz
isshikiyuya 0:0dbcf2958540 31 pwm12.period(0.01f); //100Hz
isshikiyuya 0:0dbcf2958540 32 pwm21.period(0.01f); //100Hz
isshikiyuya 0:0dbcf2958540 33 pwm22.period(0.01f); //100Hz
isshikiyuya 0:0dbcf2958540 34 button1.rise(&flip1);
isshikiyuya 0:0dbcf2958540 35 button2.rise(&flip2);
isshikiyuya 0:0dbcf2958540 36
isshikiyuya 0:0dbcf2958540 37 while(1) {
isshikiyuya 0:0dbcf2958540 38
isshikiyuya 0:0dbcf2958540 39 /*
isshikiyuya 0:0dbcf2958540 40 pwm11.write(0.40f);
isshikiyuya 0:0dbcf2958540 41 pwm12.write(0.10f);
isshikiyuya 0:0dbcf2958540 42 pwm21.write(0.40f);
isshikiyuya 0:0dbcf2958540 43 pwm22.write(0.10f);
isshikiyuya 0:0dbcf2958540 44 */
isshikiyuya 0:0dbcf2958540 45 //ただただモータを回すプログラム
isshikiyuya 0:0dbcf2958540 46 //43*2*12
isshikiyuya 0:0dbcf2958540 47
isshikiyuya 0:0dbcf2958540 48 if( count1 + count2 > 43*2*12){ //LEDを点滅うまくいかない気がする
isshikiyuya 0:0dbcf2958540 49 LED = 1.0f;
isshikiyuya 0:0dbcf2958540 50 wait(0.5f);
isshikiyuya 0:0dbcf2958540 51 LED = 0;
isshikiyuya 0:0dbcf2958540 52
isshikiyuya 0:0dbcf2958540 53 count1 = 0;
isshikiyuya 0:0dbcf2958540 54 count2 = 0;
isshikiyuya 0:0dbcf2958540 55 }
isshikiyuya 0:0dbcf2958540 56
isshikiyuya 0:0dbcf2958540 57 printf("%d %d \n",count1,count2);
isshikiyuya 0:0dbcf2958540 58
isshikiyuya 0:0dbcf2958540 59
isshikiyuya 0:0dbcf2958540 60
isshikiyuya 0:0dbcf2958540 61 if(in1<thr1 && in2>thr2 && in3<thr3){ //白黒白進む
isshikiyuya 0:0dbcf2958540 62 pwm11.write(0.60f);
isshikiyuya 0:0dbcf2958540 63 pwm12.write(0.30f);
isshikiyuya 0:0dbcf2958540 64 pwm21.write(0.60f);
isshikiyuya 0:0dbcf2958540 65 pwm22.write(0.30f);
isshikiyuya 0:0dbcf2958540 66 }
isshikiyuya 0:0dbcf2958540 67
isshikiyuya 0:0dbcf2958540 68 else if(in1<thr1 &&in2<thr2 && in3<thr3){ //白白白
isshikiyuya 0:0dbcf2958540 69 pwm11.write(0.10f);
isshikiyuya 0:0dbcf2958540 70 pwm12.write(0.10f);
isshikiyuya 0:0dbcf2958540 71 pwm21.write(0.10f);
isshikiyuya 0:0dbcf2958540 72 pwm22.write(0.10f);
isshikiyuya 0:0dbcf2958540 73 }
isshikiyuya 0:0dbcf2958540 74
isshikiyuya 0:0dbcf2958540 75 else if(in1>thr1 && in2<thr3 && in3<thr3){ //黒白白左回転
isshikiyuya 0:0dbcf2958540 76 pwm11.write(0.60f);
isshikiyuya 0:0dbcf2958540 77 pwm12.write(0.30f);
isshikiyuya 0:0dbcf2958540 78 pwm21.write(0.00f);
isshikiyuya 0:0dbcf2958540 79 pwm22.write(0.00f);
isshikiyuya 0:0dbcf2958540 80 }
isshikiyuya 0:0dbcf2958540 81
isshikiyuya 0:0dbcf2958540 82 else if(in1<thr1 && in2<thr2 && in3>thr3){ //白白黒右回転
isshikiyuya 0:0dbcf2958540 83 pwm11.write(0.00f);
isshikiyuya 0:0dbcf2958540 84 pwm12.write(0.00f);
isshikiyuya 0:0dbcf2958540 85 pwm21.write(0.60f);
isshikiyuya 0:0dbcf2958540 86 pwm22.write(0.30f);
isshikiyuya 0:0dbcf2958540 87 }
isshikiyuya 0:0dbcf2958540 88
isshikiyuya 0:0dbcf2958540 89
isshikiyuya 0:0dbcf2958540 90
isshikiyuya 0:0dbcf2958540 91
isshikiyuya 0:0dbcf2958540 92 }
isshikiyuya 0:0dbcf2958540 93 }