Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal_I2C.h>
- const int trigPin = 12;
- const int echoPin = 11;
- int soundPin = 3;
- int n=0;
- #include <dht11.h> // подключаем библиотеку
- dht11 DHT; // инициализация экземпляра датчика
- #define DHT11PIN 4 // вывод 8 будет шиной DATA
- byte degree[8] = // Битовая маска символа градуса
- {
- B00111,
- B00101,
- B00111,
- B00000,
- B00000,
- B00000,
- B00000,
- };
- LiquidCrystal_I2C lcd(0x27,16,2);
- void setup() {
- pinMode(trigPin, OUTPUT); // триггер - выходной пин
- pinMode(echoPin, INPUT); // эхо - входной
- pinMode(13, OUTPUT); // триггер - выходной пин
- pinMode(soundPin, OUTPUT);
- lcd.init(); // Инициализация lcd
- lcd.backlight(); // Включаем подсветку
- lcd.createChar(1, degree);
- Serial.begin(9600); // инициализация послед. порта
- }
- void loop() {
- long distance = getDistance(); // получаем дистанцию с датчика
- Serial.println(distance); // выводим в последовательный порт
- if(distance<70)
- {
- digitalWrite(13,HIGH);
- }
- int chk = DHT.read(DHT11PIN);
- Serial.print("h=");
- Serial.print(DHT.humidity);
- Serial.print("%\t");
- Serial.print("t=");
- Serial.print(DHT.temperature);
- Serial.println("C");
- if(DHT.temperature>26)
- {
- analogWrite(soundPin, 30000); // включаем пьезоизлучатель
- // delay(1000); // на 1000 мс (1 сек),
- // analogWrite(soundPin, 0); // выключаем звук
- // delay(1000); // на 1 сек.
- }
- else
- analogWrite(soundPin, 0); // включаем пьезоизлучатель
- if(n==600)
- {
- n=0;
- digitalWrite(13,LOW);
- }
- n++;
- lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки
- lcd.print("Humidity = % "); // Выводим текст
- lcd.setCursor(11, 0);
- lcd.print(DHT.humidity, 1);
- lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки
- lcd.print("Temp = \1C "); // Выводим текст, \1 - значок градуса
- lcd.setCursor(11, 1);
- lcd.print(DHT.temperature,1);
- delay(100);
- }
- // Определение дистанции до объекта в см
- long getDistance() {
- long distacne_cm = getEchoTiming() * 1.7 * 0.01;
- return distacne_cm;
- }
- // Определение времени задержки
- long getEchoTiming() {
- digitalWrite(trigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(trigPin, HIGH); // генерируем импульс запуска
- delayMicroseconds(10);
- digitalWrite(trigPin, LOW);
- // определение на пине echoPin длительности уровня HIGH, мксек:
- long duration = pulseIn(echoPin, HIGH);
- return duration;
- }
Add Comment
Please, Sign In to add comment