Advertisement
Guest User

Untitled

a guest
Aug 24th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. #include <LiquidCrystal.h> // on importe la bibliothèque
  2. #include <OneWire.h>
  3. #include <DallasTemperature.h>
  4. #define ONE_WIRE_BUS 10
  5. LiquidCrystal monEcran(8, 9, 4, 5, 6, 7); // on crée l'objet écran
  6. OneWire oneWire(ONE_WIRE_BUS);
  7. DallasTemperature sensors(&oneWire);
  8. enum etat {temp, maxTemp, minTemp};
  9. enum etat etatCourant = temp;
  10. double minTempC = 0;
  11. double maxTempC = 0;
  12. double tempCourante = 0;
  13. int buttonState;
  14. void changeState();
  15. void showTempCourante();
  16. void showMinTemp();
  17. void updateTemp();
  18. void setup() {
  19. // put your setup code here, to run once:
  20. monEcran.begin(16, 2); //on initialise la communication avec 16 colonnes et deux lignes
  21. monEcran.clear(); // on efface l'écran
  22. monEcran.print("Bonjour"); // on écrit Bonjour
  23. updateTemp();
  24. }
  25.  
  26. void loop() {
  27. buttonState = digitalRead(11);
  28. if (buttonState == HIGH) {
  29. changeState();
  30. switch (etatCourant) {
  31. case temp:
  32. showTempCourante();
  33. break;
  34. case maxTemp:
  35. showMaxTemp();
  36. break;
  37. case minTemp:
  38. showMinTemp();
  39. break;
  40. }
  41. }
  42. delay(30000);
  43. }
  44. void changeState() {
  45. if (etatCourant == temp) {
  46. etatCourant = maxTemp;
  47. } else if (etatCourant == maxTemp) {
  48. etatCourant = minTemp;
  49. } else if (etatCourant == minTemp) {
  50. etatCourant = temp;
  51. }
  52. }
  53. void showTempCourante() {
  54. updateTemp();
  55. monEcran.clear();
  56. monEcran.print("temperature courante:");
  57. monEcran.setCursor(0, 1);
  58. monEcran.print(tempCourante);
  59. }
  60. void showMaxTemp() {
  61. updateTemp();
  62. monEcran.clear();
  63. monEcran.print("temperature maximale:");
  64. monEcran.setCursor(0, 1);
  65. monEcran.print(maxTempC);
  66. }
  67. void showMinTemp() {
  68. updateTemp();
  69. monEcran.clear();
  70. monEcran.print("temperature minimale:");
  71. monEcran.setCursor(0, 1);
  72. monEcran.print(minTempC);
  73. }
  74. void updateTemp() {
  75. sensors.requestTemperatures();
  76. double tempNow = sensors.getTempCByIndex(0);
  77. if (minTempC == maxTempC == tempCourante == 0) {
  78. maxTempC = tempNow;
  79. minTempC = tempNow;
  80. tempCourante = tempNow;
  81. }
  82. if (tempNow >= maxTempC) {
  83. maxTempC = tempNow;
  84. }
  85. if (tempNow <= minTempC) {
  86. minTempC = tempNow;
  87. }
  88. tempCourante = tempNow;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement