2021 NHK B

Committer:
piroro4560
Date:
Fri Oct 29 23:22:34 2021 +0000
Revision:
10:30d3eb684016
Parent:
9:252dd0bc8f93

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ikarashikota 0:2b253298d427 1 #include "ikarashiSV.h"
ikarashikota 0:2b253298d427 2
ikarashikota 0:2b253298d427 3 ikarashiSV::ikarashiSV(PinName pin_a,PinName pin_b,PinName pin_c,PinName pin_d):
ikarashikota 0:2b253298d427 4 port_a(pin_a), port_b(pin_b), port_c(pin_c), port_d(pin_d)
ikarashikota 0:2b253298d427 5 {
ikarashikota 0:2b253298d427 6 state = 0;
ikarashikota 0:2b253298d427 7 solenoid_status = 0;
ikarashikota 0:2b253298d427 8 }
ikarashikota 0:2b253298d427 9
ikarashikota 0:2b253298d427 10 void ikarashiSV::add_state()
ikarashikota 0:2b253298d427 11 {
ikarashikota 0:2b253298d427 12 state++;
ikarashikota 0:2b253298d427 13 }
ikarashikota 0:2b253298d427 14
ikarashikota 0:2b253298d427 15 void ikarashiSV::solenoid(int _state)
ikarashikota 0:2b253298d427 16 {
ikarashikota 0:2b253298d427 17 switch(_state) {
ikarashikota 0:2b253298d427 18 case 1:
ikarashikota 4:6d421db6e727 19 //投げる
ikarashikota 3:1fc2008f3a07 20 port_a = 0;
ikarashikota 3:1fc2008f3a07 21 port_b = 1;
ikarashikota 3:1fc2008f3a07 22 port_c = 0;
ikarashikota 3:1fc2008f3a07 23 port_d = 1;
ikarashikota 6:256162828e87 24 solenoid_status = 1;
ikarashikota 0:2b253298d427 25 break;
ikarashikota 4:6d421db6e727 26 case 2:
ikarashikota 0:2b253298d427 27 //戻る
ikarashikota 3:1fc2008f3a07 28 port_c = 1;
ikarashikota 3:1fc2008f3a07 29 port_d = 0;
ikarashikota 3:1fc2008f3a07 30 port_a = 1;
ikarashikota 3:1fc2008f3a07 31 port_b = 0;
ikarashikota 6:256162828e87 32 solenoid_status = 2;
ikarashikota 0:2b253298d427 33 break;
ikarashikota 4:6d421db6e727 34 case 0://禅開放
piroro4560 10:30d3eb684016 35 port_a = 1;
piroro4560 10:30d3eb684016 36 port_b = 0;
ikarashikota 4:6d421db6e727 37 port_c = 0;
ikarashikota 4:6d421db6e727 38 port_d = 1;
ikarashikota 6:256162828e87 39 solenoid_status = 0;
ikarashikota 4:6d421db6e727 40 break;
ikarashikota 0:2b253298d427 41 }
ikarashikota 0:2b253298d427 42 }
ikarashikota 0:2b253298d427 43
ikarashikota 0:2b253298d427 44 void ikarashiSV::solenoid_show()
ikarashikota 0:2b253298d427 45 {
ikarashikota 0:2b253298d427 46 switch(solenoid_status) {
ikarashikota 0:2b253298d427 47 case 1:
ikarashikota 8:f276fe03c43d 48 printf("1:push\t");
ikarashikota 0:2b253298d427 49 break;
ikarashikota 0:2b253298d427 50 case 2:
ikarashikota 8:f276fe03c43d 51 printf("1:pull\t");
ikarashikota 0:2b253298d427 52 break;
ikarashikota 0:2b253298d427 53 case 0:
ikarashikota 8:f276fe03c43d 54 printf("1:open\t");
ikarashikota 0:2b253298d427 55 break;
ikarashikota 0:2b253298d427 56 }
ikarashikota 0:2b253298d427 57 }
ikarashikota 0:2b253298d427 58
ikarashikota 0:2b253298d427 59 int ikarashiSV::state_show()
ikarashikota 0:2b253298d427 60 {
ikarashikota 0:2b253298d427 61 return state;
ikarashikota 0:2b253298d427 62 }
ikarashikota 0:2b253298d427 63
ikarashikota 7:58da8ee2b38d 64
ikarashikota 7:58da8ee2b38d 65 ikarashiSV2::ikarashiSV2(PinName pin_e, PinName pin_f):
ikarashikota 7:58da8ee2b38d 66 port_e(pin_e),port_f(pin_f)
ikarashikota 7:58da8ee2b38d 67 {
ikarashikota 7:58da8ee2b38d 68 solenoid_status2 = 0;
ikarashikota 7:58da8ee2b38d 69 }
ikarashikota 7:58da8ee2b38d 70
ikarashikota 7:58da8ee2b38d 71 void ikarashiSV2::solenoid(int _state2)
ikarashikota 7:58da8ee2b38d 72 {
ikarashikota 7:58da8ee2b38d 73 switch(_state2) {
ikarashikota 9:252dd0bc8f93 74 case 1://push
ikarashikota 7:58da8ee2b38d 75 port_e = 0;
ikarashikota 7:58da8ee2b38d 76 port_f = 1;
ikarashikota 7:58da8ee2b38d 77 solenoid_status2 = 1;
ikarashikota 7:58da8ee2b38d 78 break;
ikarashikota 9:252dd0bc8f93 79 case 0://pull
ikarashikota 7:58da8ee2b38d 80 port_e = 1;
ikarashikota 7:58da8ee2b38d 81 port_f = 0;
ikarashikota 7:58da8ee2b38d 82 solenoid_status2 = 0;
ikarashikota 7:58da8ee2b38d 83 break;
ikarashikota 7:58da8ee2b38d 84 }
ikarashikota 7:58da8ee2b38d 85 }
ikarashikota 7:58da8ee2b38d 86
ikarashikota 7:58da8ee2b38d 87 void ikarashiSV2::solenoid_show()
ikarashikota 7:58da8ee2b38d 88 {
ikarashikota 7:58da8ee2b38d 89 if(solenoid_status2) {
ikarashikota 8:f276fe03c43d 90 printf("2:push\t");
ikarashikota 7:58da8ee2b38d 91 } else {
ikarashikota 8:f276fe03c43d 92 printf("2:pull\t");
ikarashikota 7:58da8ee2b38d 93 }
ikarashikota 7:58da8ee2b38d 94 }
ikarashikota 7:58da8ee2b38d 95
ikarashikota 0:2b253298d427 96 /* サンプルコード
ikarashikota 0:2b253298d427 97
ikarashikota 0:2b253298d427 98 #include "mbed.h"
ikarashikota 0:2b253298d427 99 #include "ikarashiSV.h"
ikarashikota 0:2b253298d427 100
ikarashikota 9:252dd0bc8f93 101 DigitalOut led1(LED1);
ikarashikota 0:2b253298d427 102 Serial pc(USBTX, USBRX,115200);
ikarashikota 0:2b253298d427 103
ikarashikota 9:252dd0bc8f93 104 ikarashiSV slv1(PB_5,PB_4,PB_10,PA_5);
ikarashikota 9:252dd0bc8f93 105 ikarashiSV2 slv2(PB_9,PB_8);
ikarashikota 9:252dd0bc8f93 106 Servo servo(PB_14);
ikarashikota 9:252dd0bc8f93 107 Ticker timer;
ikarashikota 0:2b253298d427 108
ikarashikota 1:696f7c0ab1bd 109 //ボタンを押したときor離したときを読み取る定義の仕方
ikarashikota 0:2b253298d427 110 InterruptIn button(USER_BUTTON);
ikarashikota 0:2b253298d427 111
ikarashikota 9:252dd0bc8f93 112 int check = 0;
ikarashikota 9:252dd0bc8f93 113
ikarashikota 0:2b253298d427 114 void add()
ikarashikota 0:2b253298d427 115 {
ikarashikota 9:252dd0bc8f93 116 if(check >= 1) {
ikarashikota 9:252dd0bc8f93 117 slv1.add_state();
ikarashikota 9:252dd0bc8f93 118 }
ikarashikota 9:252dd0bc8f93 119 check++;
ikarashikota 0:2b253298d427 120 }
ikarashikota 0:2b253298d427 121
ikarashikota 0:2b253298d427 122 int main()
ikarashikota 0:2b253298d427 123 {
ikarashikota 0:2b253298d427 124 int val;
ikarashikota 9:252dd0bc8f93 125 timer.attach(&add, 2);
ikarashikota 0:2b253298d427 126 while(1) {
ikarashikota 9:252dd0bc8f93 127 val = slv1.state_show();
ikarashikota 9:252dd0bc8f93 128 pc.printf("state : %d",val);
ikarashikota 9:252dd0bc8f93 129 pc.printf("\tservo : %0.2f\t",servo.read());
ikarashikota 9:252dd0bc8f93 130 slv1.solenoid_show();
ikarashikota 9:252dd0bc8f93 131 slv2.solenoid_show();
ikarashikota 9:252dd0bc8f93 132 printf("\n\r");
ikarashikota 9:252dd0bc8f93 133 slv1.solenoid(val%3);
ikarashikota 9:252dd0bc8f93 134 slv2.solenoid(val%2);
ikarashikota 0:2b253298d427 135 }
ikarashikota 0:2b253298d427 136 }
ikarashikota 0:2b253298d427 137
ikarashikota 0:2b253298d427 138 */