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.
main.cpp@1:752025c69f32, 2018-11-24 (annotated)
- Committer:
- isshikiyuya
- Date:
- Sat Nov 24 17:57:44 2018 +0000
- Revision:
- 1:752025c69f32
- Parent:
- 0:0dbcf2958540
a
Who changed what in which revision?
User | Revision | Line number | New 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 | } |