現在値を取得できるライブラリ

Committer:
m_smt
Date:
Wed Aug 24 06:50:01 2022 +0000
Revision:
0:e05a40ae7bec
nowvalue get

Who changed what in which revision?

UserRevisionLine numberNew contents of line
m_smt 0:e05a40ae7bec 1 #ifndef ROTARY_INC_
m_smt 0:e05a40ae7bec 2 #define ROTARY_INC_
m_smt 0:e05a40ae7bec 3 #include <mbed.h>
m_smt 0:e05a40ae7bec 4 #define M_PI 3.1415926535
m_smt 0:e05a40ae7bec 5
m_smt 0:e05a40ae7bec 6 #if 0
m_smt 0:e05a40ae7bec 7 ~example~
m_smt 0:e05a40ae7bec 8 rotaryinc name(ピン名1,ピン名2,オムニの直径,パルスの分解能,一回のプログラムの時間(Δt))でこのクラスを使うことができる
m_smt 0:e05a40ae7bec 9 name.getpulse()でパルスの値を取得できる
m_smt 0:e05a40ae7bec 10 name.getspeed()でモータの速さを取得できる
m_smt 0:e05a40ae7bec 11   name.loop(一回のプログラムの時間(Δt))でΔt秒ごとのプログラムにできる
m_smt 0:e05a40ae7bec 12 #endif
m_smt 0:e05a40ae7bec 13
m_smt 0:e05a40ae7bec 14 class rotaryinc
m_smt 0:e05a40ae7bec 15 {
m_smt 0:e05a40ae7bec 16 public:
m_smt 0:e05a40ae7bec 17 rotaryinc(PinName pinA,PinName pinB,double,double,double);
m_smt 0:e05a40ae7bec 18 ~rotaryinc();
m_smt 0:e05a40ae7bec 19 Timer timer;
m_smt 0:e05a40ae7bec 20 double getpulse();
m_smt 0:e05a40ae7bec 21 double getspeed();
m_smt 0:e05a40ae7bec 22 double gettheta();
m_smt 0:e05a40ae7bec 23 double getomega();
m_smt 0:e05a40ae7bec 24 double getrevolution();
m_smt 0:e05a40ae7bec 25 void loop();
m_smt 0:e05a40ae7bec 26 private:
m_smt 0:e05a40ae7bec 27 InterruptIn *pin_a_,*pin_b_;
m_smt 0:e05a40ae7bec 28 double time;
m_smt 0:e05a40ae7bec 29 double pulse[2];
m_smt 0:e05a40ae7bec 30 double speed;
m_smt 0:e05a40ae7bec 31 void init(PinName,PinName);
m_smt 0:e05a40ae7bec 32 void riseA(void);
m_smt 0:e05a40ae7bec 33 void riseB(void);
m_smt 0:e05a40ae7bec 34 void fallA(void);
m_smt 0:e05a40ae7bec 35 void fallB(void);
m_smt 0:e05a40ae7bec 36 double theta[2];
m_smt 0:e05a40ae7bec 37 double omega;
m_smt 0:e05a40ae7bec 38 double Resolution;
m_smt 0:e05a40ae7bec 39 double Diameter;
m_smt 0:e05a40ae7bec 40 double dt_;
m_smt 0:e05a40ae7bec 41 double revolution_num;
m_smt 0:e05a40ae7bec 42 };
m_smt 0:e05a40ae7bec 43
m_smt 0:e05a40ae7bec 44 #endif