User Tools

Site Tools


smartdoor

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
smartdoor [2021/06/13 20:29] – создано adminsmartdoor [2021/06/13 21:44] (current) – [Код] admin
Line 5: Line 5:
  
 ====Схема==== ====Схема====
 +{{ :smartdoor:smartdoor.png?direct&400 |}}
  
 +Используется два ультразвуковых дальномера HC-SR04, подключенных к цифровым портам arduino. Дальномеры можно расположить над дверью так, чтобы они "смотрели" в разные стороны от двери вдоль коридора. 
 ====Код==== ====Код====
  
 +<code c> 
 +#include "Ultrasonic.h"
 +
 +// пины подключения первого УЗД
 +#define Trig1 12
 +#define Echo1 11
 +// пины подключения второго УЗД
 +#define Trig2  4
 +#define Echo2  3
 +
 +#define RedLED 8 // пин подключения красного светодиода
 +#define GreenLED 7 // пин подключения зеленого светодиода
 +
 +long intervalSonar = 500;  // интервал опроса сонара в миллисекундах
 +
 +Ultrasonic ultrasonic1(Trig1, Echo1);
 +Ultrasonic ultrasonic2(Trig2, Echo2);
 +
 +void setup()
 +{
 +  Serial.begin(9600);
 +  pinMode(RedLED, OUTPUT);
 +  pinMode(GreenLED, OUTPUT);
 +}
 +
 +void loop()
 +{
 +  // опрос дальномеров
 +  float dist_cm1 = ultrasonic1.Ranging(CM); // get distance
 +  float dist_cm2 = ultrasonic2.Ranging(CM); // get distance
 +
 +  // вывод контрольных показаний в монитор порта
 +  Serial.print("Dist 1 = "); Serial.println(dist_cm1);
 +  Serial.print("Dist 2 = "); Serial.println(dist_cm2);
 +
 +  // если показание любого УЗД меньше 200 см,
 +  // включаем красный светодиод и выключаем зеленый
 +  if (dist_cm1 < 200 || dist_cm1 < 200) {
 +    digitalWrite(RedLED, HIGH);
 +    digitalWrite(GreenLED, LOW);  
 +  }
 +  else { // выключаем красный светодиод и включаем зеленый
 +    digitalWrite(RedLED, LOW);
 +    digitalWrite(GreenLED, HIGH);      
 +  }
 +  delay(intervalSonar);
 +}
 +</code>
  
 ---- ----
 [[start|На главную страницу]] [[start|На главную страницу]]
smartdoor.1623616177.txt.gz · Last modified: by admin