#define sensor A0 // LM35 sensor connected to analog pin A0
#define led 13 // LED connected to digital pin 13 (PWM capable)
void setup() {
Serial.begin(9600); // Initialize serial communication
pinMode(led, OUTPUT); // Set LED pin as output
pinMode(sensor, INPUT); // Set sensor pin as input
}
void loop() {
int sensorValue = analogRead(sensor); // Read analog value from LM35
float voltage = sensorValue * (5.0 / 1023.0); // Convert analog value to voltage (0-5V)
float temperature = voltage * 100.0; // Convert voltage to temperature in °C
// Map temperature range (0-100°C) to PWM range (0-255)
int brightness = ConvertTemperatureToPWM(temperature);
analogWrite(led, brightness); // Set LED brightness using PWM
Serial.print("Analog Reading: ");
Serial.print(sensorValue);
Serial.print(", Output Voltage (V): ");
Serial.print(voltage);
Serial.print(", Temperature (°C): ");
Serial.println(temperature);
delay(1000); // Delay for readability
}
int ConvertTemperatureToPWM(float temperature) {
if (temperature <= 0) {
return 0; // If temperature is below 0°C, set PWM to 0 (LED off)
} else if (temperature >= 100) {
return 255; // If temperature is above 100°C, set PWM to 255 (full brightness)
} else {
return int(temperature * 2.55); // Scale temperature linearly to PWM range (0-255)
}
}