int fatPin1 = 11; int fatPin2 = 10; int fatPin3 = 9; int relayPin1 = 7; int relayPin2 = 6; int pirPin1 = 12; // pir sensor 1 int pirPin2 = 13; // pir sensor 2 int fatPinArray[] = {9, 10, 11}; int chosenFatPin = 0; int relayPinArray[] = {6, 7}; int chosenRelayPin = 0; int analogNoisePin = 2; // wire connected for random int randomNoise = 0; // store the above void setup(){ pinMode(fatPin1, OUTPUT); pinMode(fatPin2, OUTPUT); pinMode(fatPin3, OUTPUT); pinMode(relayPin1, OUTPUT); pinMode(relayPin2, OUTPUT); pinMode(pirPin1, INPUT); pinMode(pirPin2, INPUT); Serial.begin(9600); } void loop() { if (digitalRead(pirPin1) && digitalRead(pirPin2)) { megaShow(); } else if (digitalRead(pirPin1) || digitalRead(pirPin2)) { megaHit(); } else { silentNights(); } //printSensors(); //randomTunes(); //checkFatRange(); } void silentNights(){ randomNoise = analogRead(analogNoisePin); //~ Serial.println(randomNoise % 10); analogWrite(fatPinArray[chosenFatPin], randomNoise % 30); delay(randomNoise % 15); digitalWrite(fatPinArray[chosenFatPin], LOW); delay(randomNoise % 30); if (randomNoise % 12 == 3) delay(1000); if (randomNoise % 15 == 3) { chosenFatPin++; chosenFatPin = chosenFatPin % 3; } } void megaHit(){ int val = 0; for(val = 0; val = 15; val++){ analogWrite(fatPinArray[val % 3], val * 5); delay(10); digitalWrite(fatPinArray[val % 3], LOW); delay(10); digitalWrite(relayPinArray[val % 2], HIGH); delay(10); digitalWrite(relayPinArray[val % 2], LOW); } } void megaShow() { int val = 0; for (val = 50; val < 300; val=val+40){ analogWrite(fatPin3, val); delay(50); digitalWrite(fatPin3, LOW); delay(220 - val / 2); digitalWrite(relayPin2, HIGH); delay(50); digitalWrite(relayPin2, LOW); delay(220 - val / 2); analogWrite(fatPin2, val); delay(50); digitalWrite(fatPin2, LOW); delay(220 - val / 2); analogWrite(fatPin1, val); delay(50); digitalWrite(fatPin1, LOW); delay(220 - val / 2); digitalWrite(relayPin1, HIGH); delay(50); digitalWrite(relayPin1, LOW); delay(220 - val / 2); } } void printSensors(){ Serial.println(digitalRead(pirPin1)); Serial.println(digitalRead(pirPin2)); Serial.println(digitalRead(analogNoisePin)); } void checkFatRange(){ int i=0; for (i=0; i<200; i++){ Serial.println(i); analogWrite(fatPin1, i); delay(50); digitalWrite(fatPin1, LOW); delay(50); } // result: 0-200 }