-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwater-bottle-led.ino
More file actions
79 lines (77 loc) 路 1.57 KB
/
Copy pathwater-bottle-led.ino
File metadata and controls
79 lines (77 loc) 路 1.57 KB
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
// LED connection pins
int rpin = 11; // red
int gpin = 10; // green
int bpin = 9; // blue
float h = 0; //hue
int r=0, g=0, b=0; // color values
void setup()
{
}
void loop()
{
// Each time the hue value increases 0.001
// and goes back to the beginning when it is 1
h = h + 0.001;
if(h >= 1.0){
h = 0;
}
// Hue value turn to b,g,b
h2rgb(h,r,g,b);
// common cathode RGB LED
analogWrite(rpin, r);
analogWrite(gpin, g);
analogWrite(bpin, b);
delay(15);
}
void h2rgb(float H, int& R, int& G, int& B) {
int var_i;
float S=1, V=1, var_1, var_2, var_3, var_h, var_r, var_g, var_b;
if ( S == 0 )
{
R = V * 255;
G = V * 255;
B = V * 255;
}
else
{
var_h = H * 6;
if ( var_h == 6 ) var_h = 0;
var_i = int( var_h ) ;
var_1 = V * ( 1 - S );
var_2 = V * ( 1 - S * ( var_h - var_i ) );
var_3 = V * ( 1 - S * ( 1 - ( var_h - var_i ) ) );
if ( var_i == 0 ) {
var_r = V ;
var_g = var_3 ;
var_b = var_1 ;
}
else if ( var_i == 1 ) {
var_r = var_2 ;
var_g = V;
var_b = var_1 ;
}
else if ( var_i == 2 ) {
var_r = var_1 ;
var_g = V;
var_b = var_3 ;
}
else if ( var_i == 3 ) {
var_r = var_1 ;
var_g = var_2 ;
var_b = V;
}
else if ( var_i == 4 ) {
var_r = var_3 ;
var_g = var_1 ;
var_b = V;
}
else {
var_r = V;
var_g = var_1 ;
var_b = var_2 ;
}
R = (1-var_r) * 255;
G = (1-var_g) * 255;
B = (1-var_b) * 255;
}
}