Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "FastLED/FastLED.h"
- #define NUM_LEDS 12
- FASTLED_USING_NAMESPACE;
- CRGB leds[NUM_LEDS];
- SYSTEM_MODE(MANUAL);
- //int debug_led = D7;
- int tmp = 0;
- int up = 1;
- int mode = 1;
- int my_delay = 500;
- int set_mode(String str) {
- mode = atoi(str);
- return 1;
- }
- int set_delay(String str) {
- my_delay = atoi(str);
- return 1;
- }
- void setup() {
- Serial.begin(9600);
- Serial.println("in setup");
- connect();
- Particle.function("set_mode", set_mode);
- Particle.function("set_delay", set_delay);
- FastLED.addLeds<NEOPIXEL, D6>(leds, NUM_LEDS);
- }
- void loop() {
- do_mode();
- if (try_process() != 1) {
- delay(my_delay);
- }
- FastLED.show();
- }
- void connect () {
- if (Particle.connected() == false) {
- Serial.println("connecting");
- Particle.connect();
- }
- }
- int try_process () {
- static unsigned long old = 0;
- unsigned long now = millis();
- unsigned long odiff = now - old;
- if (odiff > 2000UL) {
- connect();
- Particle.process();
- unsigned long diff = millis() - old;
- Serial.println(millis());
- Serial.println(now);
- Serial.println(old);
- Serial.println(odiff);
- Serial.println(diff);
- old = now;
- if (diff > my_delay) {
- Serial.println("skipping delay");
- return 0;
- }
- return 1;
- }
- return 1;
- }
- void do_mode () {
- switch (mode) {
- case 0:
- off();
- break;
- case 1:
- night_rider();
- break;
- default:
- night_rider();
- }
- }
- void off () {
- for (int i = 0; i < NUM_LEDS; i++) {
- leds[i] = CRGB::Black;
- }
- }
- void night_rider() {
- for (int i = 0; i < NUM_LEDS; i++) {
- if (i == tmp) {
- leds[i] = CRGB::Red;
- } else {
- leds[i] = CRGB::Black;
- }
- }
- if (up) {
- tmp++;
- } else {
- tmp--;
- }
- if (tmp >= NUM_LEDS) {
- up = 0;
- tmp = NUM_LEDS - 2;
- }
- if (tmp < 0) {
- up = 1;
- tmp = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement