Всем привет, сегодня я вам покажу как работает ультразвуковой датчик в схеме подключения с Arduino.

Смотрите видео: Arduino и датчик ультразвука. Определение расстояния до объекта.

Вот примерная схема подключения, с помощью датчика можно измерять расстояние, используем LCD дисплей, переменное сопротивление для регулировки яркости дисплея.

вид схемы с деталями

Ультразвуковой датчик имеет четыре контакта: плюс, минус, trigger и echo. Подключение у нас происходит так Ground у нас подключается, как вы видите, по этим контактам, также используем 5 Вольт, и 3,3 Вольта.

Второй разъём на плате подключается к trigger, третий разъем к echo. Пины 7, 8, 9, 10, 11, 12 для подключения дисплея. Так выглядит принципиальная схема, сопротивление, ультразвуковой датчик и lcd-дисплей.

вид принципиальной схемы

Давайте напишем скетч и протестируем датчик. Как всегда, очищаем лишнее из кода, подключаем библиотеку liquidcrystal для работы с дисплеем, также для того чтобы работать с ультразвуком, нужно будет подключить библиотека Newping.

#include < LiquidCrystal.h>
#include < NewPing.h>

Для ее подключения есть два варианта: Скетч – Подключить библиотеку, она идет вместе со средой разработки Arduino, либо скачать из интернета и подключить ZIP библиотеку, указав путь к ней.

Объявим константы которые мы будем использовать для подключения дисплея, также объявим несколько констант: TRIGGER_PIN разъем 2 на плате, ECHO_PIN разъём 3 и укажем максимальную дистанцию MAX_DISTANCE 400 сантиметров.

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

#define TRIGGER_PIN  2  
#define ECHO_PIN     3  
#define MAX_DISTANCE 400 

Также объявим ещё один массив sonar, который нужен для работы с библиотекой NewPing.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 

В setup, по желанию, запустим для мониторинга последовательный порт, и подключим LCD Display.

void setup() {
  Serial.begin(115200); 
  lcd.begin(16, 2); 
}

В цикле loop сделаем задержку 100 миллисекунд, объявляем переменную для sonar, которая будет получать данные с датчика, выведем надпись в последовательный порт Ping.

delay(100);                      
unsigned int uS = sonar.ping();

Разделим наше значение на константу, округление сантиметров для вывода, и выведим единицу измерения в сантиметрах. На первой строке поставим курсор, выведем текст «дистанция», переместим курсор на вторую строчку, выведем 13 пробелов в кавычках, курсор на 9 символ, и произведем тоже самое вычисление, что и раньше, здесь разделим наше значение на некую константу и установим курсор в 12 позицию и выведем значение в сантиметрах.

Serial.print("Ping: ");
Serial.print(uS / US_ROUNDTRIP_CM); 
Serial.println("cm");
lcd.setCursor(0, 0);
lcd.print("Distance:");
lcd.setCursor(0, 1);
lcd.print("             ");
lcd.setCursor(9, 1);
lcd.print(uS / US_ROUNDTRIP_CM);
lcd.setCursor(12, 1);
lcd.print("cm");

Вот так примерно у нас это всё будет выглядеть целиком и полностью. Сохраним наш скетч, проверим на ошибки, главное, что у нас подключилась библиотека.

Полный текст скетча

#include < LiquidCrystal.h>
#include < NewPing.h>

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

#define TRIGGER_PIN  2  
#define ECHO_PIN     3  
#define MAX_DISTANCE 400 

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 

void setup() {
  Serial.begin(115200); 
  lcd.begin(16, 2); 
  }

void loop() {
  delay(100);                      
  unsigned int uS = sonar.ping(); 
  Serial.print("Ping: ");
  Serial.print(uS / US_ROUNDTRIP_CM); 
  Serial.println("cm");
  lcd.setCursor(0, 0);
  lcd.print("Distance:");
  lcd.setCursor(0, 1);
  lcd.print("             ");
  lcd.setCursor(9, 1);
  lcd.print(uS / US_ROUNDTRIP_CM);
  lcd.setCursor(12, 1);
  lcd.print("cm");
}

Компиляция скетча прошла, загрузим скетч в Arduino и теперь если я буду приближаться, или удаляться от датчика, то соответственно будут меняться показатели на дисплее, расстояние в сантиметрах.

Иногда значение падает до нуля, ультразвук отражается от предметов перед собой, если я поднесу руку к нему, расстояние определяется достаточно точно.

Схему с ультразвуковым датчиком можно использовать в простейшей сигнализации, управлять включением света, или сигнала тревоги при приближении на определенное расстояние и многое другое.

Смотрите видео: Arduino и датчик ультразвука. Определение расстояния до объекта.




Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!

Связанные статьи

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok