Сделать лузы для бильярда своими руками

Сделать лузы для бильярда своими руками
Сделать лузы для бильярда своими руками
Сделать лузы для бильярда своими руками

Главная / Датчики и Arduino / Ультразвуковой датчик расстояния и Arduino

Случайная статья:

Самое популярное:

Статья посвящена ультразвуковому датчику расстояния HC–SR04. Объясняется принцип его действия, технические характеристики, приведен пример его подключения к Arduino и программы для прошивки микроконтроллера.

Описание HC-SR04

Ультразвуковой датчик расстояния - модуль HC-SR04 использует акустическое излучение для определения расстояния до объекта. Этот бесконтактный датчик обеспечивает высокую точность и стабильность измерений. Диапазон измерений составляет: от 2 см до 400 см. На показания датчика практически не влияют солнечное излучение и электромагнитные шумы. Модуль продается в комплекте с трансмиттером и ресивером.

Технические характеристики HC-SR04

  • Напряжение питания: +5В – постоянный ток;
  • Сила тока покоя: < 2 мА;
  • Рабочая сила тока: 15 мА;
  • Эффективный рабочий угол: < 15°;
  • Расстояние измерений: от 2 см до 400 см (1 – 13 дюймов);
  • Разрешающая способность: 0.3 см;
  • Угол измерений: 30 градусов;
  • Ширина импульса триггера: 10 микросекунд;
  • Размеры: 45 мм x 20 мм x 15 мм.

Общий вид датчика HC-SR04

Arduino_HC-SR04_общий вид

Пины:

  • VCC: +5 вольт (постоянный ток)
  • Trig : Триггер (INPUT)
  • Echo: Эхо (OUTPUT)
  • GND: Земля

Подключение датчика HC–SR04 к Arduino

В данном примере ультразвуковой датчик HC–SR04 определяет расстояние и выводит полученные значения в окно серийного монитора в среде Arduino IDE. Проект несложный.

Основная цель данного примера – помочь вам понять принцип действия датчика для дальнейшего использования в более комплексных проектах.

Небольшое примечание: в свободном доступе существует отличная библиотека NewPing, которая еще больше облегчает использование HC–SR04, пример ее использование тоже приведен ниже.

Схема подключения HC–SR04 к Arduino

Схема подключения HC-SR04 к Arduino

Программа для Arduino

/Ультразвуковой датчик расстояния и Arduino – полный гайд

Распиновка ультразвукового датчика расстояния:

VCC: +5V

Trig : Триггер (INPUT) – 11 пин

Echo: Эхо (OUTPUT) – 12 пин

GND: GND

/

int trigPin = 11;    //Триггер – зеленый проводник

int echoPin = 12;    //Эхо – желтый проводник

long duration, cm, inches;

void setup() {

//Serial Port begin

Serial.begin (9600);

//Инициализирум входы и выходы

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

}

void loop()

{

// Датчик срабатывает и генерирует импульсы шириной 10 мкс или больше

// Генерируем короткий LOW импульс, чтобы обеспечить «чистый» импульс HIGH:

digitalWrite(trigPin, LOW);

delayMicroseconds(5);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

// Считываем данные с ультразвукового датчика: значение HIGH, которое

// зависит от длительности (в микросекундах) между отправкой

// акустической волны и ее обратном приеме на эхолокаторе.

pinMode(echoPin, INPUT);

duration = pulseIn(echoPin, HIGH);

// преобразование времени в расстояние

cm = (duration/2) / 29.1;

inches = (duration/2) / 74;

Serial.print(inches);

Serial.print("in, ");

Serial.print(cm);

Serial.print("cm");

Serial.println();

delay(250);

}

Использование библиотеки NewPing

Ниже приведен пример программы с использованием библиотеки NewPing.

#include <NewPing.h>

#define TRIGGER_PIN 12

#define ECHO_PIN 11

#define MAX_DISTANCE 200

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Настройка пинов и максимального расстояния.

