Pico Led Controller 1.0.3
A project to control LEDs using Raspberry Pi Pico W
light_state.c
Go to the documentation of this file.
1 #include "light_state.h"
2 
3 #include <stdint.h>
4 
5 #include "urgb.h"
6 #include "ws2812b.h"
7 
8 volatile struct light_state_t light_state = {true, 128, 128, MODE_RAINBOW_WHEEL, COLOR_BLUE};
9 
11 {
15  else
17 }
18 
20 {
23 }
24 
26 {
29 }
30 
31 void set_light_mode(enum light_modes mode)
32 {
33  light_state.light_mode = mode;
35  return;
36  switch (mode)
37  {
38  case MODE_RAINBOW_WHEEL:
39  printf("Setting rainbow wheel mode\n");
40  break;
41  case MODE_RAINBOW_CYCLE:
42  printf("Setting rainbow cycle mode\n");
43  break;
44  case MODE_STATIC:
45  printf("Setting static mode\n");
47  break;
48  case MODE_BREATHING:
49  printf("Setting breathing mode\n");
50  break;
51  case MODE_FLASHING:
52  printf("Setting flashing mode\n");
53  break;
54  case MODE_LOADING:
55  printf("Setting loading mode\n");
56  break;
57  case MODE_WAVE:
58  printf("Setting wave mode\n");
59  break;
60  case MODE_FADE:
61  printf("Setting fade mode\n");
62  break;
63  default:
64  break;
65  }
66 }
67 
69 {
72  return;
74  {
75  switch (color)
76  {
77  case COLOR_RED:
79  break;
80  case COLOR_GREEN:
82  break;
83  case COLOR_BLUE:
85  break;
86  case COLOR_WHITE:
88  break;
89  case COLOR_PURPLE:
91  break;
92  case COLOR_YELLOW:
94  break;
95  case COLOR_CYAN:
97  break;
98  case COLOR_ORANGE:
100  break;
101  case COLOR_PINK:
103  break;
104  case COLOR_TURQUOISE:
106  break;
107  case COLOR_MAGENTA:
109  break;
110  default:
111  break;
112  }
113  }
114 }
115 
117 {
118  switch (light_state.color)
119  {
120  case COLOR_RED:
122  case COLOR_GREEN:
124  case COLOR_BLUE:
126  case COLOR_WHITE:
128  case COLOR_PURPLE:
130  case COLOR_YELLOW:
132  case COLOR_CYAN:
134  case COLOR_ORANGE:
136  case COLOR_PINK:
138  case COLOR_TURQUOISE:
140  case COLOR_MAGENTA:
142  default:
143  return 0;
144  }
145 }
uint32_t get_current_color()
Get current color.
Definition: light_state.c:116
void toggle_light_state()
Toggle light state.
Definition: light_state.c:10
void set_light_mode(enum light_modes mode)
Set light mode.
Definition: light_state.c:31
void toggle_light_mode()
Toggle light mode.
Definition: light_state.c:19
void set_light_color(enum light_colors color)
Set light color.
Definition: light_state.c:68
void toggle_light_color()
Toggle light color.
Definition: light_state.c:25
volatile struct light_state_t light_state
Light state.
Definition: light_state.c:8
#define NUM_PIXELS
Definition: light_state.h:4
#define NUM_LIGHT_COLORS
Definition: light_state.h:6
#define NUM_LIGHT_MODES
Definition: light_state.h:5
light_modes
Light modes enum.
Definition: light_state.h:18
@ MODE_RAINBOW_CYCLE
Definition: light_state.h:20
@ MODE_FLASHING
Definition: light_state.h:23
@ MODE_LOADING
Definition: light_state.h:24
@ MODE_WAVE
Definition: light_state.h:25
@ MODE_BREATHING
Definition: light_state.h:22
@ MODE_STATIC
Definition: light_state.h:21
@ MODE_RAINBOW_WHEEL
Definition: light_state.h:19
@ MODE_FADE
Definition: light_state.h:26
light_colors
Light colors enum.
Definition: light_state.h:33
@ COLOR_ORANGE
Definition: light_state.h:41
@ COLOR_BLUE
Definition: light_state.h:36
@ COLOR_PINK
Definition: light_state.h:43
@ COLOR_PURPLE
Definition: light_state.h:40
@ COLOR_TURQUOISE
Definition: light_state.h:42
@ COLOR_MAGENTA
Definition: light_state.h:39
@ COLOR_RED
Definition: light_state.h:34
@ COLOR_CYAN
Definition: light_state.h:37
@ COLOR_YELLOW
Definition: light_state.h:38
@ COLOR_GREEN
Definition: light_state.h:35
@ COLOR_WHITE
Definition: light_state.h:44
Light state struct.
Definition: light_state.h:57
uint8_t brightness
Definition: light_state.h:59
enum light_modes light_mode
Definition: light_state.h:61
enum light_colors color
Definition: light_state.h:62
uint32_t get_purple(uint8_t brightness)
Get purple color.
Definition: ws2812b.c:50
uint32_t get_yellow(uint8_t brightness)
Get yellow color.
Definition: ws2812b.c:55
void set_all_cyan(uint32_t len, uint8_t brightness)
Set all leds cyan.
Definition: ws2812b.c:121
uint32_t get_red(uint8_t brightness)
Get red color.
Definition: ws2812b.c:30
void set_all_orange(uint32_t len, uint8_t brightness)
Set all leds orange.
Definition: ws2812b.c:127
void set_all_pink(uint32_t len, uint8_t brightness)
Set all leds pink.
Definition: ws2812b.c:133
void turn_off_all(uint32_t len)
Turn off all leds.
Definition: ws2812b.c:23
uint32_t get_white(uint8_t brightness)
Get white color.
Definition: ws2812b.c:45
void set_all_blue(uint32_t len, uint8_t brightness)
Set all leds to blue.
Definition: ws2812b.c:97
void set_all_turquoise(uint32_t len, uint8_t brightness)
Set all leds turquoise.
Definition: ws2812b.c:139
uint32_t get_green(uint8_t brightness)
Get green color.
Definition: ws2812b.c:35
void set_all_magenta(uint32_t len, uint8_t brightness)
Set all leds magenta.
Definition: ws2812b.c:145
void set_all_white(uint32_t len, uint8_t brightness)
Set all leds to white.
Definition: ws2812b.c:103
void set_all_yellow(uint32_t len, uint8_t brightness)
Set all leds yellow.
Definition: ws2812b.c:115
uint32_t get_pink(uint8_t brightness)
Get pink color.
Definition: ws2812b.c:70
uint32_t get_blue(uint8_t brightness)
Get blue color.
Definition: ws2812b.c:40
uint32_t get_cyan(uint8_t brightness)
Get cyan color.
Definition: ws2812b.c:60
void set_all_green(uint32_t len, uint8_t brightness)
Set all leds to green.
Definition: ws2812b.c:91
uint32_t get_orange(uint8_t brightness)
Get orange color.
Definition: ws2812b.c:65
void set_all_red(uint32_t len, uint8_t brightness)
Set all leds to red.
Definition: ws2812b.c:85
uint32_t get_magenta(uint8_t brightness)
Get magenta color.
Definition: ws2812b.c:80
uint32_t get_turquoise(uint8_t brightness)
Get turquoise color.
Definition: ws2812b.c:75
void set_all_purple(uint32_t len, uint8_t brightness)
Set all leds purple.
Definition: ws2812b.c:109