#include <LiquidCrystal.h> // Décl des pins const int sensorPin = A0; const int switchPin = 13 ; int previousTmpSensorVal = 0 ; float voltage = 0.0; float temperatureC = 0.0; int switchState = 0 ; // Constantes du LCD const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); void setup() { pinMode(13, INPUT); lcd.begin(16,2); lcd.print("Affichage"); lcd.setCursor(0,1); lcd.print("Temperature"); delay(1000); // Reinitialisation LCD lcd.clear(); } void loop() { // Lecture de la valeur du capteur int tmpSensorVal = analogRead(sensorPin); // Lecture de l'interrupteur switchState = digitalRead(switchPin); lcd.setCursor(15,1); lcd.print(switchState); // Valeurx Fixes du LCD lcd.setCursor(8,0); lcd.print("V:"); lcd.setCursor(0,1); lcd.print("Temp.:"); lcd.setCursor(12,1); lcd.print("C"); // Si changement capteur, on (re)calcule la temperature if (tmpSensorVal != previousTmpSensorVal ) { // Calcul du volatge et conversion en degré Celsius voltage = tmpSensorVal * 5.0; voltage /= 1024.0; temperatureC = (voltage - 0.5) * 100 ; previousTmpSensorVal = tmpSensorVal ; } // Affichage sur demande (appui switch) if (switchState == 1) { // Affichage LCD lcd.display(); lcd.setCursor(0,0); lcd.print(tmpSensorVal); lcd.setCursor(10,0); lcd.print(voltage); lcd.setCursor(7,1); lcd.print(temperatureC); delay(10000); } else { // On éteint le LCD lcd.noDisplay(); } delay(500); }