// Lycée PE MARTIN
// Le 4/1/2023
// Titre : Thermomètre
// Matériels : Arduino Uno, lcd 2x16 I2C, NTC KY-013
// Description : voir le sujet
// Ressources
// Bibliothèque : https://www.arduino.cc/reference/en/libraries/liquidcrystal/
// Bibliothèque
#include <LiquidCrystal_I2C.h>
// Paramètres de l'objet lcd
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
// CTN
#define KY_013 A0 // Module KY-013 (CTN+R) connecté à l'entrée analogique A0
const float BETA = 3950;
// LED
#define LED 8
// Création de l'objet lcd
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
// Initialisation de la console
Serial.begin(9600);
// Configuration de la broche LED
pinMode(LED, OUTPUT);
// Initialisation du LCD
lcd.init(); // A placer en premier
lcd.backlight(); // Commande du rétroéclairage
lcd.print("Thermometre");
delay(3000);
}
// Programme principal
void loop() {
// Lire
// ------------------------------
int N = analogRead(KY_013);
// Traiter
// ------------------------------
// Modèle linéarisé
//float Temp = (798.72- N)/11.469;
// Modèle non linéarisé
float Temp = 1 / (log(1 / (1023.0 / N - 1.0)) / BETA + 1 / 298.15) - 273.15;
// Alarme
if (10<= Temp <=40){ // ((Temp <10) || (Temp >40))
digitalWrite(LED,LOW);
}
else{
digitalWrite(LED,HIGH);
}
// Ecrire
// ------------------------------
// Ecrire dans la console
Serial.print("Temperature: ");
Serial.print(Temp);
Serial.println("℃");
// Ecrire sur le LCD
lcd.clear();
lcd.print("Temp.:");
lcd.print(Temp);
lcd.write(0xdf); // °
lcd.print("C");
// Une mesure par seconde
delay(1000);
}
Thermistance CTN & R
THERMOMETRE
KY-013