2021 NHK B

Committer:
ikarashikota
Date:
Sat Oct 23 03:44:50 2021 +0000
Revision:
9:252dd0bc8f93
Parent:
8:f276fe03c43d
Child:
10:30d3eb684016
add doxygen

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