Unit 6: Tracking Sound Changes

 

 

Code for Sketch One: 


 

const int RED_PIN = 11;   // Red pin for RGB LED

const int GREEN_PIN = 10; // Green pin for RGB LED

const int BLUE_PIN = 9;   // Blue pin for RGB LED

const int BUZZER_PIN = 8; // Pin for the active buzzer

const int POT_PIN = A0;   // Analog pin for potentiometer

 

void setup() {

  // Initialize the RGB LED pins as outputs

  pinMode(RED_PIN, OUTPUT);

  pinMode(GREEN_PIN, OUTPUT);

  pinMode(BLUE_PIN, OUTPUT);

  // Initialize the buzzer pin as an output

  pinMode(BUZZER_PIN, OUTPUT);

}

 

void loop() {

  // Read the potentiometer value

  int potValue = analogRead(POT_PIN);

  // Map the potentiometer value to RGB and pause duration parameters

  int redValue = map(potValue, 0, 1023, 0, 255);

  int greenValue = map(potValue, 0, 1023, 255, 0);

  int pauseDuration = map(potValue, 0, 1023, 2000, 100); // Decrease pause duration as potValue increases

 

  // Set the RGB LED color

  analogWrite(RED_PIN, redValue);

  analogWrite(GREEN_PIN, greenValue);

  analogWrite(BLUE_PIN, 0); // Keeping blue off for simplicity

 

  // If the potentiometer is in the ‘red’ state, beep continuously

  if (redValue >= 255) {

    tone(BUZZER_PIN, 494); // Continuous beep at frequency 494 Hz

  } else {

    // Play the buzzer tone (fixed pitch B note, frequency 494 Hz)

    tone(BUZZER_PIN, 494, 500); // Beep for 500ms

    delay(500); // Beep duration

    delay(pauseDuration); // Pause duration based on potValue

  }

}

Code for Sketch Two:


 

const int RED_PIN = 11, GREEN_PIN = 10, BLUE_PIN = 9, BUZZER_PIN = 8, POT_PIN = A0;

 

int randomThreshold; // Random threshold for red state

 

void setup() {

  // Initialize the RGB LED pins as outputs

  pinMode(RED_PIN, OUTPUT);

  pinMode(GREEN_PIN, OUTPUT);

  pinMode(BLUE_PIN, OUTPUT);

  // Initialize the buzzer pin as an output

  pinMode(BUZZER_PIN, OUTPUT);

  // Seed the random number generator

  randomSeed(analogRead(A1));

  // Set an initial random threshold for the red state

  randomThreshold = random(512, 1023);

}

 

void loop() {

  // Read the potentiometer value

  int potValue = analogRead(POT_PIN);

  // Map the potentiometer value to RGB and pause duration parameters

  int redValue = map(potValue, 0, 1023, 0, 255);

  int greenValue = map(potValue, 0, 1023, 255, 0);

  int pauseDuration = map(potValue, 0, 1023, 2000, 100); // Decrease pause duration as potValue increases

 

  // Set the RGB LED color

  analogWrite(RED_PIN, redValue);

  analogWrite(GREEN_PIN, greenValue);

  analogWrite(BLUE_PIN, 0); // Keeping blue off for simplicity

 

  // Check if the potentiometer value exceeds the random threshold

  if (potValue >= randomThreshold) {

    // If the threshold is exceeded, set the red state and beep continuously

    analogWrite(RED_PIN, 255);

    analogWrite(GREEN_PIN, 0);

    analogWrite(BLUE_PIN, 0);

    tone(BUZZER_PIN, 494); // Continuous beep at frequency 494 Hz

 

    // Reset the random threshold to a new value

    randomThreshold = random(512, 1023);

  } else {

    // Play the buzzer tone (fixed pitch B note, frequency 494 Hz)

    tone(BUZZER_PIN, 494, 500); // Beep for 500ms

    delay(500); // Beep duration

    delay(pauseDuration); // Pause duration based on potValue

  }

}

Notes: