回転数計のプログラムです。
Dependencies: mbed
main.cpp@1:3778bb7e3cf9, 2017-01-07 (annotated)
- Committer:
- YusukeWakuta
- Date:
- Sat Jan 07 07:20:50 2017 +0000
- Revision:
- 1:3778bb7e3cf9
- Parent:
- 0:81114af7e3d0
????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YusukeWakuta | 0:81114af7e3d0 | 1 | #include "mbed.h" |
YusukeWakuta | 0:81114af7e3d0 | 2 | #define SLIT_NUM 70 |
YusukeWakuta | 0:81114af7e3d0 | 3 | #define COUNT_NUM 10 |
YusukeWakuta | 0:81114af7e3d0 | 4 | |
YusukeWakuta | 0:81114af7e3d0 | 5 | Timer timer; |
YusukeWakuta | 0:81114af7e3d0 | 6 | PwmOut pwm(p21); |
YusukeWakuta | 0:81114af7e3d0 | 7 | InterruptIn Photo_int(p30); |
YusukeWakuta | 0:81114af7e3d0 | 8 | |
YusukeWakuta | 0:81114af7e3d0 | 9 | int counter = 0; |
YusukeWakuta | 0:81114af7e3d0 | 10 | int Cadence = 0; |
YusukeWakuta | 0:81114af7e3d0 | 11 | int beforetime = 0; |
YusukeWakuta | 0:81114af7e3d0 | 12 | int temp_time = 0; |
YusukeWakuta | 0:81114af7e3d0 | 13 | |
YusukeWakuta | 0:81114af7e3d0 | 14 | double calcPulse(int deg) |
YusukeWakuta | 0:81114af7e3d0 | 15 | { |
YusukeWakuta | 0:81114af7e3d0 | 16 | return (0.00093+(deg/180.0)*(0.00235-0.00077)); |
YusukeWakuta | 0:81114af7e3d0 | 17 | } |
YusukeWakuta | 0:81114af7e3d0 | 18 | |
YusukeWakuta | 0:81114af7e3d0 | 19 | void servo(int d) |
YusukeWakuta | 0:81114af7e3d0 | 20 | { |
YusukeWakuta | 0:81114af7e3d0 | 21 | if(d < 70) |
YusukeWakuta | 0:81114af7e3d0 | 22 | pwm.pulsewidth_us(0); |
YusukeWakuta | 0:81114af7e3d0 | 23 | if(d > 110) |
YusukeWakuta | 0:81114af7e3d0 | 24 | pwm.pulsewidth_us(180); |
YusukeWakuta | 0:81114af7e3d0 | 25 | else |
YusukeWakuta | 0:81114af7e3d0 | 26 | pwm.pulsewidth_us((d - 70) * (180 / 40)); |
YusukeWakuta | 0:81114af7e3d0 | 27 | |
YusukeWakuta | 0:81114af7e3d0 | 28 | |
YusukeWakuta | 0:81114af7e3d0 | 29 | } |
YusukeWakuta | 0:81114af7e3d0 | 30 | void Photo() { |
YusukeWakuta | 0:81114af7e3d0 | 31 | counter++; |
YusukeWakuta | 0:81114af7e3d0 | 32 | } |
YusukeWakuta | 0:81114af7e3d0 | 33 | |
YusukeWakuta | 0:81114af7e3d0 | 34 | int main() { |
YusukeWakuta | 1:3778bb7e3cf9 | 35 | Photo_int.fall(Photo); |
YusukeWakuta | 0:81114af7e3d0 | 36 | timer.start(); |
YusukeWakuta | 0:81114af7e3d0 | 37 | while(1) { |
YusukeWakuta | 0:81114af7e3d0 | 38 | if(counter >= COUNT_NUM) { |
YusukeWakuta | 0:81114af7e3d0 | 39 | temp_time = timer.read_ms(); |
YusukeWakuta | 0:81114af7e3d0 | 40 | Cadence = (60 / ((SLIT_NUM / COUNT_NUM) * (temp_time) - beforetime)) * COUNT_NUM; |
YusukeWakuta | 0:81114af7e3d0 | 41 | beforetime = temp_time; |
YusukeWakuta | 0:81114af7e3d0 | 42 | counter = 0; |
YusukeWakuta | 0:81114af7e3d0 | 43 | |
YusukeWakuta | 0:81114af7e3d0 | 44 | } |
YusukeWakuta | 1:3778bb7e3cf9 | 45 | servo(Cadence); |
YusukeWakuta | 0:81114af7e3d0 | 46 | } |
YusukeWakuta | 1:3778bb7e3cf9 | 47 | |
YusukeWakuta | 0:81114af7e3d0 | 48 | |
YusukeWakuta | 0:81114af7e3d0 | 49 | } |