Advertisement
Igorochenka

Umnie_Dom_2

Jan 27th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.70 KB | None | 0 0
  1. #include <Servo.h>  // Включаем библиотеку Сервопривода
  2. #include <DHT.h> // Включаем библиотеку Термометра
  3. const int move_sensor = 2; // Пин Датчика Приближения
  4. const int button = 4; // Пин Кнопки
  5. const int motor1_IN3 = 5; // Пин Мотора на Драйвер_1 L298N
  6. const int motor2_IN4 = 6; // Пин Мотора на Драйвер_2 L298N
  7. const int LEDpin1 = 7; // Пин Светодиода_1
  8. const int LEDpin2 = 8; // Пин Светодиода_2
  9. const int motor_ENB = 9; // Пин скорости мотора
  10. const int DHTPIN = 11; // Пин Датчика Температуры
  11. const int LEDpin3 = 12; // Пин Светодиода_3
  12. int state = LOW; // Переменная состояния выхода    
  13. int reading; // Переменная значения кнопки в данный момент          
  14. int previous = HIGH; // Переменная предыдущего значения кнопки
  15. #define DHTTYPE DHT11 // Тип Датчика Температуры (DHT11)
  16. DHT dht(DHTPIN, DHTTYPE); // Обозначаем Датчик Температуры для Библиотеки
  17.  
  18. long time = 0; // Переменная последнего времени , когда выход был переключен      
  19. long debounce = 200; // Переменная дребежжания
  20.  
  21. Servo servo1; // Обозначаем Сервопривод для Библиотеки Сервоприводов
  22.  
  23. void setup()
  24. {
  25.   servo1.attach(3); // Подключить Сервопривод Пин - 3
  26.   pinMode(A0, INPUT); // Пин A0 - вход (Фоторезистор)
  27.   pinMode (2, INPUT); // Пин 2 - вход (Датчик приближения)
  28.   pinMode(4, INPUT); // Пин 4 - вход (Кнопка)
  29.   pinMode(5, OUTPUT); // Пин 5 - выход (Мотор)
  30.   pinMode(6, OUTPUT); // Пин 6 - выход (Мотор)
  31.   pinMode (7, OUTPUT); // Пин 7 - выход (Светодиод)
  32.   pinMode (8, OUTPUT); // Пин 8 - выход (Светодиод)
  33.   pinMode (9, OUTPUT); // Пин 9 - выход (Скорость мотора)
  34.   pinMode (12, OUTPUT); // Пин 12 - выход (Светодиод)
  35. }
  36.  
  37. void loop()
  38. {
  39.   /* Гараж открывается и закрывается по кнопке. */
  40.   {
  41.     reading = digitalRead(4); // Присваивем переменной значение с 4 пина (кнопки)
  42.     if (reading == HIGH && previous == LOW && millis() - time > debounce) // Если значение кнопки HIGH, до этого было LOW и нет дребежжания
  43.       {
  44.         if (state == HIGH) // Если значение выхода HIGH , то сделать LOW.
  45.         state = LOW;
  46.         else // Иначе оставить
  47.         state = HIGH;
  48.         time = millis();    
  49.        }
  50.     digitalWrite(8, state); // Значение светодиода = состоянию выхода
  51.     if (state == HIGH) // Если значение выхода HIGH , то сервопривод на угол 0
  52.       {
  53.         servo1.write(0);
  54.       }  
  55.     else    // Иначе на 90
  56.       {                      
  57.         servo1.write(90);
  58.       }
  59.     previous = reading;
  60.   }
  61.  
  62.   /* Свет включается , если на улице темно. */
  63.   {
  64.     if (analogRead(A0) < 150) // Если значение фоторезистора меньше 150 , то включить светодиод
  65.     {
  66.       digitalWrite(12, HIGH);
  67.     }
  68.     else
  69.     {
  70.       digitalWrite(12, LOW); // Иначе выключить
  71.     }
  72.   }
  73.  
  74.   /* Если температура больше 27 градусов , то включается вентилятор. */
  75.   {
  76.     float t = dht.readTemperature();
  77.     if (t > 27)
  78.     {
  79.       digitalWrite (6, HIGH); // Включить мотор на скорость 200
  80.       digitalWrite (5, LOW);
  81.       analogWrite(9,200);
  82.     }
  83.     else // Иначе выключить
  84.     {
  85.       digitalWrite (6, LOW);
  86.       digitalWrite (5, LOW);
  87.     }  
  88.   }
  89.   /* Если есть движение , то включить свет. */
  90.   {
  91.     int  move;  // Переменной move присвоить значение Датчика движения              
  92.     move = digitalRead (2);        
  93.     if(move == HIGH) // Если есть движение , то включить светодиод и не выключать 40 секунд                
  94.     {            
  95.       digitalWrite (7, HIGH);
  96.       delay (40000)
  97.       digitalWrite (7, LOW);
  98.     }
  99.     else // Иначе выключить
  100.     {
  101.       digitalWrite (7, LOW);
  102.     }
  103.   }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement