Skip to content

Commit

Permalink
Merge pull request #96 from waveform80/pwm-toggle-motor-reverse
Browse files Browse the repository at this point in the history
Fix #91
  • Loading branch information
waveform80 committed Oct 27, 2015
2 parents aa542f2 + 2a1ed11 commit 0c8eff6
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
10 changes: 10 additions & 0 deletions gpiozero/boards.py
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,16 @@ def right(self, speed=1):
self._left.forward(speed)
self._right.backward(speed)

def reverse(self):
"""
Reverse the robot's current motor directions. If the robot is currently
running full speed forward, it will run full speed backward. If the
roboto is turning left at half-speed, it will turn right at half-speed.
If the robot is currently stopped it will remain stopped.
"""
self._left.value = -self._left.value
self._right.value = -self._right.value

def stop(self):
"""
Stop the robot.
Expand Down
17 changes: 17 additions & 0 deletions gpiozero/output_devices.py
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,15 @@ def value(self, value):
self._stop_blink()
self._write(value)

def toggle(self):
"""
Toggle the state of the device. If the device is currently off
(`value` is 0.0), this changes it to "fully" on (`value` is 1.0). If
the device has a duty cycle (`value`) of 0.1, this will toggle it to
0.9, and so on.
"""
self.value = 1.0 - self.value

@property
def is_active(self):
"""
Expand Down Expand Up @@ -414,6 +423,14 @@ def backward(self, speed=1):
self._forward.off()
self._backward.value = speed

def reverse(self):
"""
Reverse the current direction of the motor. If the motor is currently
idle this does nothing. Otherwise, the motor's direction will be
reversed at the current speed.
"""
self.value = -self.value

def stop(self):
"""
Stop the motor
Expand Down

0 comments on commit 0c8eff6

Please sign in to comment.