-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLEDStripe.cpp
89 lines (69 loc) · 1.61 KB
/
LEDStripe.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include "Arduino.h"
#include "LEDStripe.h"
// TODO Persist color values
LEDStripe::LEDStripe(const int redPin, const int greenPin, const int bluePin) {
_redPin = redPin;
_greenPin = greenPin;
_bluePin = bluePin;
setOutputMode();
}
void LEDStripe::powerOn() {
Serial.println("switch on");
_power = true;
updateValues();
}
void LEDStripe::powerOff() {
Serial.println("switch off");
_power = false;
updateValues();
}
void LEDStripe::togglePower() {
Serial.println("toggle power");
_power = !_power;
updateValues();
}
void LEDStripe::setColor(int red, int green, int blue) {
Serial.print("set color (");
Serial.print(red);
Serial.print("/");
Serial.print(green);
Serial.print("/");
Serial.print(blue);
Serial.println(")");
_power = true;
_redValue = red;
_greenValue = green;
_blueValue = blue;
updateValues();
}
void LEDStripe::setRed(int value) {
Serial.print("red value: ");
Serial.println(value);
_redValue = value;
updateValues();
}
void LEDStripe::setGreen(int value) {
Serial.print("green value: ");
Serial.println(value);
_greenValue = value;
updateValues();
}
void LEDStripe::setBlue(int value) {
Serial.print("blue value: ");
Serial.println(value);
_blueValue = value;
updateValues();
}
boolean LEDStripe::getPower() {
return _power;
}
void LEDStripe::updateValues() {
analogWrite(_redPin, _power ? _redValue : 0);
analogWrite(_greenPin, _power ? _greenValue : 0);
analogWrite(_bluePin, _power ? _blueValue : 0);
}
void LEDStripe::setOutputMode() {
pinMode(_redPin, OUTPUT);
pinMode(_greenPin, OUTPUT);
pinMode(_bluePin, OUTPUT);
}