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 |
| -------- | ----------- | ---- |
| `red` | The brightness value of the red LED (0 to 100). | Integer |
| `green` | The brightness value of the green LED (0 to 100). | Integer |
| `blue` | The brightness value of the blue LED (0 to 100). | Integer |
| `rgb` | The brightness values of the three LEDs (0 to 100). | Tuple |
| `red` | The brightness value of the red LED (0 to 255). | Integer |
| `green` | The brightness value of the green LED (0 to 255). | Integer |
| `blue` | The brightness value of the blue LED (0 to 255). | Integer |
| `rgb` | The brightness values of the three LEDs (0 to 255). | Tuple |
## Motor
Generic single-direction motor.
Generic bi-directional motor.
### Wiring

View File

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

View File

@@ -238,7 +238,7 @@ class RGBLED(object):
@red.setter
def red(self, value):
self._red.value = value
self._red.value = self._validate(value)
@property
def green(self):
@@ -246,7 +246,7 @@ class RGBLED(object):
@green.setter
def green(self, value):
self._green.value = value
self._green.value = self._validate(value)
@property
def blue(self):
@@ -254,21 +254,31 @@ class RGBLED(object):
@blue.setter
def blue(self, value):
self._blue.value = value
self._blue.value = self._validate(value)
@property
def rgb(self):
r = self._red.value
g = self._green.value
b = self._blue.value
r = self.red
g = self.green
b = self.blue
return (r, g, b)
@rgb.setter
def rgb(self, values):
r, g, b = values
self._red.value = r
self._green.value = g
self._blue.value = b
self.red = r
self.green = g
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):