走行1回目デフォルト 走行2回目記憶走行
Dependencies: mbed AQM0802 CRotaryEncoder TB6612FNG
main.cpp@2:a28ca7c25ed1, 2019-08-26 (annotated)
- Committer:
- yusaku0125
- Date:
- Mon Aug 26 04:57:20 2019 +0000
- Revision:
- 2:a28ca7c25ed1
- Parent:
- 1:19e2241a7aa7
- Child:
- 3:e455433c8cae
test;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yusaku0125 | 0:df99e50ed3fd | 1 | //エンコーダの動作確認。 |
yusaku0125 | 0:df99e50ed3fd | 2 | //左右モータの回転数を検出するプログラム |
yusaku0125 | 0:df99e50ed3fd | 3 | #include "mbed.h" |
yusaku0125 | 0:df99e50ed3fd | 4 | #include "CRotaryEncoder.h" |
yusaku0125 | 0:df99e50ed3fd | 5 | |
yusaku0125 | 1:19e2241a7aa7 | 6 | #define PULSE_TO_UM 10 //エンコーダ1パルス当たりのタイヤ移動距離[um] |
yusaku0125 | 1:19e2241a7aa7 | 7 | //実測で値を調整する。 |
yusaku0125 | 1:19e2241a7aa7 | 8 | |
yusaku0125 | 1:19e2241a7aa7 | 9 | |
yusaku0125 | 0:df99e50ed3fd | 10 | Serial PC(USBTX,USBRX); |
yusaku0125 | 0:df99e50ed3fd | 11 | CRotaryEncoder encoder_a(D1,D0); //モータAのエンコーダ |
yusaku0125 | 0:df99e50ed3fd | 12 | CRotaryEncoder encoder_b(D11,D12); //モータBのエンコーダ |
yusaku0125 | 0:df99e50ed3fd | 13 | |
yusaku0125 | 0:df99e50ed3fd | 14 | |
yusaku0125 | 0:df99e50ed3fd | 15 | int main(){ |
yusaku0125 | 0:df99e50ed3fd | 16 | int enc_count_a=0,enc_count_b=0; //エンコーダパルス数を格納 |
yusaku0125 | 1:19e2241a7aa7 | 17 | int distance_a=0,distance_b=0; //タイヤ移動距離を格納[mm] |
yusaku0125 | 0:df99e50ed3fd | 18 | while(1) |
yusaku0125 | 0:df99e50ed3fd | 19 | { |
yusaku0125 | 0:df99e50ed3fd | 20 | enc_count_a=encoder_a.Get(); //エンコーダパルス数を取得 |
yusaku0125 | 2:a28ca7c25ed1 | 21 | enc_count_b=-encoder_b.Get(); |
yusaku0125 | 1:19e2241a7aa7 | 22 | distance_a=(enc_count_a*PULSE_TO_UM)/1000; //移動距離をmm単位で格納 |
yusaku0125 | 1:19e2241a7aa7 | 23 | distance_b=(enc_count_b*PULSE_TO_UM)/1000; |
yusaku0125 | 1:19e2241a7aa7 | 24 | PC.printf("dis_a:%d dis_b:%d\r\n",distance_a,distance_b);//表示 |
yusaku0125 | 0:df99e50ed3fd | 25 | wait(0.5); |
yusaku0125 | 0:df99e50ed3fd | 26 | } |
yusaku0125 | 0:df99e50ed3fd | 27 | } |