Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@0:498f26548905, 2019-10-30 (annotated)
- Committer:
- komachiangel72
- Date:
- Wed Oct 30 06:30:25 2019 +0000
- Revision:
- 0:498f26548905
agemasu
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| komachiangel72 | 0:498f26548905 | 1 | #include "mbed.h" |
| komachiangel72 | 0:498f26548905 | 2 | |
| komachiangel72 | 0:498f26548905 | 3 | //モータードライバー+回転数計測プログラム |
| komachiangel72 | 0:498f26548905 | 4 | |
| komachiangel72 | 0:498f26548905 | 5 | InterruptIn enc(A5); |
| komachiangel72 | 0:498f26548905 | 6 | DigitalOut led(LED1); |
| komachiangel72 | 0:498f26548905 | 7 | |
| komachiangel72 | 0:498f26548905 | 8 | int counter =0; |
| komachiangel72 | 0:498f26548905 | 9 | |
| komachiangel72 | 0:498f26548905 | 10 | void event_handler(void){ |
| komachiangel72 | 0:498f26548905 | 11 | counter++; |
| komachiangel72 | 0:498f26548905 | 12 | led =!led; |
| komachiangel72 | 0:498f26548905 | 13 | } |
| komachiangel72 | 0:498f26548905 | 14 | |
| komachiangel72 | 0:498f26548905 | 15 | |
| komachiangel72 | 0:498f26548905 | 16 | PwmOut AIN1(A1); |
| komachiangel72 | 0:498f26548905 | 17 | PwmOut AIN2(A2); |
| komachiangel72 | 0:498f26548905 | 18 | |
| komachiangel72 | 0:498f26548905 | 19 | void motorStop(PwmOut IN1,PwmOut IN2) { |
| komachiangel72 | 0:498f26548905 | 20 | IN1 = 1; |
| komachiangel72 | 0:498f26548905 | 21 | IN2 = 1; |
| komachiangel72 | 0:498f26548905 | 22 | } |
| komachiangel72 | 0:498f26548905 | 23 | |
| komachiangel72 | 0:498f26548905 | 24 | void motorForward(PwmOut IN1,PwmOut IN2,float duty) { |
| komachiangel72 | 0:498f26548905 | 25 | motorStop(IN1,IN2); |
| komachiangel72 | 0:498f26548905 | 26 | IN1 = duty; |
| komachiangel72 | 0:498f26548905 | 27 | IN2 = 0; |
| komachiangel72 | 0:498f26548905 | 28 | } |
| komachiangel72 | 0:498f26548905 | 29 | |
| komachiangel72 | 0:498f26548905 | 30 | void motorReverse(PwmOut IN1,PwmOut IN2,float duty) { |
| komachiangel72 | 0:498f26548905 | 31 | motorStop(IN1,IN2); |
| komachiangel72 | 0:498f26548905 | 32 | IN1 = 0; |
| komachiangel72 | 0:498f26548905 | 33 | IN2 = duty; |
| komachiangel72 | 0:498f26548905 | 34 | } |
| komachiangel72 | 0:498f26548905 | 35 | |
| komachiangel72 | 0:498f26548905 | 36 | |
| komachiangel72 | 0:498f26548905 | 37 | int main() { |
| komachiangel72 | 0:498f26548905 | 38 | |
| komachiangel72 | 0:498f26548905 | 39 | while(1) { |
| komachiangel72 | 0:498f26548905 | 40 | enc.rise(&event_handler); |
| komachiangel72 | 0:498f26548905 | 41 | enc.fall(&event_handler); |
| komachiangel72 | 0:498f26548905 | 42 | |
| komachiangel72 | 0:498f26548905 | 43 | for(float duty=1.0 ; duty>0 ;duty-=0.1){ |
| komachiangel72 | 0:498f26548905 | 44 | |
| komachiangel72 | 0:498f26548905 | 45 | motorForward(AIN1,AIN2,duty); |
| komachiangel72 | 0:498f26548905 | 46 | printf("\nduty:%f\n",duty); |
| komachiangel72 | 0:498f26548905 | 47 | wait(5); |
| komachiangel72 | 0:498f26548905 | 48 | counter = 0; |
| komachiangel72 | 0:498f26548905 | 49 | wait(1); |
| komachiangel72 | 0:498f26548905 | 50 | printf("%d\n",counter/24); |
| komachiangel72 | 0:498f26548905 | 51 | motorStop(AIN1,AIN2); |
| komachiangel72 | 0:498f26548905 | 52 | wait(1); |
| komachiangel72 | 0:498f26548905 | 53 | } |
| komachiangel72 | 0:498f26548905 | 54 | |
| komachiangel72 | 0:498f26548905 | 55 | for(float duty=1.0 ; duty>0 ;duty-=0.1){ |
| komachiangel72 | 0:498f26548905 | 56 | |
| komachiangel72 | 0:498f26548905 | 57 | motorReverse(AIN1,AIN2,duty); |
| komachiangel72 | 0:498f26548905 | 58 | printf("\nduty:%f\n",duty); |
| komachiangel72 | 0:498f26548905 | 59 | wait(5); |
| komachiangel72 | 0:498f26548905 | 60 | counter = 0; |
| komachiangel72 | 0:498f26548905 | 61 | wait(1); |
| komachiangel72 | 0:498f26548905 | 62 | printf("%d\n",counter/24);//スリットが12個、0から1までで一回1から0までで一回計測するので12の二倍 |
| komachiangel72 | 0:498f26548905 | 63 | motorStop(AIN1,AIN2); |
| komachiangel72 | 0:498f26548905 | 64 | wait(1); |
| komachiangel72 | 0:498f26548905 | 65 | } |
| komachiangel72 | 0:498f26548905 | 66 | |
| komachiangel72 | 0:498f26548905 | 67 | } |
| komachiangel72 | 0:498f26548905 | 68 | } |