Menu
Index
Engineering
Entertainment
Literature
Miscellaneous
Contact
Search
tiktok.com/@pkvi.xyz
buymeacoffee.com/pkvi
scored.co/u/pkvi_halfkdeltaxsq
Miter
Why Ayh?
Miter
@pkvi
"...may not meet professional standards."
372 miters
122 tenons
Subscribe
0.04955
Arduino Bluetooth Hand Flame 3.0


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)



  1. // Bluetooth Hand Flame 3.0
  2. // pkvi
  3. #include "FastLED.h"
  4. #define NUM_LEDS 12
  5. CRGB leds[NUM_LEDS];
  6. #define PIN 3
  7. // button
  8. int button = 7;
  9. int state = 0;
  10. // mosfet
  11. int mosfet = 5;
  12. int burn = 1250;
  13. void setup()
  14. {
  15. Serial.begin(9600);
  16. FastLED.addLeds<WS2812B, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
  17. pinMode(button, INPUT);
  18. pinMode(mosfet, OUTPUT);
  19. digitalWrite(mosfet, LOW);
  20. fire();
  21. setAll(0, 0, 0);
  22. showStrip();
  23. }
  24. void loop() {
  25. if (Serial.available()) {
  26. char data;
  27. data = Serial.read();
  28. if (data == '1') {
  29. huzzah();
  30. }
  31. }
  32. state = digitalRead(button);
  33. if (state == LOW) {
  34. delay(1000);
  35. huzzah();
  36. } else {
  37. digitalWrite(mosfet, LOW);
  38. }
  39. }
  40. void huzzah() {
  41. fire();
  42. digitalWrite(mosfet, HIGH);
  43. delay(burn);
  44. digitalWrite(mosfet, LOW);
  45. setAll(0, 0, 0);
  46. showStrip();
  47. }
  48. void fire() {
  49. for (int k = 0; k < 255; k++) {
  50. setPixel(0, 0, 0, k);
  51. showStrip();
  52. k = k + 3;
  53. }
  54. for (int k = 0; k < 255; k++) {
  55. setPixel(11, 0, 0, k);
  56. setPixel(1, 0, 0, k);
  57. showStrip();
  58. k = k + 3;
  59. }
  60. for (int k = 0; k < 255; k++) {
  61. setPixel(10, 0, 0, k);
  62. setPixel(2, 0, 0, k);
  63. showStrip();
  64. k = k + 3;
  65. }
  66. for (int k = 0; k < 255; k++) {
  67. setPixel(9, 0, 0, k);
  68. setPixel(3, 0, 0, k);
  69. showStrip();
  70. k = k + 3;
  71. }
  72. for (int k = 0; k < 255; k++) {
  73. setPixel(8, 0, 0, k);
  74. setPixel(4, 0, 0, k);
  75. showStrip();
  76. k = k + 3;
  77. }
  78. for (int k = 0; k < 255; k++) {
  79. setPixel(7, 0, 0, k);
  80. setPixel(6, 0, 0, k);
  81. setPixel(5, 0, 0, k);
  82. showStrip();
  83. k = k + 3;
  84. }
  85. }
  86. void showStrip() {
  87. #ifdef ADAFRUIT_NEOPIXEL_H
  88. // NeoPixel
  89. strip.show();
  90. #endif
  91. #ifndef ADAFRUIT_NEOPIXEL_H
  92. // FastLED
  93. FastLED.show();
  94. #endif
  95. }
  96. void setPixel(int Pixel, byte red, byte green, byte blue) {
  97. #ifdef ADAFRUIT_NEOPIXEL_H
  98. // NeoPixel
  99. strip.setPixelColor(Pixel, strip.Color(red, green, blue));
  100. #endif
  101. #ifndef ADAFRUIT_NEOPIXEL_H
  102. // FastLED
  103. leds[Pixel].r = red;
  104. leds[Pixel].g = green;
  105. leds[Pixel].b = blue;
  106. #endif
  107. }
  108. void setAll(byte red, byte green, byte blue) {
  109. for (int i = 0; i < NUM_LEDS; i++ ) {
  110. setPixel(i, red, green, blue);
  111. }
  112. showStrip();
  113. }