Panel Cookies
Pumpkin - code
Help me by sharing this post

The code is long but simple. You need to isntall the libraries for the DF player and the WS2812 LED strip. On the next link you have the code and libraries. So download those and install them to the Arduino IDE. Then compile and upload the code to the Arduino and that's it.



schematic arduino pumpkin halloween mist maker



#include <Adafruit_NeoPixel.h>
#include <SoftwareSerial.h>
#include <DFMiniMp3.h>

int PIR_in = 3;
#define PIN            6

//Variables
bool detected = false;
int mode = 0;


byte neopix_gamma[] = {
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };




// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS      6

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

//////////////////////////////////////////////////////////////////
// implement a notification class,
// its member methods will get called 
//
class Mp3Notify
{
public:
  static void OnError(uint16_t errorCode)
  {
    // see DfMp3_Error for code meaning
    Serial.println();
    Serial.print("Com Error ");
    Serial.println(errorCode);
  }

  static void OnPlayFinished(uint16_t globalTrack)
  {
    Serial.println();
    Serial.print("Play finished for #");
    Serial.println(globalTrack);   
  }

  static void OnCardOnline(uint16_t code)
  {
    Serial.println();
    Serial.print("Card online ");
    Serial.println(code);     
  }

  static void OnCardInserted(uint16_t code)
  {
    Serial.println();
    Serial.print("Card inserted ");
    Serial.println(code); 
  }

  static void OnCardRemoved(uint16_t code)
  {
    Serial.println();
    Serial.print("Card removed ");
    Serial.println(code);  
  }
};
DFMiniMp3<HardwareSerial, Mp3Notify> mp3(Serial);
//////////////////////////////////////////////////////////////////



void setup() {
  pinMode(PIR_in,INPUT);
  
  pixels.begin(); // This initializes the NeoPixel library.
  delay(100);
  
  Serial.begin(115200);  
  mp3.begin();
  uint16_t volume = mp3.getVolume();
  mp3.setVolume(30);  
  uint16_t count = mp3.getTotalTrackCount();
  delay(1000);
  //mp3.playMp3FolderTrack(1);  // engine start + submarine sound
  //EEPROM_writeAnything(1, 000);

}

void loop() {
  if(digitalRead(PIR_in) && !detected)
  {
    detected = true;
  }
  
  if(!digitalRead(PIR_in) && detected)
  {
    detected = false;
  }

  

  if(detected)
  {
    mode = mode + 1;
    if(mode > 3)
    {
      mode = 0;
    }

    
    if(mode == 0)
    {
      mp3.playMp3FolderTrack(1);  
      fadeEyesRed(4000);
      fadeEyesWhite(1500);
      pixels.setPixelColor(4, pixels.Color(255,0,0)); 
      pixels.setPixelColor(5, pixels.Color(255,0,0)); 
      pixels.show();     
      eyesOff();
      delay(1000); 
      pixels.setPixelColor(4, pixels.Color(255,0,0)); 
      pixels.setPixelColor(5, pixels.Color(255,0,0)); 
      pixels.show();
      delay(2000);
      theaterChase(pixels.Color(127, 127, 127), 50, 30); // White
      fadeOutEyesRed(4000);  
      delay(1000);      
      pixels.show(); // This sends the updated pixel color to the hardware.  
    }//end of mode 0

    if(mode == 1)
    {
      mp3.playMp3FolderTrack(2);  
      haha();     
      eyesOff();
      delay(1000);     
      allWhite();
      delay(1600);
      allOff();
      fadeEyesBlue(5600); 
      haha(); 
      delay(450);
      fadeEyesWhite(500);
      fadeEyesWhite(500);
      eyesOff();
      delay(1800);
      fadeEyesWhite(500);
      fadeEyesWhite(700);
      eyesOff();
      delay(1400);
      fadeEyesWhite(500);
      fadeEyesWhite(700);
      eyesOff();
      delay(1400);
      fadeEyesWhite(500);
      fadeEyesWhite(700);
      eyesOff();
      delay(2000);  
       
            
     
    }//end of mode 1

    if(mode == 2)
    {
      mp3.playMp3FolderTrack(3);  
      haha(); 
      delay(400);    
      haha(); 
      delay(180); 
      haha(); 
      delay(80); 
      haha(); 
      delay(10); 
      haha();       
      delay(2000);      
     }//end of mode 2

     if(mode == 3)
    {
      mp3.playMp3FolderTrack(4);  
     theaterChase(pixels.Color(127, 127, 127), 50, 34); // White
     fadeEyesRed(300);
     delay(2000); 
     theaterChase(pixels.Color(127, 127, 127), 50, 45); // White
     fadeOutEyesWhite(2000); 
     delay(5000);      
     }//end of mode 3

   
  }//end of detected

  if(!detected)
  {
    allOff();
  }

}//end void loop

