/* Lilypad Arduino Night and Day Toy Created by Casey Rawson January 2014 */ int ledPin = 13; // LED is connected to digital pin 13 int speakerPin = 6; // speaker connected to digital pin 7 int lightSensorPin = A5; // Light sensor connected to analog pin 6 int pinkled = 9; // Pink LED connected to digital pin 9 int yellowled = 10; // Yellow LED connected to digital pin 10 int greenled = 11; // Green LED connected to digital pin 11 int nightleds = A2; // Night LEDs connected to analog pin 2 int sensorValue; // variable to store the value coming from the light sensor int lightpos = A4; // Positive petal of light sensor connected to A4 int ground = 5; // Negative petals of LEDs and buzzer connected to pin 5 void setup() { pinMode(ledPin, OUTPUT); // sets the ledPin to be an output pinMode(speakerPin, OUTPUT); // sets the speakerPin to be an output pinMode(pinkled, OUTPUT); // Next four lines set LEDs as outputs pinMode(yellowled, OUTPUT); pinMode(greenled, OUTPUT); pinMode(nightleds, OUTPUT); //pins used for light sensor pinMode(lightpos, OUTPUT); digitalWrite(lightpos, HIGH); //set pin to GND pinMode(ground, OUTPUT); digitalWrite(ground, LOW); // Turns off power to pin 5 (ground) } void loop() // run over and over again { sensorValue = analogRead(lightSensorPin); // read the value from the sensor delay(100); if(analogRead(lightSensorPin) < 30){ //if its dark, play You Are My Sunshine and blink colored LEDs digitalWrite(pinkled,HIGH); //turn on the pink LED digitalWrite(greenled,HIGH); //turn on the green LED beep(speakerPin,587.33,300); //D5: play the note G4 for 300 milliseconds sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); // if it's bright, turn off colored LEDs. digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; // if it's bright, restart the loop. } beep(speakerPin,783.99,300); //G5 digitalWrite(yellowled, HIGH); digitalWrite(pinkled,LOW); sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } beep(speakerPin,880,300); //A5 digitalWrite(greenled,LOW); sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } beep(speakerPin,987.77,600); //B5 digitalWrite(yellowled, LOW); digitalWrite(greenled,HIGH); sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,HIGH); beep(speakerPin,987.77,900); //B5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, HIGH); beep(speakerPin,987.77,300); //B5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,LOW); digitalWrite(greenled,LOW); beep(speakerPin,932.33,300); //A#5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } beep(speakerPin,987.77,300); //B5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, LOW); digitalWrite(pinkled,HIGH); beep(speakerPin,783.99,600); //G5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(greenled,HIGH); digitalWrite(yellowled, HIGH); beep(speakerPin,783.99,900); //G5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,LOW); beep(speakerPin,783.99,300); //G5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, LOW); beep(speakerPin,880,300); //A5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,HIGH); digitalWrite(greenled,LOW); beep(speakerPin,987.77,300); //B5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, HIGH); beep(speakerPin,1046.50,600); //C6 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,LOW); digitalWrite(greenled,HIGH); beep(speakerPin,1318.51,900); //E6 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, LOW); beep(speakerPin,1318.51,300); //E6 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,HIGH); beep(speakerPin,1174.66,300); //D6 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(greenled,LOW); digitalWrite(yellowled, HIGH); beep(speakerPin,1046.50,300); //C6 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } beep(speakerPin,987.77,1500); //B5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,LOW); digitalWrite(yellowled, LOW); digitalWrite(greenled,HIGH); beep(speakerPin,783.99,300); //G5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } beep(speakerPin,880,300); //A5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,HIGH); digitalWrite(greenled,LOW); beep(speakerPin,987.77,300); //B5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, HIGH); beep(speakerPin,1046.50,600); //C6 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,LOW); digitalWrite(greenled,HIGH); beep(speakerPin,1318.51,900); //E6 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, LOW); beep(speakerPin,1318.51,300); //E6 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,HIGH); beep(speakerPin,1174.66,300); //D6 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } beep(speakerPin,1046.50,300); //C6 digitalWrite(greenled,LOW); digitalWrite(yellowled, HIGH); sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,LOW); beep(speakerPin,987.77,600); //B5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, LOW); digitalWrite(greenled,HIGH); beep(speakerPin,783.99,900); //G5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,HIGH); digitalWrite(greenled,LOW); beep(speakerPin,587.33,300); //D5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, HIGH); beep(speakerPin,783.99,300); //G5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,LOW); beep(speakerPin,880,300); //A5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } beep(speakerPin,987.77,900); //B5 digitalWrite(greenled,HIGH); digitalWrite(pinkled,HIGH); beep(speakerPin,1046.50,300); //C6 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, LOW); beep(speakerPin,880,600); //A5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,LOW); beep(speakerPin,880,300); //A5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, HIGH); digitalWrite(greenled,LOW); beep(speakerPin,987.77,300); //B5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(pinkled,HIGH); beep(speakerPin,783.99,1500); //G5 sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } digitalWrite(yellowled, LOW); digitalWrite(pinkled,LOW); sensortestlight(); if (sensortestlight()==1){ digitalWrite(pinkled, LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled, LOW); return; } delay(500); } else{ // if it's light, play Twinkle, Twinkle and blink night LEDS digitalWrite(nightleds, HIGH); // turn the LED on (HIGH is the voltage level) beep(speakerPin, 1046.5, 400); //C6: Play the note C6 for 400 milliseconds sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1046.5, 400); //C6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); // turn the LED off beep(speakerPin, 1567.98, 400); //G6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1567.98, 400); //G6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, HIGH); beep(speakerPin, 1760.00, 400); //A6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1760.00, 400); //A6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); beep(speakerPin, 1567.98, 800); //G6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, HIGH); beep(speakerPin, 1396.91, 400); //F6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1396.91, 400); //F6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); beep(speakerPin, 1318.51, 400); //E6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1318.51, 400); //E6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, HIGH); beep(speakerPin, 1174.66, 400); //D6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1174.66, 400); //D6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); beep(speakerPin, 1046.5, 800); //C6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, HIGH); beep(speakerPin, 1567.98, 400); //G6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1567.98, 400); //G6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); beep(speakerPin, 1396.91, 400); //F6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1396.91, 400); //F6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, HIGH); beep(speakerPin, 1318.51, 400); //E6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1318.51, 400); //E6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); beep(speakerPin, 1174.66, 800); //D6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, HIGH); beep(speakerPin, 1567.98, 400); //G6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1567.98, 400); //G6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); beep(speakerPin, 1396.91, 400); //F6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1396.91, 400); //F6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, HIGH); beep(speakerPin, 1318.51, 400); //E6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1318.51, 400); //E6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); beep(speakerPin, 1174.66, 800); //D6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, HIGH); beep(speakerPin, 1046.5, 400); //C6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1046.5, 400); //C6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); beep(speakerPin, 1567.98, 400); //G6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1567.98, 400); //G6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, HIGH); beep(speakerPin, 1760.00, 400); //A6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1760.00, 400); //A6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); beep(speakerPin, 1567.98, 800); //G6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, HIGH); beep(speakerPin, 1396.91, 400); //F6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1396.91, 400); //F6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); beep(speakerPin, 1318.51, 400); //E6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1318.51, 400); //E6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, HIGH); beep(speakerPin, 1174.66, 400); //D6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } beep(speakerPin, 1174.66, 400); //D6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } digitalWrite(nightleds, LOW); beep(speakerPin, 1046.5, 800); //C6 sensortest(); if (sensortest()==1){ digitalWrite(nightleds, LOW); return; } delay(500); } } void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds) // the sound producing function { int x; long delayAmount = (long)(1000000/frequencyInHertz); long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2)); for (x=0;x 30){ return 1; //if its bright, return a value of 1 } }