Advertisement
Guest User

Untitled

a guest
Aug 24th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 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. pinMode(11, INPUT);
  24. updateTemp();
  25. }
  26.  
  27. void loop() {
  28. buttonState = digitalRead(11);
  29. if (buttonState == HIGH) {
  30. changeState();
  31. }
  32. switch (etatCourant) {
  33. case temp:
  34. showTempCourante();
  35. break;
  36. case maxTemp:
  37. showMaxTemp();
  38. break;
  39. case minTemp:
  40. showMinTemp();
  41. break;
  42. }
  43.  
  44. }
  45. void changeState() {
  46. if (etatCourant == temp) {
  47. etatCourant = maxTemp;
  48. } else if (etatCourant == maxTemp) {
  49. etatCourant = minTemp;
  50. } else if (etatCourant == minTemp) {
  51. etatCourant = temp;
  52. }
  53. }
  54. void showTempCourante() {
  55. updateTemp();
  56. monEcran.clear();
  57. monEcran.print("temperature courante:");
  58. monEcran.setCursor(0, 1);
  59. monEcran.print(tempCourante);
  60. }
  61. void showMaxTemp() {
  62. updateTemp();
  63. monEcran.clear();
  64. monEcran.print("temperature maximale:");
  65. monEcran.setCursor(0, 1);
  66. monEcran.print(maxTempC);
  67. }
  68. void showMinTemp() {
  69. updateTemp();
  70. monEcran.clear();
  71. monEcran.print("temperature minimale:");
  72. monEcran.setCursor(0, 1);
  73. monEcran.print(minTempC);
  74. }
  75. void updateTemp() {
  76. sensors.requestTemperatures();
  77. double tempNow = sensors.getTempCByIndex(0);
  78. if (minTempC == maxTempC == tempCourante == 0) {
  79. maxTempC = tempNow;
  80. minTempC = tempNow;
  81. tempCourante = tempNow;
  82. }
  83. if (tempNow >= maxTempC) {
  84. maxTempC = tempNow;
  85. }
  86. if (tempNow <= minTempC) {
  87. minTempC = tempNow;
  88. }
  89. tempCourante = tempNow;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement