Adafruit Metro Mini
(6) Neopixels
LM393 Microphone Sensor Module
(2) 3V CR2032 Coin Cell
(3) Blue LEDs
Glow in the Dark Filament
![](images/hysteria_mask_1.jpg)
![](images/hysteria_mask_2.jpg)
- // hysteria mask
- // pkvi
- #include "FastLED.h"
- #define NUM_LEDS 3
- CRGB leds[NUM_LEDS];
- #define PIN 13
- int fade_state = 0;
- const int sound = 12;
- const int mouth = 11;
- int sound_state = 0;
- void setup() {
- FastLED.addLeds<WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
- pinMode(sound, INPUT);
- pinMode(mouth, OUTPUT);
- digitalWrite(mouth, LOW);
- delay(2000);
- }
- void loop() {
- if (fade_state == 0) {
- fadein(0x00, 0x00, 0xff);
- fade_state = 1;
- }
- sound_state = digitalRead(sound);
- if (sound_state == 1) {
- digitalWrite(mouth, HIGH);
- } else {
- digitalWrite(mouth, LOW);
- }
- }
- void fadein(byte red, byte green, byte blue) {
- float r, g, b;
- for (int k = 0; k < 256; k = k + 1) {
- r = (k / 256.0) * red;
- g = (k / 256.0) * green;
- b = (k / 256.0) * blue;
- setAll(r, g, b);
- showStrip();
- delay(5);
- }
- }
- void showStrip() {
- #ifdef ADAFRUIT_NEOPIXEL_H
- strip.show();
- #endif
- #ifndef ADAFRUIT_NEOPIXEL_H
- FastLED.show();
- #endif
- }
- void setPixel(int Pixel, byte red, byte green, byte blue) {
- #ifdef ADAFRUIT_NEOPIXEL_H
- strip.setPixelColor(Pixel, strip.Color(red, green, blue));
- #endif
- #ifndef ADAFRUIT_NEOPIXEL_H
- 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();
- }
Adafruit Metro Mini
LM393 Microphone Sensor Module
Neopixels
(2) 3V CR2032 Coin Cell
(2) Blue LEDs
![](images/hysteria_mask_2_rear.jpg)
- // hysteria mask (2)
- // pkvi
- #include "FastLED.h"
- #define NUM_LEDS 15
- CRGB leds[NUM_LEDS];
- #define PIN 3
- const int sound = 12;
- int sound_state = 0;
- int k;
- const int ledone = 5;
- const int ledtwo = 6;
- int ledstate = 0;
- void setup() {
- FastLED.addLeds<WS2812B, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
- pinMode(sound, INPUT);
- pinMode(ledone, OUTPUT);
- pinMode(ledtwo, OUTPUT);
- for (k = 0; k < 30; k++) {
- setAll(0, 0, k);
- showStrip();
- }
- }
- void loop() {
- sound_state = digitalRead(sound);
- if (sound_state == 1) {
- if (k == 30) {
- for (k = 30; k < 255; k++) {
- setAll(0, 0, k);
- showStrip();
- k = k + 10;
- digitalWrite(ledone, 0);
- digitalWrite(ledtwo, 0);
- }
- delay(100);
- } else {
- setAll(0, 0, 255);
- showStrip();
- digitalWrite(ledone, 0);
- digitalWrite(ledtwo, 0);
- delay(100);
- }
- } else {
- if (k == 255) {
- for (k = 255; k > 30; k--) {
- setAll(0, 0, k);
- showStrip();
- k = k;
- }
- } else {
- setAll(0, 0, 30);
- showStrip();
- if (ledstate > 200 && ledstate < 400) {
- analogWrite(ledone, 80);
- analogWrite(ledtwo, 0);
- ledstate++;
- } else if (ledstate == 400) {
- ledstate = 0;
- analogWrite(ledone, 0);
- analogWrite(ledtwo, 80);
- } else {
- analogWrite(ledone, 0);
- analogWrite(ledtwo, 80);
- ledstate++;
- }
- }
- }
- }
- void showStrip() {
- #ifdef ADAFRUIT_NEOPIXEL_H
- strip.show();
- #endif
- #ifndef ADAFRUIT_NEOPIXEL_H
- FastLED.show();
- #endif
- }
- void setPixel(int Pixel, byte red, byte green, byte blue) {
- #ifdef ADAFRUIT_NEOPIXEL_H
- strip.setPixelColor(Pixel, strip.Color(red, green, blue));
- #endif
- #ifndef ADAFRUIT_NEOPIXEL_H
- 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();
- }