Все для Arduino в одном месте
Адрес: Павлодар
Телефон: +7 705 336-36-03

whatsapp +7 705 336-36-03

Поворотный радар на основе HC-SR04 и Arduino

Давайте попробуем сделать простой радар используя Arduino, ультразвуковой датчик HC-SR04 (HC-SR05) и сервопривод. Работу скетча можно будет посмотреть в среде разработки Arduino IDE через «Инструменты -> Плоттер по последовательному соединению», либо нажав сочетание клавиш CTRL+Shift+L.

Внимание!!! Этот инструмент появился с версии Arduino IDE 1.6.6

Компоненты:

  • Arduino Nano
  • HC-SR04 модуль ультразвукового датчика
  • Макетная плата
  • Соединительные провода
  • Клеевой пистолет
  • Сервопривод SG90

Схема соединения:

pin Nano pin HC-SR04 Сервопривод SG90

+5

+5 +5 (красный)
GND GND GND (коричневый)
D6  Trig  
D5 Echo  
D9     SIG (желтый)

 

 

Программный код

 

 

Нажмите, что бы увидеть код
#include "Servo.h" //Подключение библиотеки управления сервоприводом
int trigPin = 6; 
int echoPin = 5;
long duration;
int distance; //переменная для вычисления расстояния
Servo servo; //создаем объект типа Servo

void setup()
{
  //устанавливает режим работы портов на ардуино
  // - выход
  pinMode(trigPin, OUTPUT); 
  // - вход
  pinMode(echoPin, INPUT);
  //Определяем скорость передачи по последовательному порту
  Serial.begin(9600);
  // Указываем порт для управления сервоприводом
  servo.attach(9);
}

void loop()
{
  //Функция поворота сервопривода налево
  left();
  //Функция поворота сервопривода направо
  right();
}

void left()
{
  for (int pos = 0; pos <= 180; pos += 1)
  {
    servo.write(pos);
    Serial.print(pos);
    Serial.print(" ");
    distance = echoloop();
    Serial.println(distance);
    delay(50);
  }
}

void right()
{
  for (int pos = 180; pos >= 0; pos -= 1)
  {
    servo.write(pos);
    Serial.print(pos);
    Serial.print(" ");
    distance = echoloop();
    Serial.println(distance);
    delay(50);
  }
}
// функция для определения расстояние до объекта
int echoloop()
{
  long duration, cm;
   // для большей точности установим значение LOW на пине Trig
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  // Теперь установим высокий уровень на пине Trig
  digitalWrite(trigPin, HIGH);
  // Ждем 10 милисекунд
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
   // Узнаем длительность высокого сигнала на пине Echo
  duration = pulseIn(echoPin, HIGH);
  //вычисляем расстояние до объекта
  cm = duration / 58; 
  return cm;
}

 

 

 

Результат 

 

Рекомендуемые товары

Беспаечная макетная плата 400 контактов

Беспаечная макетная плата 400 контактов

Для налаживания и тестирования самодельных электронных устройств радиолюбители используют так называ..

850 ₸

Сервопривод 9g SG90

Сервопривод 9g SG90

Сервопривод Tower Pro 9g SG90 используется в основном для управления небольшими легкими механизмами,..

1 000 ₸

Ультразвуковой модуль расстояния HC-SR04

Ультразвуковой модуль расстояния HC-SR04

Ультразвуковой дальномер рассчитан на определение расстояния до объектов в радиусе четырёх метров. ..

900 ₸