Arduino Nano
HC-06 Bluetooth Module
N-Channel 30V MOSFET
10K Resistor
10uf Capacitor
220 Resistor
3.7V 720mAh LiPo
CR2 3V
Glow Plug
PLA Filament (Natural)
(12) Neopixels
Molex (Female)
- // Bluetooth Hand Flame 3.0
- // pkvi
- #include "FastLED.h"
- #define NUM_LEDS 12
- CRGB leds[NUM_LEDS];
- #define PIN 3
- // button
- int button = 7;
- int state = 0;
- // mosfet
- int mosfet = 5;
- int burn = 1250;
- void setup()
- {
- Serial.begin(9600);
- FastLED.addLeds<WS2812B, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
- pinMode(button, INPUT);
- pinMode(mosfet, OUTPUT);
- digitalWrite(mosfet, LOW);
- fire();
- setAll(0, 0, 0);
- showStrip();
- }
- void loop() {
- if (Serial.available()) {
- char data;
- data = Serial.read();
- if (data == '1') {
- huzzah();
- }
- }
- state = digitalRead(button);
- if (state == LOW) {
- delay(1000);
- huzzah();
- } else {
- digitalWrite(mosfet, LOW);
- }
- }
- void huzzah() {
- fire();
- digitalWrite(mosfet, HIGH);
- delay(burn);
- digitalWrite(mosfet, LOW);
- setAll(0, 0, 0);
- showStrip();
- }
- void fire() {
- for (int k = 0; k < 255; k++) {
- setPixel(0, 0, 0, k);
- showStrip();
- k = k + 3;
- }
- for (int k = 0; k < 255; k++) {
- setPixel(11, 0, 0, k);
- setPixel(1, 0, 0, k);
- showStrip();
- k = k + 3;
- }
- for (int k = 0; k < 255; k++) {
- setPixel(10, 0, 0, k);
- setPixel(2, 0, 0, k);
- showStrip();
- k = k + 3;
- }
- for (int k = 0; k < 255; k++) {
- setPixel(9, 0, 0, k);
- setPixel(3, 0, 0, k);
- showStrip();
- k = k + 3;
- }
- for (int k = 0; k < 255; k++) {
- setPixel(8, 0, 0, k);
- setPixel(4, 0, 0, k);
- showStrip();
- k = k + 3;
- }
- for (int k = 0; k < 255; k++) {
- setPixel(7, 0, 0, k);
- setPixel(6, 0, 0, k);
- setPixel(5, 0, 0, k);
- showStrip();
- k = k + 3;
- }
- }
- void showStrip() {
- #ifdef ADAFRUIT_NEOPIXEL_H
- // NeoPixel
- strip.show();
- #endif
- #ifndef ADAFRUIT_NEOPIXEL_H
- // FastLED
- FastLED.show();
- #endif
- }
- void setPixel(int Pixel, byte red, byte green, byte blue) {
- #ifdef ADAFRUIT_NEOPIXEL_H
- // NeoPixel
- strip.setPixelColor(Pixel, strip.Color(red, green, blue));
- #endif
- #ifndef ADAFRUIT_NEOPIXEL_H
- // FastLED
- leds[Pixel].r = red;
- leds[Pixel].g = green;
- leds[Pixel].b = blue;
- #endif
- }
- void setAll(byte red, byte green, byte blue) {
- for (int i = 0; i < NUM_LEDS; i++ ) {
- setPixel(i, red, green, blue);
- }
- showStrip();
- }