Автор Тема: Ультразвуковой датчик HC-SR04 и ардуино  (Прочитано 544 раз)

Оффлайн electroGhost

  • Member
  • **
  • Сообщений: 19
  • Репутация: +1/-0
    • Личное сообщение (Оффлайн)
   Итак сегодня в проекте у нас используется:
   Перед тем как использовать данный датчик не плохо было бы разобраться как он работает. А работает он довольно таки просто, при помощи эхолокации. Тоесть наш датчик посылает ультрозвуковой сигнал, затем принимает его. При этом зная время за которое сигнал отразился от объекта и скорость звука в пространстве(340м/с) он расчитывает расстояние до объекта.
   Теперь разберемся как им управлять. Тоже ничего сложного, на вход „Trig“ подаем на пару микросекунд  отрицательный импульс, а затем положительный длительностью в 10 микросекунд, одновременно с этим импульсом на выходе „Echo“ появляется логическая единица, а когда датчик принимает сигнал, то появляется логический ноль. По длительности единицы на ноге „Echo“ определяется время за которое ультразвуковой импульс отразился от объекта.
Теперь можем приступать к работе с дальномером.
Итак я буду выводить показания датчика на lcd индикатор.
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 7, 8, 9, 10); // RS - 12, E - 11, D4 - 7, D5 - 8, D6 - 9, D7 - 10

int echoPin = 5;
int trigPin = 6;

void setup() {
  lcd.begin(16, 2);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  int duration, cm;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  cm = duration / 58;
  lcd.clear();
  lcd.setCursor(0, 1);
  lcd.print(cm);
  delay(100);
}
По мимо этого есть еще один вариант скетча, с использованием библиотеки. Например „Ultrasonic”. Папку из архива надо поместить в папку „libraries“, которая находится в папке с программой „Arduino IDE“. Теперь можно пользоваться библиотекой.
Кстати вот и код:
#include <Ultrasonic.h> // подключаем библиотеку
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 7, 8, 9, 10); // RS - 12, E - 11, D4 - 7, D5 - 8, D6 - 9, D7 - 10
Ultrasonic ultrasonic(6, 5); // Trig - 6, Echo - 5

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

void loop() {
  float dist_cm = ultrasonic.Ranging(CM); // дистанция в см
  lcd.clear();
  lcd.setCursor(0, 1);
  lcd.print(dist_cm);
  delay(100);
}
« Последнее редактирование: Август 03, 2017, 10:07:06 от electroGhost »

Оффлайн electroGhost

  • Member
  • **
  • Сообщений: 19
  • Репутация: +1/-0
    • Личное сообщение (Оффлайн)
Re: Ультразвуковой датчик HC-SR04 и ардуино
« Ответ #1 : Август 03, 2017, 10:18:05 »
Также вывод показаний через com порт:
int echoPin = 5;
int trigPin = 6;

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  int duration, cm;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  cm = duration / 58;
  Serial.println(cm)
  delay(100);
}
И с использованием библиотеки:
#include <Ultrasonic.h>

Ultrasonic ultrasonic(12, 11); // Trig - 12, Echo - 11

void setup() {
  Serial.begin(9600);
}

void loop() {
  float dist_cm = ultrasonic.Ranging(CM);
  Serial.println(dist_cm);
  delay(100);
}

 

Последние сообщения на форуме:

[Электроника] Re: Спектр Электромагнитных Колебаний от digitalman Сегодня в 10:38:37
[Форум радиолюбителей] Re: Professor Morse Tutor PMT-228 от digitalman Сегодня в 10:28:17
[Лаборатория] Re: Эксперименты со строчником от john Сентябрь 19, 2018, 16:34:52
[Начинающим радиолюбителям] Простое переговорное устройство из двух телефонных аппаратов от john Сентябрь 19, 2018, 15:16:34
[Начинающим радиолюбителям] Re: Радиоконструкторы от john Сентябрь 19, 2018, 15:10:02
[Экономика] Re: Долг США [$21 трлн] от digitalman Сентябрь 19, 2018, 01:05:07
[Для компьютера] Re: Клавиатура для ношения на руке, идея, (мозговой штурм) от Новичёк Сентябрь 19, 2018, 00:29:12
[Для компьютера] Re: Клавиатура для ношения на руке, идея, (мозговой штурм) от digitalman Сентябрь 18, 2018, 21:59:00
[Для компьютера] Re: Клавиатура для ношения на руке, идея, (мозговой штурм) от Новичёк Сентябрь 18, 2018, 10:55:20
[Наука] Re: Математика, комбинаторика: Кубик_Рубика от Новичёк Сентябрь 18, 2018, 10:48:27
[Для компьютера] Re: Клавиатура для ношения на руке, идея, (мозговой штурм) от digitalman Сентябрь 17, 2018, 22:21:06
[Наука] Re: Математика, комбинаторика: Кубик_Рубика от digitalman Сентябрь 17, 2018, 22:10:04
[Наука] Re: Новости науки и технологии от Новичёк Сентябрь 17, 2018, 20:09:53
[Наука] Re: Новости науки и технологии от Новичёк Сентябрь 17, 2018, 20:00:37
[Наука] Re: Математика комбинаторика Кубик_Рубика от Новичёк Сентябрь 17, 2018, 19:11:59
[Наука] Математика комбинаторика Кубик_Рубика от Architectsam Сентябрь 17, 2018, 16:04:48
[Компьютеры] Re: Старое, старое железо от MaiklsBlack Сентябрь 17, 2018, 14:14:00
[Беседка] Re: Шутка юмора :) от Новичёк Сентябрь 16, 2018, 14:24:17
[Наука] Re: Новости науки и технологии от Новичёк Сентябрь 16, 2018, 14:21:25
[Наука] Re: Новости науки и технологии от Новичёк Сентябрь 16, 2018, 14:18:53
 Rambler's Top100