Всем привет, сегодня я вам покажу как работает ультразвуковой датчик в схеме подключения с 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 и датчик ультразвука. Определение расстояния до объекта.


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


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


Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
Ok