Ардуіно, заняття 2. Сонар – датчик відстані, Оперратор if (). Парктронік на Arduino
Привіт всім!! Тільки що закінчили роботу над другим заняттям з Ардуіно. В занятті ми розглянули 2 важливих питання: ми навчилися вимірювати відстань за допомогою датчика HC-SR04, а також розглянули як користуватися оператором вибору if(). А от і сам відео:
Ультразвуковий датчик відстані HC-SR04 Ultrasonic Sensor працює за принципом ультразвукової ехолокації.
У складі далекоміра два п’єзоелемента, один працює як передавач сигналу, інший як приймач. передавач генерує сигнал, який відбившись від перешкоди потрапляє на приймач. Вимірявши час за який сигнал проходить до об’єкта і назад можна оцінити відстань.
Оператор вибору if() можна порівняти з словом “Якщо”. Синтаксис даного оператора дуже простий: в круглих дужках () відразу після if – пишемо умову, за якої слід виконати команди які знаходяться далі в квадратних дужках {}. Важливо, що після дужок крапку з комою не ставимо. Наприклад:
//якась програма
if(a>4){ //якщо змінна а більша за 4 то робимо наступне
digitalWrite(11, HIGH); //якісь команди - подаємо напругу на 11 вивід
}
// продовжуємо програму
Розглянемо схему яка представлена в відео:
За основу ми взяли схему з минулого заняття. Ми додали 5V на шину живлення на макетній платі, а також з’єднали виводи датика з виводами на Arduino.
Ось і сама програма того що в нас вийшло
int trigPin = 8;
int echoPin = 9;
// функція setup виконується тільки раз при перезавантаженні плати
void setup() {
// initialize digital pin 13 as an output.
pinMode(12, OUTPUT); //оголошуємо виводи світлодіодів
pinMode(11, OUTPUT);//оголошуємо виводи світлодіодів
pinMode(10, OUTPUT);//оголошуємо виводи світлодіодів
pinMode(trigPin, OUTPUT); //вивід trig
pinMode(echoPin, INPUT); // ввід echo
Serial.begin (9600); //слухаємо наш порт
}
//Головний цикл програми, який виконується постійно
void loop() {
int duration, distance;
digitalWrite(trigPin, LOW); //подаємо низьку напругу на trig
delayMicroseconds(2); //чекаємо 2 мікросекунди
digitalWrite(trigPin, HIGH);//Подаємо високу напругу на trig
delayMicroseconds(10); //чекаємо 10 мікросекунд
digitalWrite(trigPin, LOW); //подаємо низьку напругу на trig
duration = pulseIn(echoPin, HIGH); //визначаємо скільки часу було затрачено
distance = duration*0.034/2; //вираховуємо відстань
//відповідно до відстані виконуємо або не виконуємо умови
if(distance<18){
digitalWrite(10, HIGH); // Включаємо зелений (високий рівнень напруги)
}
if (distance<=13){
digitalWrite(11, HIGH); // включаемо жовтий
}
if(distance<8) {
digitalWrite(12, HIGH); // включаємо червоний
}
Serial.print(distance); //виводимо в монітор порта значення
Serial.println(" cm"); //пробіл см і закінчуємо рядок
delay(100);
digitalWrite(12, LOW); //виключаємо червоний
digitalWrite(11, LOW); //виключаємо жовтий
digitalWrite(10, LOW); //виключаємо зелений
}
Маю надію, що вам сподобався урок, ставте лайки, коментуйте і бережіть себе