kikaikou_ibunshi / Mbed 2 deprecated 5_4

Dependencies:   mbed

Committer:
komachiangel72
Date:
Wed Oct 30 06:30:25 2019 +0000
Revision:
0:498f26548905
agemasu

Who changed what in which revision?

UserRevisionLine numberNew 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 }