// Define the analog pin for the potentiometer
int potPin = A0;
// Define the LED pins
int redPin = 11;
int yellowPin = 10;
int greenPin = 9;
// Voltage reference (in volts) for the Arduino, typically 5V or 3.3V
float voltageReference = 5.0;
void setup() {
// Begin Serial Communication
Serial.begin(9600);
// Set the LED pins as outputs
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);
}
void loop() {
// Read the potentiometer value (0 to 1023)
int sensorValue = analogRead(potPin);
// Map the potentiometer value to PWM range (0 to 255) for LED brightness
int ledBrightness = map(sensorValue, 0, 1023, 0, 255);
// Convert the ADC reading to voltage
float voltage = sensorValue * (voltageReference / 1023.0);
// Print the values to the Serial Monitor
Serial.print("Potentiometer Reading: ");
Serial.print(sensorValue);
Serial.print(" -> Voltage: ");
Serial.print(voltage);
Serial.print(" V");
Serial.print(" -> LED Brightness: ");
Serial.println(ledBrightness);
// Control the LEDs based on voltage
if (voltage <= 1.5) {
digitalWrite(redPin, HIGH); // Red LED ON
digitalWrite(yellowPin, LOW); // Yellow LED OFF
digitalWrite(greenPin, LOW); // Green LED OFF
} else if (voltage > 1.5 && voltage <= 4.0) {
digitalWrite(redPin, LOW); // Red LED OFF
digitalWrite(yellowPin, HIGH); // Yellow LED ON
digitalWrite(greenPin, LOW); // Green LED OFF
} else {
digitalWrite(redPin, LOW); // Red LED OFF
digitalWrite(yellowPin, LOW); // Yellow LED OFF
digitalWrite(greenPin, HIGH); // Green LED ON
}
// Wait a bit before the next reading
delay(500);
}