Sound Performance Toy
video: Here
Code is Collapsed Here:
<pre>int speakerPin= 7;
int ledPin = 5;
int photoPin = A5;
int potPin = A0;
int var;
int potDelay;
int photoDelay;
int photoVal; //analogRead of the photocell //set by
int potVal; //analogRead of the potentiometer
int newphotoVal;
int toneVal; //set by photo, pot, pot, photo (case 1 -4)
int switch1 = 11; //red cord
int switch2 = 12; //orange cord
int newSwitch1;
int newSwitch2;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
newSwitch1 = digitalRead(switch1);
newSwitch2 = digitalRead(switch2);
photoVal = analogRead(photoPin);
potVal = analogRead(potPin);
potDelay = map(potVal, 0, 1023, 0, 250);
photoDelay = map(photoVal, 0, 1023, 0, 250);
//1st case
if (newSwitch1 == 1 && newSwitch2 == 1)
{
var = 1;
}
//2nd case
if (newSwitch1 ==0 && newSwitch2 == 1)
{
var = 2;
}
if(newSwitch1 == 1 && newSwitch2 == 0)
{
var = 3;
}
if(newSwitch1 == 0 && newSwitch2 == 0)
{
var = 4;
}
switch(var)
{
case 1:
potToLEDphotoToSpeaker(); //case 1
break;
case 2:
photoToLEDpotToSpeaker(); //case 2
break;
case 3:
potToLEDblinkAndSpeaker();
break;
case 4:
photoToLEDblinkAndSpeaker();
break;
}
}
void photoToLEDblinkAndSpeaker()
{
//case 4
analogWrite(ledPin, HIGH); //analogWrite(pin, value)
delay(photoDelay);
analogWrite(ledPin,LOW);
delay(photoDelay);
tone(speakerPin, photoVal*2); //instead of *4
delay(photoDelay);
noTone(speakerPin);
}
void photoToLEDpotToSpeaker()
{
//case 2
analogWrite(ledPin, (photoVal/4));
tone(speakerPin, potVal*4);
delay(20);
}
void potToLEDblinkAndSpeaker()
{
//case 3
analogWrite(ledPin, HIGH); //analogWrite(pin, value)
delay(potDelay);
analogWrite(ledPin,LOW);
delay(potDelay);
tone(speakerPin, potVal*4);
delay(potDelay);
noTone(speakerPin);
}
void potToLEDphotoToSpeaker()
{
//case 1
//pot to LED and photo to speaker
analogWrite(ledPin, (potVal/4));
tone(speakerPin, photoVal);
delay(20);
}

Reply