Ардуіно, заняття 2. Сонар – датчик відстані, Оперратор if (). Парктронік на Arduino

Привіт всім!! Тільки що закінчили роботу над другим заняттям з Ардуіно. В занятті ми розглянули 2 важливих питання: ми навчилися вимірювати відстань за допомогою датчика HC-SR04, а також розглянули як користуватися оператором вибору if(). А от і сам відео:

Ардуіно, заняття 2. Сонар – датчик відстані, Оперратор if (). Парктронік на Arduino
Датчик відстані HC-SR04

Ультразвуковий датчик відстані 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);    //виключаємо зелений
}

Маю надію, що вам сподобався урок, ставте лайки, коментуйте і бережіть себе

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.