void allWhite()
{
  int i = 0;
    while(i < 6)
    {
      pixels.setPixelColor(i, pixels.Color(255,255,255)); 
      i = i + 1;
    }
    pixels.show();
}

void allOff()
{
  int i = 0;
    while(i < 6)
    {
      pixels.setPixelColor(i, pixels.Color(0,0,0)); 
      i = i + 1;
    }
    pixels.show();
}

void haha()
{
  fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(175);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(225);
      eyesOff();
      delay(30);
      fadeEyesRed(155);
      eyesOff();
      delay(30);
      fadeEyesRed(130);
      eyesOff();
      delay(30);
}


void eyesOff()
{
  pixels.setPixelColor(4, pixels.Color(0,0,0));
  pixels.setPixelColor(5, pixels.Color(0,0,0)); 
  pixels.show(); 
}


void fire (int DELAY)
{
  int x = 0;
  while (x < 10)
  {
    int fire_time = 20*random(2,5);
    int i = 0;
    while(i < fire_time)
    {
      pixels.setPixelColor(0, pixels.Color(90 + i*2,80 + i*2,0));
      pixels.setPixelColor(1, pixels.Color(90 + i*2,80 + i*2,0));
      pixels.setPixelColor(2, pixels.Color(90 + i*2,80 + i*2,0));
      pixels.setPixelColor(3, pixels.Color(90 + i*2,80 + i*2,0));
      pixels.setPixelColor(4, pixels.Color(90 + i*2,80 + i*2,0));
      pixels.setPixelColor(5, pixels.Color(90 + i*2,80 + i*2,0));
      pixels.show(); 
      delay(10);
      i = i + 1;
    }
    
    i = 0;
    while(i < 6)
    {
      pixels.setPixelColor(i, pixels.Color(0,0,0));    
      pixels.show(); 
      i = i + 1;
    }
    delay(fire_time/3);
    x = x + 1;
  }  
}
void fadeEyesBlue(int DELAY)
{
  float loop_delay = DELAY / 255;
  int i = 0;
  while(i < 255)
  {
    pixels.setPixelColor(4, pixels.Color(0,0,i));
    pixels.setPixelColor(5, pixels.Color(0,0,i)); 
    pixels.show(); 
    i = i + 1;
    delay(loop_delay);
  }
}


void fadeEyesWhite(int DELAY)
{
  float loop_delay = DELAY / 255;
  int i = 0;
  while(i < 255)
  {
    pixels.setPixelColor(4, pixels.Color(i,i,i));
    pixels.setPixelColor(5, pixels.Color(i,i,i)); 
    pixels.show(); 
    i = i + 1;
    delay(loop_delay);
  }
}

void fadeEyesRed(int DELAY)
{
  float loop_delay = DELAY / 255;
  int i = 0;
  while(i < 255)
  {
    pixels.setPixelColor(4, pixels.Color(i,0,0));
    pixels.setPixelColor(5, pixels.Color(i,0,0)); 
    pixels.show(); 
    i = i + 1;
    delay(loop_delay);
  }
}

void fadeOutEyesWhite(int DELAY)
{
  float loop_delay = DELAY / 255;
  int i = 0;
  while(i < 255)
  {
    pixels.setPixelColor(4, pixels.Color(255-i,255-i,255-i));
    pixels.setPixelColor(5, pixels.Color(255-i,255-i,255-i)); 
    pixels.show(); 
    i = i + 1;
    delay(loop_delay);
  }
}

void fadeOutEyesRed(int DELAY)
{
  float loop_delay = DELAY / 255;
  int i = 0;
  while(i < 255)
  {
    pixels.setPixelColor(4, pixels.Color(255-i,0,0));
    pixels.setPixelColor(5, pixels.Color(255-i,0,0)); 
    pixels.show(); 
    i = i + 1;
    delay(loop_delay);
  }
}


//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait, int cycles) {
  for (int j=0; j<cycles; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (int i=0; i < pixels.numPixels(); i=i+3) {
        pixels.setPixelColor(i+q, c);    //turn every third pixel on
      }
      pixels.show();

      delay(wait);

      for (int i=0; i < pixels.numPixels(); i=i+3) {
        pixels.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}








yt_link
insta_link
fb_link
twitter_link

Pumpkin


ADVERTISERS



PCBWAY PCB service





Curso Arduino Online nivel bajo