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