Pith - code_dump
code_dump/lightning.ino [2.4 kb]
Modified: 18:40:56 58 026 (16 May 026)
14 Days Ago
// Lighting Cloud
// James Bruce
#include "FastLED.h"
#define NUM_LEDS 6
#define DATA_PIN 9
enum Mode {CLOUD, ACID, OFF, ON, RED, GREEN, BLUE, FADE};
Mode mode = CLOUD;
Mode lastMode = CLOUD;
int fade_h;
int fade_direction = 1;
CRGB leds[NUM_LEDS];
void setup() {
  FastLED.addLeds< WS2812B, DATA_PIN, GRB >(leds, NUM_LEDS);
  Serial.begin(9600);
}
void loop() {
  constant_lightning();
}
void single_colour(int H) {
  for (int i = 0; i < NUM_LEDS; i++) {
    leds[i] = CHSV( H, 255, 255);
  }
  if (lastMode != mode) {
    FastLED.show();
    lastMode = mode;
  }
  delay(50);
}
void colour_fade() {
  for (int i = 0; i < NUM_LEDS; i++) {
    leds[i] = CHSV( fade_h, 255, 255);
  }
  if (fade_h > 254) {
    fade_direction = -1;
  }
  else if (fade_h < 0) {
    fade_direction = 1;
  }
  fade_h += fade_direction;
  FastLED.show();
  delay(100);
}
void reset() {
  for (int i = 0; i < NUM_LEDS; i++) {
    leds[i] = CHSV( 0, 0, 0);
  }
  FastLED.show();
}
void acid_cloud() {
  for (int i = 0; i < NUM_LEDS; i++) {
    if (random(0, 100) > 90) {
      leds[i] = CHSV( random(0, 255), 255, 255);
    }
    else {
      leds[i] = CHSV(0, 0, 0);
    }
  }
  FastLED.show();
  delay(random(5, 100));
  reset();
  //}
}
void rolling() {
  for (int r = 0; r < random(2, 10); r++) {
    for (int i = 0; i < NUM_LEDS; i++) {
      if (random(0, 100) > 90) {
        leds[i] = CHSV( 0, 0, 255);
      }
      else {
        leds[i] = CHSV(0, 0, 0);
      }
    }
    FastLED.show();
    delay(random(5, 100));
    reset();
  }
}
void crack() {
  for (int i = 0; i < NUM_LEDS; i++) {
    leds[i] = CHSV( 0, 0, 255);
  }
  FastLED.show();
  delay(random(10, 100));
  reset();
}
void thunderburst() {
  int rs1 = random(0, NUM_LEDS / 2);
  int rl1 = random(10, 20);
  int rs2 = random(rs1 + rl1, NUM_LEDS);
  int rl2 = random(10, 20);
  for (int r = 0; r < random(3, 6); r++) {
    for (int i = 0; i < rl1; i++) {
      leds[i + rs1] = CHSV( 0, 0, 255);
    }
    if (rs2 + rl2 < NUM_LEDS) {
      for (int i = 0; i < rl2; i++) {
        leds[i + rs2] = CHSV( 0, 0, 255);
      }
    }
    FastLED.show();
    delay(random(10, 50));
    reset();
    delay(random(10, 50));
  }
}
void constant_lightning() {
  switch (random(1, 4)) {
    case 1:
      thunderburst();
      delay(random(10, 500));
      break;
    case 2:
      rolling();
      break;
    case 3:
      crack();
      delay(random(50, 250));
      break;
    case 4:
      acid_cloud();
      break;
  }
}
Updates
Shim - Android 70.026.1
Wedge - Linux 68.026.1
Wedge - Android 68.026.1
Taper - Linux 64.026.1
Ayh Extension - Chrome 63.026.1
Dev
TVShow (227) 'CSA'
TVShow (228) 'APT'
TVProgram (83) 'BXT'
Miter Update(s)
Shim (Dictation)

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)