Assignment: sound/LED controls
code here:
int state;
void setup(){
pinMode(9, OUTPUT);
pinMode(2, OUTPUT);
pinMode(12, INPUT);
state = 1;
Serial.begin(9600);
}
void loop(){
int pot = analogRead(A3);
int photo = analogRead(A1);
int potLight = map(pot, 0, 1024, 0, 255);
int photoLight = map(photo, 0, 1024, 0, 255);
int photoSpeaker = map(photo, 0, 1024, 500, 80);
int potSpeaker = map(pot, 0, 1024, 80, 500);
int potDelay = map(pot, 0, 1024, 0, 500);
int photoDelay = map(photo, 0, 1024, 0, 500);
boolean btnRead = debouncefunction(12);
if(btnRead == true){
btnRead = 0;
delay(200);
state += 1;
if(state > 4){
state = 1;
}
}
if(state == 1){
//state one pot->LED, photosensor->speaker
analogWrite(9, potLight);
tone(2, photoSpeaker);
}
if(state == 2){
//photoell->LED, pot->speaker
analogWrite(9, photoLight);
tone(2, potSpeaker);
}
if(state == 3){
// photocell->LED/speaker, pot->speaker tone and led blink rate
tone(2, potSpeaker);
delay(photoDelay);
noTone(2);
delay(photoDelay);
analogWrite(9, photoLight);
delay(potDelay);
analogWrite(9, 0);
delay(potDelay);
}
if(state == 4){
analogWrite(9, photoLight);
delay(photoDelay);
analogWrite(9, 0);
tone(2, potSpeaker);
delay(photoDelay);
}
Serial.println(state);
}
int debouncedelay = 500;
boolean debouncefunction(int pin){
boolean state;
boolean previousState;
previousState = digitalRead(pin);
for(int counter =0; counter > debouncedelay; counter++){
delay(1);
state = digitalRead(pin); //readpin
if(state != previousState)
{counter = 0;
previousState = state;
}
}
return state;
}
Reply