Advertisement
Guest User

Untitled

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