Unit 4: Taking Control

 

 

Code for Sketch One: 


const int POT_PIN = A0;        // Potentiometer analog input pin

const int RED_LED_PIN = 11;    // Red LED pin of RGB LED

 

void setup() {

  pinMode(RED_LED_PIN, OUTPUT); // Set red LED pin as output

 

}

 

void loop() {

  // Read the value from the potentiometer (0 to 1023)

  int potValue = analogRead(POT_PIN);

 

  // Map the potentiometer value to the delay time (100 to 1000 milliseconds)

  int delayTime = map(potValue, 0, 1023, 100, 1000);

 

  // Turn on the red component of the RGB LED

  analogWrite(RED_LED_PIN, 255);  // Full brightness

  delay(delayTime);                // Delay for the specified time

 

  // Turn off the red component of the RGB LED

  analogWrite(RED_LED_PIN, 0);    // No brightness (off)

  delay(delayTime);                // Delay for the specified time

 

}

 

Code for Sketch Two:

const int POT_PIN = A0;        // Potentiometer analog input pin

const int RED_LED_PIN = 11;    // Red LED pin of RGB LED

const int GREEN_LED_PIN = 10;  // Green LED pin of RGB LED

const int BLUE_LED_PIN = 9;    // Blue LED pin of RGB LED

 

void setup() {

  pinMode(RED_LED_PIN, OUTPUT);   // Set red LED pin as output

  pinMode(GREEN_LED_PIN, OUTPUT); // Set green LED pin as output

  pinMode(BLUE_LED_PIN, OUTPUT);  // Set blue LED pin as output

}

 

void loop() {

  // Read the value from the potentiometer (0 to 1023)

  int potValue = analogRead(POT_PIN);

 

  // Define threshold values for color transitions

  int amberThreshold = 512; // Potentiometer reading for transition to amber

  int redThreshold = 256;   // Potentiometer reading for transition to red

 

  // Determine the current color based on the potentiometer value

  if (potValue >= amberThreshold) {

    // Green color

    setColor(0, 255, 0); // Green

  } else if (potValue >= redThreshold) {

    // Amber color

    setColor(255, 191, 0); // Amber

  } else {

    // Red color

    setColor(255, 0, 0); // Red

  }

}

 

void setColor(int R, int G, int B) {

  analogWrite(RED_LED_PIN, R);

  analogWrite(GREEN_LED_PIN, G);

  analogWrite(BLUE_LED_PIN, B);

}

Notes: