Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h> // on importe la bibliothèque
- #include <OneWire.h>
- #include <DallasTemperature.h>
- #define ONE_WIRE_BUS 10
- LiquidCrystal monEcran(8, 9, 4, 5, 6, 7); // on crée l'objet écran
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- enum etat {temp, maxTemp, minTemp};
- enum etat etatCourant = temp;
- double minTempC = 0;
- double maxTempC = 0;
- double tempCourante = 0;
- int buttonState;
- void changeState();
- void showTempCourante();
- void showMinTemp();
- void updateTemp();
- void setup() {
- // put your setup code here, to run once:
- monEcran.begin(16, 2); //on initialise la communication avec 16 colonnes et deux lignes
- monEcran.clear(); // on efface l'écran
- monEcran.print("Bonjour"); // on écrit Bonjour
- pinMode(11, INPUT);
- updateTemp();
- }
- void loop() {
- buttonState = digitalRead(11);
- if (buttonState == HIGH) {
- changeState();
- }
- switch (etatCourant) {
- case temp:
- showTempCourante();
- break;
- case maxTemp:
- showMaxTemp();
- break;
- case minTemp:
- showMinTemp();
- break;
- }
- }
- void changeState() {
- if (etatCourant == temp) {
- etatCourant = maxTemp;
- } else if (etatCourant == maxTemp) {
- etatCourant = minTemp;
- } else if (etatCourant == minTemp) {
- etatCourant = temp;
- }
- }
- void showTempCourante() {
- updateTemp();
- monEcran.clear();
- monEcran.print("temperature courante:");
- monEcran.setCursor(0, 1);
- monEcran.print(tempCourante);
- }
- void showMaxTemp() {
- updateTemp();
- monEcran.clear();
- monEcran.print("temperature maximale:");
- monEcran.setCursor(0, 1);
- monEcran.print(maxTempC);
- }
- void showMinTemp() {
- updateTemp();
- monEcran.clear();
- monEcran.print("temperature minimale:");
- monEcran.setCursor(0, 1);
- monEcran.print(minTempC);
- }
- void updateTemp() {
- sensors.requestTemperatures();
- double tempNow = sensors.getTempCByIndex(0);
- if (minTempC == maxTempC == tempCourante == 0) {
- maxTempC = tempNow;
- minTempC = tempNow;
- tempCourante = tempNow;
- }
- if (tempNow >= maxTempC) {
- maxTempC = tempNow;
- }
- if (tempNow <= minTempC) {
- minTempC = tempNow;
- }
- tempCourante = tempNow;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement