first

Dependencies:   Motordriver mbed

Committer:
a1503yi
Date:
Thu Aug 04 16:39:05 2016 +0000
Revision:
1:30d2ed68c9f6
Parent:
0:86c24595c963
Child:
2:e8e1041179b9
second

Who changed what in which revision?

UserRevisionLine numberNew contents of line
a1503yi 1:30d2ed68c9f6 1 //#include "motordriver.h"
a1503yi 1:30d2ed68c9f6 2 #include "mbed.h"
a1503yi 0:86c24595c963 3 //#include <string>
a1503yi 0:86c24595c963 4
a1503yi 0:86c24595c963 5 // --- SpeedCntrPWM ---
a1503yi 0:86c24595c963 6 PwmOut speed_in1(p22) ; // IN1への出力
a1503yi 0:86c24595c963 7 PwmOut speed_in2(p23) ; // IN2への出力
a1503yi 0:86c24595c963 8 Ticker min ; // 一定時間ごとに関数を呼ぶ割込み処理用オブジェクト
a1503yi 0:86c24595c963 9 Serial pc(USBTX, USBRX); // tx, rx
a1503yi 0:86c24595c963 10 Serial gps(p28,p27);
a1503yi 0:86c24595c963 11
a1503yi 0:86c24595c963 12 int cnt = 0;
a1503yi 0:86c24595c963 13 int rpm = 0;
a1503yi 0:86c24595c963 14 bool flag = false;
a1503yi 0:86c24595c963 15
a1503yi 0:86c24595c963 16
a1503yi 0:86c24595c963 17 // 回転数の表示を更新する関数
a1503yi 0:86c24595c963 18 void measure()
a1503yi 0:86c24595c963 19 {
a1503yi 0:86c24595c963 20 rpm = cnt * 5 ; // rpm = cnt * ( 60秒 / 3秒 ) / 4回
a1503yi 0:86c24595c963 21 flag = true;
a1503yi 0:86c24595c963 22 cnt = 0;
a1503yi 0:86c24595c963 23 }
a1503yi 0:86c24595c963 24 int main() {
a1503yi 0:86c24595c963 25
a1503yi 0:86c24595c963 26 wait(3);
a1503yi 0:86c24595c963 27
a1503yi 0:86c24595c963 28 //myled1 = 1;
a1503yi 0:86c24595c963 29 //myled2 = 0;
a1503yi 0:86c24595c963 30
a1503yi 0:86c24595c963 31 char buff[255];
a1503yi 0:86c24595c963 32 unsigned int c;
a1503yi 0:86c24595c963 33
a1503yi 0:86c24595c963 34 float sp1, sp2;
a1503yi 0:86c24595c963 35 //lcd.cls();
a1503yi 0:86c24595c963 36 // Pwm の周期を100[mS]に設定
a1503yi 0:86c24595c963 37 speed_in1.period(0.1) ;
a1503yi 0:86c24595c963 38 speed_in2.period(0.1) ;
a1503yi 0:86c24595c963 39
a1503yi 0:86c24595c963 40
a1503yi 0:86c24595c963 41 // 3秒ごとにmeasure関数を呼ぶ
a1503yi 0:86c24595c963 42 min.attach(&measure ,3.0) ;
a1503yi 0:86c24595c963 43
a1503yi 0:86c24595c963 44 while(1) {
a1503yi 0:86c24595c963 45
a1503yi 0:86c24595c963 46
a1503yi 0:86c24595c963 47 sp1 = 1.0f; // IN1のデューティ比 100%にする
a1503yi 0:86c24595c963 48 sp2 = 0.0f;
a1503yi 0:86c24595c963 49 //lcd.locate(0,0);
a1503yi 0:86c24595c963 50 //lcd.printf("High Speed");
a1503yi 0:86c24595c963 51
a1503yi 0:86c24595c963 52 speed_in1.write(sp1) ; // デューティ比の設定
a1503yi 0:86c24595c963 53 speed_in2.write(sp2) ;
a1503yi 0:86c24595c963 54 wait(2);
a1503yi 0:86c24595c963 55 sp1 = 0.0f;
a1503yi 0:86c24595c963 56 sp2 = 1.0f; // IN1のデューティ比 100%にする
a1503yi 0:86c24595c963 57 speed_in1.write(sp1) ; // デューティ比の設定(逆回転)
a1503yi 0:86c24595c963 58 speed_in2.write(sp2) ;
a1503yi 0:86c24595c963 59 wait(2);
a1503yi 0:86c24595c963 60 //if ( flag == true ){ // 3秒ごとに表示を更新する
a1503yi 0:86c24595c963 61 //lcd.locate(0,1);
a1503yi 0:86c24595c963 62 //lcd.printf("rpm [%4d]",rpm) ;
a1503yi 0:86c24595c963 63 // flag = false;
a1503yi 0:86c24595c963 64 //}
a1503yi 0:86c24595c963 65
a1503yi 0:86c24595c963 66 }
a1503yi 0:86c24595c963 67 }