NHK2021_ikarashiSolenoidValve
Dependents: NHK2021_ikarashiSV_code NHK2021_ikarashiSV_code_withservo 2021NHK_B_syudo
ikarashiSV.cpp
- Committer:
- ikarashikota
- Date:
- 2021-10-11
- Revision:
- 0:2b253298d427
- Child:
- 1:696f7c0ab1bd
- Child:
- 2:d08346d0178a
File content as of revision 0:2b253298d427:
#include "ikarashiSV.h" ikarashiSV::ikarashiSV(PinName pin_a,PinName pin_b,PinName pin_c,PinName pin_d): port_a(pin_a), port_b(pin_b), port_c(pin_c), port_d(pin_d) { state = 0; solenoid_status = 0; } void ikarashiSV::add_state() { state++; } void ikarashiSV::solenoid(int _state) { switch(_state) { case 1: //下だけ上がる port_a = 0; port_b = 1; solenoid_status = 1; break; case 2: //投げる port_c = 1; port_d = 0; solenoid_status = 2; break; case 0: //戻る port_c = 0; port_d = 1; wait(0.3); port_a = 1; port_b = 0; solenoid_status = 0; break; } } void ikarashiSV::solenoid_show() { switch(solenoid_status) { case 1: printf("1:push\n\r"); break; case 2: printf("\t2:push\n\r"); break; case 0: printf("1:pull 2:pull\n\r"); break; } } int ikarashiSV::state_show() { return state; } /* サンプルコード #include "mbed.h" #include "ikarashiSV.h" Serial pc(USBTX, USBRX,115200); ikarashiSV slv(PB_1,PB_2,PB_15,PB_14); ボタンを押したときor離したときを読み取る定義の仕方 InterruptIn button(USER_BUTTON); void add() { slv.add_state(); } int main() { int val; while(1) { button.fall(&add); val = slv.state_show(); pc.printf("\t\tstate : %d",val); if(val >= 1) { slv.solenoid(val%3); } slv.solenoid_show(); } } */