/* January 28, 2014 counts up LED's 5, 6, 9 and to switch relay with 10 The relay and Flashing indicator LED is switched by ground through 2N3904 transistor gate controlling an alternate 9v Battery to run the relay and indicator LED..And Serial print a line on the display.... See pictures of setup at http://ncpcs.com/images_template1/sketch_jan31a.jpg on our gallery page under the name sketch_jan31a >>> Hope this helps, Supporting the free dissemination of knowledge ElectronLux */ int LEDArray[] = {5, 6, 9, 10}; // LED array for PWM 5,6,9 and 10 int numOfLEDs = 4; // LEDs of index 0-3 int pirState = LOW; int pirVal = 0; int pirPin = 12; void setup() { Serial.begin(9600); pinMode(pirPin, INPUT); int i; for(i = 0; i < numOfLEDs; i++) { pinMode(LEDArray[i], OUTPUT); } } void loop() { pirVal = digitalRead(pirPin); int i; //if motion is captured, light the LEDs in sequence if (pirVal == HIGH) { for (i= 0; i < numOfLEDs; i++) { analogWrite(LEDArray[i], 255); delay (1000); Serial.println("Ha, I detected Motion and I am now going to Switch a Relay ON!"); delay (1000); } delay (1000); for (i= 0; i < numOfLEDs; i++) { analogWrite(LEDArray[i], 0); delay (1000); } if (pirState == LOW) { pirState = HIGH; } } //else, set all LED values to zero else { analogWrite(LEDArray[0], 0); analogWrite(LEDArray[1], 0); analogWrite(LEDArray[2], 0); analogWrite(LEDArray[3], 0); if (pirState == HIGH) { pirState = LOW; } } }