![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
タイマ割り込みを用いたライントレース。 割り込み処理内でI2Cを使用することができないので、 LCD,ジャイロ関連のプログラムは省略。
Dependencies: mbed i2c_gyro_mpu_6050 AQM0802 TB6612FNG
Diff: main.cpp
- Revision:
- 0:7767f80cd27b
- Child:
- 1:b71b5722e3a1
diff -r 000000000000 -r 7767f80cd27b main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Jul 20 13:54:51 2019 +0000 @@ -0,0 +1,35 @@ +//モータドライバTB6612動作検証用のサンプルプログラム +//TB6612クラスを使用して、モータA,モータBのオブジェクトを生成する。 +//生成時のピン割当はマイコンピン割当通りに配置すること。(サンプルは適当に割りつけている。) +#include "mbed.h" +#include "TB6612.h" +AnalogIn ain(A0); //モータ速度制御用アナログピン +TB6612 motor_a(D2,D3,D4); //モータA制御用(pwma,ain1,ain2) +TB6612 motor_b(D5,D6,D7); //モータB制御用(pwmb,bin1,bin2) +Serial pc(USBTX,USBRX); //USBシリアル通信用 + +int main() { + float motor_speed; //モータスピード情報格納用 + char input_data; //キーボード入力情報格納用 + while(1) { + input_data=pc.getc(); //キーボード入力情報取得 + motor_speed=ain.read(); //モータスピード情報取得 + switch(input_data){ + case '1': motor_a=motor_speed; //モータA正転 + break; + case '2': motor_a=0; //モータAブレーキ + break; + case '3': motor_a=-motor_speed; //モータA逆転 + break; + case '7': motor_b=motor_speed; //モータB正転 + break; + case '8': motor_b=0; //モータBブレーキ + break; + case '9': motor_b=-motor_speed; //モータB正転 + break; + default : motor_a=0; + motor_b=0; //両方モータブレーキ + break; + } + } +}