Change RGBLED interface from 0-100 to 0-255, close #40

This commit is contained in:
Ben Nuttall
2015-10-05 13:26:01 +01:00
parent c26c279174
commit 493b4e1cda
3 changed files with 33 additions and 23 deletions

View File

@@ -130,14 +130,14 @@ led = RGBLED(2, 3, 4)
| Property | Description | Type | | Property | Description | Type |
| -------- | ----------- | ---- | | -------- | ----------- | ---- |
| `red` | The brightness value of the red LED (0 to 100). | Integer | | `red` | The brightness value of the red LED (0 to 255). | Integer |
| `green` | The brightness value of the green LED (0 to 100). | Integer | | `green` | The brightness value of the green LED (0 to 255). | Integer |
| `blue` | The brightness value of the blue LED (0 to 100). | Integer | | `blue` | The brightness value of the blue LED (0 to 255). | Integer |
| `rgb` | The brightness values of the three LEDs (0 to 100). | Tuple | | `rgb` | The brightness values of the three LEDs (0 to 255). | Tuple |
## Motor ## Motor
Generic single-direction motor. Generic bi-directional motor.
### Wiring ### Wiring

View File

@@ -266,20 +266,20 @@ from time import sleep
led = RGBLED(red=9, green=10, blue=11) led = RGBLED(red=9, green=10, blue=11)
led.red = 100 # full red led.red = 255 # full red
led.red = 50 # half red led.red = 128 # half red
led.rgb = (0, 100, 0) # full green led.rgb = (0, 255, 0) # full green
led.rgb = (100, 0, 100) # magenta led.rgb = (255, 0, 255) # magenta
led.rgb = (100, 100, 0) # yellow led.rgb = (255, 255, 0) # yellow
led.rgb = (0, 100, 100) # cyan led.rgb = (0, 255, 100) # cyan
led.rgb = (100, 100, 100) # white led.rgb = (255, 255, 255) # white
led.rgb = (0, 0, 0) # off led.rgb = (0, 0, 0) # off
# slowly increase intensity of blue # slowly increase intensity of blue
for n in range(100): for n in range(256):
led.blue += 1 led.blue += 1
sleep(0.1) sleep(0.1)
``` ```
@@ -365,7 +365,7 @@ from gpiozero import RGBLED, MCP3008
def read_pot(channel): def read_pot(channel):
with MCP3008(channel=channel) as pot: with MCP3008(channel=channel) as pot:
return 100 * pot.read() / 1023 return 255 * pot.read() / 1023
led = RGBLED(red=2, green=3, blue=4) led = RGBLED(red=2, green=3, blue=4)

View File

@@ -238,7 +238,7 @@ class RGBLED(object):
@red.setter @red.setter
def red(self, value): def red(self, value):
self._red.value = value self._red.value = self._validate(value)
@property @property
def green(self): def green(self):
@@ -246,7 +246,7 @@ class RGBLED(object):
@green.setter @green.setter
def green(self, value): def green(self, value):
self._green.value = value self._green.value = self._validate(value)
@property @property
def blue(self): def blue(self):
@@ -254,21 +254,31 @@ class RGBLED(object):
@blue.setter @blue.setter
def blue(self, value): def blue(self, value):
self._blue.value = value self._blue.value = self._validate(value)
@property @property
def rgb(self): def rgb(self):
r = self._red.value r = self.red
g = self._green.value g = self.green
b = self._blue.value b = self.blue
return (r, g, b) return (r, g, b)
@rgb.setter @rgb.setter
def rgb(self, values): def rgb(self, values):
r, g, b = values r, g, b = values
self._red.value = r self.red = r
self._green.value = g self.green = g
self._blue.value = b self.blue = b
def _validate(self, value):
_min = self._min_value
_max = self._max_value
if _min >= value >= _max:
return value
else:
raise GPIODeviceError(
"Colour value must be between %s and %s" % (_min, _max)
)
class Motor(object): class Motor(object):