int pirPin = 12;
int mp3 = 13;
int pirState = 0;
void setup(){
//Set all the pinModes
pinMode(pirPin, INPUT);
//pinMode(mp3, INPUT_PULLUP);
pinMode(mp3, OUTPUT); // HIGH could be used with a transistor to momentarily connect DFPlayer Mini IO_2 pin to ground to trigger.
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
Serial.begin(9600);
}
void loop(){
//Set all the led pins to LOW so all the "eyes" are off.
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(500);
pirState = digitalRead(pirPin);
if(pirState == HIGH){
// Trigger the mp3 by pulling the IO_2 to ground for .25 second:
//digitalWrite(mp3, LOW);
digitalWrite(mp3, HIGH);
delay(250);
/* I may have to then:
digitalWrite(mp3, HIGH);
delay(250);
*/
//Turn the "eyes" on pin 2 On then waits a random time from 1 to 2 seconds.
digitalWrite(2, HIGH);
delay(random(1000,2000));
digitalWrite(6, HIGH);
delay(random(1000,2000));
//Blink the "eyes" on pin 2.
digitalWrite(2, LOW); //Turns the "eyes" off.
delay(random(100,250)); //Waits a random time from .10 to .25 seconds.
digitalWrite(2, HIGH); //Turns the "eyes" on.
delay(random(1000,2500)); //Waits a random time from 1 to 2.5 seconds.
digitalWrite(9, HIGH);
delay(random(750,2000));
digitalWrite(6, LOW);
delay(random(100,250));
digitalWrite(6, HIGH);
delay(random(500,2000));
digitalWrite(2, LOW);
delay(random(100,250));
digitalWrite(2, HIGH);
delay(random(500,1500));
digitalWrite(3, HIGH);
delay(random(500,1000));
digitalWrite(9, LOW);
delay(random(100,250));
digitalWrite(9, HIGH);
delay(random(500,1500));
digitalWrite(3, LOW);
delay(random(100,250));
digitalWrite(3, HIGH);
delay(random(1000,1500));
digitalWrite(2, LOW);
delay(random(100,250));
digitalWrite(2, HIGH);
delay(random(1000,1500));
digitalWrite(4, HIGH);
delay(random(700,1000));
digitalWrite(9, LOW);
delay(random(100,250));
digitalWrite(9, HIGH);
delay(random(1000,1500));
digitalWrite(11, HIGH);
delay(random(500,1500));
digitalWrite(6, LOW);
delay(random(100,250));
digitalWrite(6, HIGH);
delay(random(1000,1500));
digitalWrite(3, LOW);
delay(random(100,250));
digitalWrite(3, HIGH);
delay(random(1000,1500));
digitalWrite(7, HIGH);
delay(random(750,1500));
digitalWrite(9, LOW);
delay(random(100,250));
digitalWrite(9, HIGH);
delay(random(800,1500));
digitalWrite(10, HIGH);
delay(random(1000,1500));
digitalWrite(4, LOW);
delay(random(100,250));
digitalWrite(4, HIGH);
delay(random(1000,1500));
digitalWrite(11, LOW);
delay(random(100,250));
digitalWrite(11, HIGH);
delay(random(750,1500));
digitalWrite(5, HIGH);
delay(random(1000,1500));
digitalWrite(3, HIGH);
delay(random(500,1500));
digitalWrite(2, LOW);
delay(random(100,250));
digitalWrite(2, HIGH);
delay(random(750,1500));
digitalWrite(5, LOW);
delay(random(100,250));
digitalWrite(5, HIGH);
delay(random(1000,1500));
digitalWrite(6, LOW);
delay(random(500,2000));
digitalWrite(9, LOW);
delay(random(100,250));
digitalWrite(9, HIGH);
delay(random(500,1500));
digitalWrite(2, LOW);
delay(random(1000,1500));
digitalWrite(8, HIGH);
delay(random(500,1500));
digitalWrite(7, LOW);
delay(random(100,250));
digitalWrite(7, HIGH);
delay(random(700,1500));
digitalWrite(9, LOW);
delay(random(150,250));
digitalWrite(8, LOW);
delay(random(100,250));
digitalWrite(8, HIGH);
delay(random(750,1500));
digitalWrite(10, LOW);
delay(random(100,250));
digitalWrite(10, HIGH);
delay(random(500,1500));
digitalWrite(4, LOW);
delay(random(500,5500));
digitalWrite(11, LOW);
delay(random(100,250));
digitalWrite(11, HIGH);
delay(random(750,1500));
digitalWrite(7, LOW);
delay(random(500,1000));
digitalWrite(10, LOW);
delay(random(100,250));
digitalWrite(10, HIGH);
delay(random(400,1000));
digitalWrite(5, LOW);
delay(random(100,250));
digitalWrite(5, HIGH);
delay(random(700,1500));
digitalWrite(10, LOW);
delay(random(100,250));
digitalWrite(10, HIGH);
delay(random(500,1000));
digitalWrite(5, LOW);
delay(random(100,250));
digitalWrite(11, LOW);
delay(random(1000,2000));
digitalWrite(10, LOW);
delay(random(1000,2500));
digitalWrite(3, LOW);
delay(random(1000,2500));
digitalWrite(8, LOW);
delay(30000);
//delay to prevent retrigger by guests
}
else {
// keep the mp3 pin off:
//digitalWrite(mp3, HIGH);
digitalWrite(mp3, LOW);
delay(1000);
}
}