void setup() {

Serial.begin(9600);

}

void loop() {

delay(50);

unsigned int uS = sonar.ping_cm();

Serial.print(uS);

Serial.println(“cm”);

}

Использование библиотеки NewPing

Ниже приведен пример программы с использованием библиотеки NewPing.

#include <NewPing.h>

#define TRIGGER_PIN 12

#define ECHO_PIN 11

#define MAX_DISTANCE 200

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Настройка пинов и максимального расстояния.

void setup() {

Serial.begin(9600);

}

void loop() {

delay(50);

unsigned int uS = sonar.ping_cm();

Serial.print(uS);

Serial.println(“cm”);

}

Необходимые уточнения

Если HC-SR04 не считывает сигнал эхо, выходной сигнал никогда не преобразуется в LOW. Датчики Devantec и Parallax обеспечивают время задержки 36 миллисекунд 28 миллисекунд соответственно. Если вы используете скетч, приведенный выше, программа «зависнет» на 1 секунду. Поэтому желательно указывать параметр задержки.

Датчик HC-SR04 плохо работает при измерении расстояний более 10 футов. Время возврата импульса составляет около 20 миллисекунд, так что рекомендуется в таких случаях выставлять время задержки более 20, напрмер, 25 или 30 миллисекунд.

Можно подключить ультразвуковой датчик расстояния HC-SR04 лишь к одному пину Arduino. Для этого необходимо между пинами Триггера и Эхо установить резистор на 2.2 кОм и подключить к Arduino только пин Триггера.

Подключение ультразвукового датчика расстояния к Arduino с использованием 1 пина!

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

Arduino_HC-SR04_подключение_один_пин

// Скетч с библиотекой NewPing, которая может использоваться и для датчика HC-SR04 и для

//приведенного здесь SRF06 и позволяет подключать ульразвуковые датчики

// с помощью одного пина на Arduino. Можно дополнительно подключить конденсатор на 0.1 мкФ к пинам Эхо и Триггер на датчике.

// К Arduino подключается пин Триггер

#include <NewPing.h>

#define PING_PIN  12  // Пин с Arduino подключен к пинам trigger и echo на ультразвуковом датчике расстояния

#define MAX_DISTANCE 200 // Максимальное расстояние, которое мы контролируем (в сантиметрах). Максимальное расстояние подобных датчиков находится в диапазоне 400-500см.

NewPing sonar(PING_PIN, PING_PIN, MAX_DISTANCE); // Настройка пинов и максимального расстояния

void setup() {

Serial.begin(115200); // Открытие серийного протокола с частотой передачи данных 115200 бит/сек.

}

void loop() {

  delay(50); // Задержка в 50 миллисекунд между генерацией волн. 29 миллисекунд – минимально допустимая задержка.

  unsigned int uS = sonar.ping(); // Генерация сигнала, получение времени в микросекундах (uS).

  Serial.print("Ping: ");

  Serial.print(uS / US_ROUNDTRIP_CM); // Преобразование времени в расстояние и отображение результата (0 соответствует выходу за допустимый диапазон)

Serial.println("cm");

}

ARDUINO-DIY.COM - это информационный ресурс с лучшими инструкциями и туториалами по использованию контроллеров Arduino.

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

ARDUINO-DIY.COM © 2015-2017

Сделать лузы для бильярда своими руками Сделать лузы для бильярда своими руками Сделать лузы для бильярда своими руками Сделать лузы для бильярда своими руками Сделать лузы для бильярда своими руками Сделать лузы для бильярда своими руками Сделать лузы для бильярда своими руками

Изучаем далее:



Как сделать самолет из звездных войн из лего

Поздравления с днем рождения двойне-мальчикам5

Бабушкин сундучок поделки

Пончо вязание спицами схема с полным описанием

Пяльца для вышивки своими руками в домашних условиях
Читать новость Сделать лузы для бильярда своими руками фото. Поделитесь новостью Сделать лузы для бильярда своими руками с друзьями!