Guest User

Untitled

a guest
Mar 22nd, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. #include <LiquidCrystal_I2C.h>
  2.  
  3. const int trigPin = 12;
  4. const int echoPin = 11;
  5. int soundPin = 3;
  6. int n=0;
  7. #include <dht11.h> // подключаем библиотеку
  8. dht11 DHT; // инициализация экземпляра датчика
  9. #define DHT11PIN 4 // вывод 8 будет шиной DATA
  10.  
  11. byte degree[8] = // Битовая маска символа градуса
  12. {
  13. B00111,
  14. B00101,
  15. B00111,
  16. B00000,
  17. B00000,
  18. B00000,
  19. B00000,
  20. };
  21. LiquidCrystal_I2C lcd(0x27,16,2);
  22. void setup() {
  23.  
  24. pinMode(trigPin, OUTPUT); // триггер - выходной пин
  25. pinMode(echoPin, INPUT); // эхо - входной
  26. pinMode(13, OUTPUT); // триггер - выходной пин
  27. pinMode(soundPin, OUTPUT);
  28. lcd.init(); // Инициализация lcd
  29. lcd.backlight(); // Включаем подсветку
  30. lcd.createChar(1, degree);
  31. Serial.begin(9600); // инициализация послед. порта
  32. }
  33.  
  34. void loop() {
  35. long distance = getDistance(); // получаем дистанцию с датчика
  36. Serial.println(distance); // выводим в последовательный порт
  37. if(distance<70)
  38. {
  39. digitalWrite(13,HIGH);
  40.  
  41. }
  42. int chk = DHT.read(DHT11PIN);
  43.  
  44. Serial.print("h=");
  45. Serial.print(DHT.humidity);
  46. Serial.print("%\t");
  47.  
  48. Serial.print("t=");
  49. Serial.print(DHT.temperature);
  50. Serial.println("C");
  51. if(DHT.temperature>26)
  52. {
  53. analogWrite(soundPin, 30000); // включаем пьезоизлучатель
  54. // delay(1000); // на 1000 мс (1 сек),
  55. // analogWrite(soundPin, 0); // выключаем звук
  56. // delay(1000); // на 1 сек.
  57.  
  58. }
  59. else
  60. analogWrite(soundPin, 0); // включаем пьезоизлучатель
  61. if(n==600)
  62. {
  63. n=0;
  64. digitalWrite(13,LOW);
  65. }
  66. n++;
  67. lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки
  68. lcd.print("Humidity = % "); // Выводим текст
  69. lcd.setCursor(11, 0);
  70. lcd.print(DHT.humidity, 1);
  71. lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки
  72. lcd.print("Temp = \1C "); // Выводим текст, \1 - значок градуса
  73. lcd.setCursor(11, 1);
  74. lcd.print(DHT.temperature,1);
  75. delay(100);
  76. }
  77.  
  78. // Определение дистанции до объекта в см
  79. long getDistance() {
  80. long distacne_cm = getEchoTiming() * 1.7 * 0.01;
  81. return distacne_cm;
  82. }
  83.  
  84. // Определение времени задержки
  85. long getEchoTiming() {
  86. digitalWrite(trigPin, LOW);
  87. delayMicroseconds(2);
  88. digitalWrite(trigPin, HIGH); // генерируем импульс запуска
  89. delayMicroseconds(10);
  90. digitalWrite(trigPin, LOW);
  91. // определение на пине echoPin длительности уровня HIGH, мксек:
  92. long duration = pulseIn(echoPin, HIGH);
  93. return duration;
  94. }
Add Comment
Please, Sign In to add comment