#define ADC_VREF_mV 5000.0 // Référence en millivolts
#define ADC_RESOLUTION 4096.0 // Résolution de l'ADC (12 bits)
const int LM35 = 15; // Pin de lecture du LM35 (ex. GPIO 15)
const int LED1 = 12; // Pin de la première LED (ex. GPIO 12)
const int LED2 = 13; // Pin de la deuxième LED (ex. GPIO 13)
const int trigPin = 19; // Pin Trigger du capteur ultrason (ex. GPIO 19)
const int echoPin = 18; // Pin Echo du capteur ultrason (ex. GPIO 18)
void setup() {
pinMode(LM35, INPUT); // Pin de lecture du LM35
pinMode(LED1, OUTPUT); // Pin de la première LED
pinMode(LED2, OUTPUT); // Pin de la deuxième LED
pinMode(trigPin, OUTPUT); // Pin Trigger du capteur ultrason
pinMode(echoPin, INPUT); // Pin Echo du capteur ultrason
Serial.begin(115200); // Initialisation de la communication série
}
void loop() {
// Lecture du capteur LM35
int ADC;
float temp;
ADC = analogRead(LM35);
float milliVolt = ADC * (ADC_VREF_mV / ADC_RESOLUTION);
temp = milliVolt / 10;
// Afficher la température dans le moniteur série
Serial.print("Température = ");
Serial.print(temp);
Serial.println(" °C");
// Contrôler les LEDs selon la température
if (temp < 25.0) { // Si la température est inférieure à 25°C
digitalWrite(LED1, HIGH); // Allumer la LED1
digitalWrite(LED2, LOW); // Éteindre la LED2
} else { // Si la température est supérieure ou égale à 25°C
digitalWrite(LED1, LOW); // Éteindre la LED1
digitalWrite(LED2, HIGH); // Allumer la LED2
}
// Mesure de la distance avec le capteur ultrason
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
float distance = (duration * 0.0343) / 2; // Calcul de la distance en cm
// Afficher la distance dans le moniteur série
Serial.print("Distance = ");
Serial.print(distance);
Serial.println(" cm");
// Contrôler les LEDs selon la distance
if (distance < 100.0) { // Si la distance est inférieure à 10 cm
digitalWrite(LED1, HIGH); // Allumer la LED1
digitalWrite(LED2, LOW); // Éteindre la LED2
} else { // Si la distance est supérieure ou égale à 10 cm
digitalWrite(LED1, LOW); // Éteindre la LED1
digitalWrite(LED2, HIGH); // Allumer la LED2
}
delay(2000); // Attendre 1 seconde avant de refaire une nouvelle lecture
}