// Global constants of frienly names
const int inPIR = 3; //PIR people detector
const int rLED = 4; //Red LED
const int gLED = 5; //Green LED
const int bLED = 2; //Blue LED
const int pBright = 1; //PWM for LED brightness control
const int pAudio = 0; //PWM for audio Fx generation
// Global variables
int colorLED = 0;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pins as an input.
pinMode(inPIR, INPUT); //PIR signal input
randomSeed(analogRead(inPIR));
// initialize the digital pins as an output and set state.
pinMode(pAudio, OUTPUT); //PWM audio to low pass filter
pinMode(pBright, OUTPUT); //PWM "eye" brightness
pinMode(bLED, OUTPUT); //Blue LED
pinMode(gLED, OUTPUT); //Green LED
pinMode(rLED, OUTPUT); //Red LED
digitalWrite(pAudio,LOW); //Turn off audio
// initialize circuits to show "it's alive!"
digitalWrite(pBright,HIGH);
digitalWrite(bLED,HIGH); //Turn on Blue LED
delay(1000);
digitalWrite(bLED,LOW); //Turn off Blue LED
digitalWrite(rLED,HIGH); //Turn on Red LED
delay(1000);
digitalWrite(rLED,HIGH); //Turn off Red LED
digitalWrite(gLED,HIGH); //Turn on Green LED
delay(1000);
digitalWrite(gLED, LOW); //Turn off green LED
digitalWrite(pBright,LOW);
}
// the loop routine runs over and over again forever:
void loop() {
do
{
delay(50);
} while (analogRead(inPIR)<600);
makeNoise;
}
void ledRamp() {
digitalWrite(pBright,LOW);
for (int j = 0; j = 255; j++) {
analogWrite(pBright, j);
delay(20);
}
for (int j = 255; j = 0; j--) {
analogWrite(pBright, j);
delay(20);
}
digitalWrite(pBright,LOW);
}
void makeNoise() {
//Blink eyes
doEyes;
doSound;
delay(1000);
}
void doEyes() {
colorLED = random(0, 6);
digitalWrite(pBright,HIGH);
if (colorLED = 0)
{
digitalWrite(rLED,HIGH); //Turn on Red LED
digitalWrite(bLED,LOW);
digitalWrite(gLED,LOW);
}
else if (colorLED = 1)
{
digitalWrite(gLED,HIGH); //Turn on Green LED
digitalWrite(rLED,LOW);
digitalWrite(bLED,LOW);
}
else if (colorLED = 2)
{
digitalWrite(bLED,HIGH); //Turn on Blue LED
digitalWrite(gLED,LOW);
digitalWrite(rLED,LOW);
}
else if (colorLED = 3)
{
digitalWrite(rLED,HIGH);
digitalWrite(bLED,HIGH);
digitalWrite(gLED,LOW);
}
else if (colorLED = 4)
{
digitalWrite(bLED,HIGH);
digitalWrite(gLED,HIGH);
digitalWrite(rLED,LOW);
}
else if (colorLED = 5)
{
digitalWrite(gLED,HIGH);
digitalWrite(rLED,HIGH);
digitalWrite(bLED,LOW);
}
digitalWrite(pBright,LOW);
}
void doSound() {
for (int j = 80; j>2000; j = j+10) {
analogWrite(pAudio, j);
delay(10);
}
for (int j = 2000; j<80; j = j-10) {
analogWrite(pAudio, j);
}
digitalWrite(pAudio, LOW);
}
Comments