一応使える。
Dependents: Nucleo_NHK_2018_syudo_wheel 2018NHK_gaku_ver2
solenoid_valve.cpp@2:99e83aef9ce8, 2018-10-12 (annotated)
- Committer:
- tanabe2000
- Date:
- Fri Oct 12 04:37:18 2018 +0000
- Revision:
- 2:99e83aef9ce8
- Parent:
- 0:6e88ed4239ec
???????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tanabe2000 | 0:6e88ed4239ec | 1 | #include "solenoid_valve.h" |
tanabe2000 | 0:6e88ed4239ec | 2 | |
tanabe2000 | 2:99e83aef9ce8 | 3 | PortValve::PortValve(PinName digitalPin1, PinName digitalPin2): |
tanabe2000 | 0:6e88ed4239ec | 4 | angle1(digitalPin1), |
tanabe2000 | 0:6e88ed4239ec | 5 | angle2(digitalPin2) |
tanabe2000 | 0:6e88ed4239ec | 6 | { |
tanabe2000 | 0:6e88ed4239ec | 7 | valvetTime.start(); |
tanabe2000 | 0:6e88ed4239ec | 8 | valveDt = 0.0; |
tanabe2000 | 0:6e88ed4239ec | 9 | } |
tanabe2000 | 0:6e88ed4239ec | 10 | |
tanabe2000 | 2:99e83aef9ce8 | 11 | void PortValve::inputState(int state) |
tanabe2000 | 0:6e88ed4239ec | 12 | { |
tanabe2000 | 0:6e88ed4239ec | 13 | valveDt = valvetTime.read(); |
tanabe2000 | 0:6e88ed4239ec | 14 | if(((int)state==0)&&(airStatus == 1)) airStatus=1; |
tanabe2000 | 0:6e88ed4239ec | 15 | if(((int)state==1)&&(airStatus == 0)) airStatus=0; |
tanabe2000 | 0:6e88ed4239ec | 16 | if(((int)state==1) && (airStatus==0)) { |
tanabe2000 | 0:6e88ed4239ec | 17 | angle1=0; |
tanabe2000 | 0:6e88ed4239ec | 18 | angle2=1; |
tanabe2000 | 0:6e88ed4239ec | 19 | airFlag=1; |
tanabe2000 | 0:6e88ed4239ec | 20 | airStatus=1; |
tanabe2000 | 0:6e88ed4239ec | 21 | } else if(((int)state==0) && (airStatus==1)) { |
tanabe2000 | 0:6e88ed4239ec | 22 | angle1=1; |
tanabe2000 | 0:6e88ed4239ec | 23 | angle2=0; |
tanabe2000 | 0:6e88ed4239ec | 24 | airFlag=1; |
tanabe2000 | 0:6e88ed4239ec | 25 | airStatus=0; |
tanabe2000 | 0:6e88ed4239ec | 26 | } |
tanabe2000 | 0:6e88ed4239ec | 27 | if(airFlag == 1) { |
tanabe2000 | 0:6e88ed4239ec | 28 | valvetTime.reset(); |
tanabe2000 | 0:6e88ed4239ec | 29 | airFlag = 0; |
tanabe2000 | 0:6e88ed4239ec | 30 | valveDt = valvetTime.read(); |
tanabe2000 | 0:6e88ed4239ec | 31 | } |
tanabe2000 | 0:6e88ed4239ec | 32 | |
tanabe2000 | 2:99e83aef9ce8 | 33 | if((airFlag == 0) && (valveDt > 0.30)) { |
tanabe2000 | 0:6e88ed4239ec | 34 | angle1=0; |
tanabe2000 | 0:6e88ed4239ec | 35 | angle2=0; |
tanabe2000 | 0:6e88ed4239ec | 36 | } |
tanabe2000 | 0:6e88ed4239ec | 37 | |
tanabe2000 | 0:6e88ed4239ec | 38 | } |