Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1from servo import Servo 

2from actuator import Actuator 

3 

4 

5class Valve(Actuator): 

6 

7 """Valve opens and closes""" 

8 

9 opened = True 

10 

11 def __init__(self, pin_num, initial_opened=True): 

12 

13 """ constructor. 

14 :param pin_num: number of pin that will command valve with PWM 

15 :param initial_opened: if it has to be open at the beginning 

16 """ 

17 self.servo = Servo(pin_num) 

18 self.opened = initial_opened 

19 if initial_opened: 

20 self.open() 

21 else: 

22 self.close() 

23 

24 def __str__(self): 

25 """prints the object.""" 

26 return "Valve: current status: {}. ".format(self.status()) 

27 

28 def open(self): 

29 self.servo.angle(30) 

30 self.opened = True 

31 

32 def close(self): 

33 self.servo.angle(120) 

34 self.opened = False 

35 

36 def switch(self): 

37 """changes the status of the valve, returns true if opened, false if closed.""" 

38 if self.opened: 

39 self.close() 

40 else: 

41 self.open() 

42 return self.opened 

43 

44 def is_open(self): 

45 """if the valve is currently open.""" 

46 return self.opened 

47 

48 def is_closed(self): 

49 """if the valve is currently closed.""" 

50 return not self.is_open() 

51 

52 def status(self): 

53 """if the valve is currently opened or closed.""" 

54 if self.opened: 

55 return "opened" 

56 else: 

57 return "closed"