Сигнализация на Arduino
Стгнализация на arduino
На данном уроке мы научимся подключать ультразвуковой датчик расстояния к Arduino, научимся в программе считывать и обрабатывать данные с датчиков. Создадим сигнализацию на ардуино. В сигнализации к плате Arduino подключается ультразвуковой датчик расстояния и два светодиода зеленый и красный с помощью макетной платы. Алгоритм работы системы следующий; при приближении к датчику предмета, зажигается красный светодиод, при удалении предмета от ультразвукового датчика светодиод гаснет и загорается зеленый светодиод.
1. Подключаем светодиоды зеленый и красный Подключение светодиодов к arduino рассмотрено в уроке Подключение к arduino светодиодов
2. Подключаем ультразвуковой датчик Подключение ультразвукового датчика к arduino рассмотрено на уроке Подключение и программирование датчиков
Схема сигнализации на ардуино на рисунке
3. В основной программе используется оператор if. If – это условие. Если условие в круглых скобках оператора if выполняется, то производятся операции в фигурных скобках. Подробнее об условиях в Си
dist();
// если расстояние dis больше 20 см то зажигается светодиод с пином 11, и гаснет с пином 10
if (dis>20)
{digitalWrite (GREEN_PIN, 180);
digitalWrite(RED_PIN,0);
delay(10);
}
// если расстояние меньше 20 см то зажигается светодиод с пином 10, и гаснет с пином //11
if (dis<20)
{digitalWrite (GREEN_PIN,0);
digitalWrite(RED_PIN, 180);
delay(10);
}
4. Сначала мы считываем расстояние, проверяем. Если оно меньше 20, то гасим зеленый, зажигаем красный, а если больше 20, то гасим красный и зажигаем зеленый.
int echoGolova = 5; //перменая эхо
int trigGolova = 3; //переменная триг
int RED_PIN = 10;
int GREEN_PIN = 11;
int dis; // переменная для измерения дистанции
void setup() {
Serial.begin (9600);
// определяем пины светодиодов как output
pinMode (GREEN_PIN, OUTPUT);
pinMode(RED_PIN, OUTPUT);
}
// процедура измерения расстояния в см значение записывается в переменную dis
void dist ()
{
int duration, cm;
digitalWrite(trigGolova, LOW);
delayMicroseconds(2);
digitalWrite(trigGolova, HIGH);
delayMicroseconds(10);
digitalWrite(trigGolova, LOW);
duration = pulseIn(echoGolova, HIGH);
cm = duration / 58;
dis = cm;
if (dis<=0){dis=50;};
Serial.print(dis);
Serial.println(" cm");
}
void loop() {
// вызываем процедуру замера расстояния ультразвуковым датчиком
dist();
// если расстояние dis больше 20 см то зажигается светодиод с пином 11, и гаснет с пином //10
if (dis>20)
{digitalWrite (GREEN_PIN, 180);
digitalWrite(RED_PIN,0);
delay(10);
}
// если расстояние меньше 20 см то зажигается светодиод с пином 10, и гаснет с пином //11
if (dis<20)
{digitalWrite (GREEN_PIN,0);
digitalWrite(RED_PIN, 180);
delay(10);
}
}
Вернуться к содержанию Перейти к теме Сборка и программирование мобильного робота
Поделиться:
Нет комментариев. Ваш будет первым!