test

Dependencies:   mbed Encoder

Committer:
maxnagazumi
Date:
Mon Dec 21 09:42:00 2020 +0000
Revision:
1:acb2ca86725f
Parent:
0:3dee13ff6060
1221;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maxnagazumi 0:3dee13ff6060 1 #include "mbed.h"
maxnagazumi 0:3dee13ff6060 2 #include "EC.h"
maxnagazumi 0:3dee13ff6060 3 #define RESOLUTION 500
maxnagazumi 1:acb2ca86725f 4 #define V_ARRAY_COUNT_MAX 400
maxnagazumi 0:3dee13ff6060 5
maxnagazumi 0:3dee13ff6060 6 Serial pc(USBTX, USBRX);
maxnagazumi 0:3dee13ff6060 7 DigitalIn Button1(p15);
maxnagazumi 0:3dee13ff6060 8 DigitalIn Button2(p16);
maxnagazumi 1:acb2ca86725f 9 //DigitalOut clutch(p19);
maxnagazumi 1:acb2ca86725f 10 DigitalOut air(p20);
maxnagazumi 0:3dee13ff6060 11 PwmOut motord(p25);
maxnagazumi 0:3dee13ff6060 12 PwmOut motoru(p26);
maxnagazumi 0:3dee13ff6060 13 DigitalOut led1(LED1);
maxnagazumi 0:3dee13ff6060 14 DigitalOut led2(LED2);
maxnagazumi 0:3dee13ff6060 15 DigitalOut led3(LED3);
maxnagazumi 1:acb2ca86725f 16 DigitalOut led4(LED4);
maxnagazumi 0:3dee13ff6060 17 Ec1multi ec(p27,p28,RESOLUTION);
maxnagazumi 0:3dee13ff6060 18 Timer timer;
maxnagazumi 0:3dee13ff6060 19
maxnagazumi 0:3dee13ff6060 20
maxnagazumi 0:3dee13ff6060 21 int main() {
maxnagazumi 0:3dee13ff6060 22 motoru.period_us(50);
maxnagazumi 0:3dee13ff6060 23 Button1.mode(PullUp);
maxnagazumi 0:3dee13ff6060 24 Button2.mode(PullUp);
maxnagazumi 1:acb2ca86725f 25 //clutch=0;//on
maxnagazumi 1:acb2ca86725f 26 air=1;//off
maxnagazumi 0:3dee13ff6060 27 led1=1;
maxnagazumi 0:3dee13ff6060 28 led2=1;
maxnagazumi 0:3dee13ff6060 29 led3=1;
maxnagazumi 1:acb2ca86725f 30 led4=1;
maxnagazumi 0:3dee13ff6060 31 motoru=0;
maxnagazumi 0:3dee13ff6060 32 int motor_state=2;
maxnagazumi 1:acb2ca86725f 33 int led_state=0;
maxnagazumi 0:3dee13ff6060 34 int omega;
maxnagazumi 0:3dee13ff6060 35 int read_v_state=0;
maxnagazumi 0:3dee13ff6060 36 pc.printf("ready to fire");
maxnagazumi 0:3dee13ff6060 37 int count=ec.getCount();
maxnagazumi 0:3dee13ff6060 38 float v_array[V_ARRAY_COUNT_MAX][2];
maxnagazumi 0:3dee13ff6060 39 int v_array_count=0;
maxnagazumi 0:3dee13ff6060 40 while(1){
maxnagazumi 0:3dee13ff6060 41 //pc.printf("%d\r\n",count);//確認
maxnagazumi 0:3dee13ff6060 42 count=ec.getCount();
maxnagazumi 0:3dee13ff6060 43 omega = ec.getOmega();
maxnagazumi 0:3dee13ff6060 44 if(Button1==0){
maxnagazumi 0:3dee13ff6060 45 led1=1;
maxnagazumi 0:3dee13ff6060 46 led2=0;
maxnagazumi 1:acb2ca86725f 47 led3=0;
maxnagazumi 1:acb2ca86725f 48 led4=0;
maxnagazumi 1:acb2ca86725f 49 //clutch=0; //on
maxnagazumi 1:acb2ca86725f 50 air=0;//on
maxnagazumi 0:3dee13ff6060 51 count=0;
maxnagazumi 0:3dee13ff6060 52 motoru=0;
maxnagazumi 0:3dee13ff6060 53 motor_state=0;
maxnagazumi 0:3dee13ff6060 54 pc.printf("stop\r\n");
maxnagazumi 0:3dee13ff6060 55 }
maxnagazumi 0:3dee13ff6060 56 if(Button2==0){
maxnagazumi 0:3dee13ff6060 57 led2=1;
maxnagazumi 0:3dee13ff6060 58 led1=0;
maxnagazumi 1:acb2ca86725f 59 led3=0;
maxnagazumi 1:acb2ca86725f 60 led4=0;
maxnagazumi 0:3dee13ff6060 61 motoru=0.5;
maxnagazumi 0:3dee13ff6060 62 motor_state=1;
maxnagazumi 0:3dee13ff6060 63 pc.printf("start loading\r\n");
maxnagazumi 1:acb2ca86725f 64 }
maxnagazumi 1:acb2ca86725f 65 if (motor_state == 1)
maxnagazumi 1:acb2ca86725f 66 {
maxnagazumi 1:acb2ca86725f 67 switch (led_state)
maxnagazumi 1:acb2ca86725f 68 {
maxnagazumi 1:acb2ca86725f 69 case 0:
maxnagazumi 1:acb2ca86725f 70 led1 = 1;
maxnagazumi 1:acb2ca86725f 71 led2 = 0;
maxnagazumi 1:acb2ca86725f 72 led3 = 0;
maxnagazumi 1:acb2ca86725f 73 led4 = 0;
maxnagazumi 1:acb2ca86725f 74 break;
maxnagazumi 1:acb2ca86725f 75 case 50:
maxnagazumi 1:acb2ca86725f 76 led1 = 0;
maxnagazumi 1:acb2ca86725f 77 led2 = 1;
maxnagazumi 1:acb2ca86725f 78 led3 = 0;
maxnagazumi 1:acb2ca86725f 79 led4 = 0;
maxnagazumi 1:acb2ca86725f 80 break;
maxnagazumi 1:acb2ca86725f 81 case 100:
maxnagazumi 1:acb2ca86725f 82 led1 = 0;
maxnagazumi 1:acb2ca86725f 83 led2 = 0;
maxnagazumi 1:acb2ca86725f 84 led3 = 1;
maxnagazumi 1:acb2ca86725f 85 led4 = 0;
maxnagazumi 1:acb2ca86725f 86 break;
maxnagazumi 1:acb2ca86725f 87 case 150:
maxnagazumi 1:acb2ca86725f 88 led1 = 0;
maxnagazumi 1:acb2ca86725f 89 led2 = 0;
maxnagazumi 1:acb2ca86725f 90 led3 = 0;
maxnagazumi 1:acb2ca86725f 91 led4 = 1;
maxnagazumi 1:acb2ca86725f 92 break;
maxnagazumi 1:acb2ca86725f 93 }
maxnagazumi 1:acb2ca86725f 94 led_state++;
maxnagazumi 1:acb2ca86725f 95 if(led_state>200)led_state=0;
maxnagazumi 1:acb2ca86725f 96 }
maxnagazumi 0:3dee13ff6060 97 if (count>4500&&read_v_state==0){
maxnagazumi 0:3dee13ff6060 98 motoru=0;
maxnagazumi 0:3dee13ff6060 99 wait(3);
maxnagazumi 1:acb2ca86725f 100 //clutch=1; //off
maxnagazumi 1:acb2ca86725f 101 air=1;//off
maxnagazumi 0:3dee13ff6060 102 motor_state=0;
maxnagazumi 1:acb2ca86725f 103 led1=0;
maxnagazumi 1:acb2ca86725f 104 led2=0;
maxnagazumi 0:3dee13ff6060 105 led3=0;
maxnagazumi 1:acb2ca86725f 106 led4=0;
maxnagazumi 0:3dee13ff6060 107 pc.printf("fire\r\n");
maxnagazumi 0:3dee13ff6060 108 read_v_state=1;
maxnagazumi 0:3dee13ff6060 109 timer.reset();
maxnagazumi 0:3dee13ff6060 110 timer.start();
maxnagazumi 0:3dee13ff6060 111 }
maxnagazumi 0:3dee13ff6060 112 ec.calOmega();
maxnagazumi 1:acb2ca86725f 113 wait_ms(1);
maxnagazumi 0:3dee13ff6060 114 if (read_v_state == 1)
maxnagazumi 0:3dee13ff6060 115 {
maxnagazumi 0:3dee13ff6060 116 if (v_array_count < V_ARRAY_COUNT_MAX)
maxnagazumi 0:3dee13ff6060 117 {
maxnagazumi 1:acb2ca86725f 118 v_array[v_array_count][0] = omega * 0.01;
maxnagazumi 0:3dee13ff6060 119 v_array[v_array_count][1] = timer.read();
maxnagazumi 0:3dee13ff6060 120 v_array_count++;
maxnagazumi 0:3dee13ff6060 121 }
maxnagazumi 0:3dee13ff6060 122 else
maxnagazumi 0:3dee13ff6060 123 {
maxnagazumi 0:3dee13ff6060 124 pc.printf("time\tspeed\r\n");
maxnagazumi 0:3dee13ff6060 125 for (int j = 0; j < V_ARRAY_COUNT_MAX; j++)
maxnagazumi 0:3dee13ff6060 126 {
maxnagazumi 1:acb2ca86725f 127 pc.printf("%f\t%f\r\n", v_array[j][1],v_array[j][0]);
maxnagazumi 0:3dee13ff6060 128 }
maxnagazumi 0:3dee13ff6060 129 read_v_state = 0;
maxnagazumi 0:3dee13ff6060 130 }
maxnagazumi 0:3dee13ff6060 131 }
maxnagazumi 0:3dee13ff6060 132 }
maxnagazumi 0:3dee13ff6060 133 }