2021 NHK B
ikarashiSV.cpp@10:30d3eb684016, 2021-10-29 (annotated)
- Committer:
- piroro4560
- Date:
- Fri Oct 29 23:22:34 2021 +0000
- Revision:
- 10:30d3eb684016
- Parent:
- 9:252dd0bc8f93
Who changed what in which revision?
User | Revision | Line number | New 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 | */ |