Код товара: EK1905153
MP562. Высокоточный ультразвуковой датчик расстояния без слепой зоны
Бренд: Мастер КИТ
|
|
Подготовка к эксплуатации:
Наиболее просто использовать датчик вместе с платами Ардуино.
Скачайте (см. снизу) архив файлов с библиотекой и примерами. Распакуйте его;
Установите библиотеку NoBlind_ultrasonic в соответствующую директорию Arduino Software IDE;
Откройте примеры с кодом из папки EXAMPLES;
Соберите схему Ардуино + MP562. В заголовке примеров описано, к каким выводам Ардуино надо подключать выводы датчика.
Маркировка вывода | Описание |
VCC | 5 В от источника питания |
Trig | Запускающий импульс |
Echo | Отражённый импульс |
GND | Земля источника питания |
Характеристики:
Напряжение питания: AC 5 B;
Потребляемый ток: 8 мА;
Рабочая частота: 40 кГц;
Диапазон входных напряжений: 3,8...5,5 В;
Дальность действия: До 2 м;
Угол обзора датчика: 15 градусов
Упаковка: OEM;
Размеры устройства: 35 x 20 x 15 мм;
Масса: ~50 г.
Описание функций библиотеки NoBlind_ultrasonic
unsigned int ping()
Название ping
Параметры: Нет
Возвращаемое значение время от отправки импульса до приема эха
unsigned int ping_in()
Название: ping_in
Параметры: Нет
Возвращаемое значение измеренное расстояние (в дюймах)
unsigned int ping_cm()
Название: ping_cm
Параметры: Нет
Возвращаемое значение измеренное расстояние (в сантиметрах)
boolean ping_trigger()
Название: ping_trigger
Параметры: Нет
Возвращаемое значение true ----- датчик отвечает
false ----- датчик не отвечает
void ping_timer(void (*userFunc)(void))
Название: ping_timer
Параметры: userFunc: функция для таймера, от измерения к исполнению
Возвращаемое значение None
boolean check_timer()
Название check_timer 7
Параметры: невозвращаемое значение: true ------ найден датчик, False ---- датчик не найден
Использование NoBlind_ultrasonic Library
Шаг1: Распакуйте архив в одну из папок своего компьютера NoBlind_ultrasonic чтобы получить файлы NoBlind_ultrasonic
Шаг2: Добавьте файл NoBlind_ultrasonic.h в папку Arduino-1.0.X/libraries.
Пример скетча:
/*
SonarRelay v.2
DIY-pragmatiс
2015-02-18
www.masterkit.ru
Программа предназначена для автоматизаческого включения и выключения освещения, например, в туалетной комнате.
Модуль с помощью УЗ Датчика измеряет расстояние до предмета и принимает решение о включении или выключении реле.
Датчик устанавливается строго напротив двери, на расстоянии не более 1,5 метров, на уровне пояса
1. При включении питания модуль измеряет и запоминает базовое расстояние до двери. Дверь должна быть закрыта.
2. В рабочем режиме реле включено если текущее измеренное расстояние меньше или больше базового.
Таким образом реле включено при открытой двери или при нахождении челевека между дверью и датчиком
При пропадании 220 модуль сбросится, но при включении 220 процесс измерения базового расстояния произойдет заново
Работоспособность восстановится.
*/
#include
#define TRIGGER_PIN 10 //Подключение передающего пина к 10 выводу Ардуино
#define ECHO_PIN 11 //Подключение принимающего пина к 11 выводу Ардуино
#define MAX_DISTANCE 150 //maximum distance
int relay_pin = A0; // реле подключено к выходу А0
long Dist = 0; // определение переменных: текущее расстояние
long Base = 0; // базовое расстояние
unsigned int uS = 0; // сброс данных датчика
NoBlind_Ultrasonic sonar(TRIGGER_PIN,ECHO_PIN,MAX_DISTANCE); // указываем библиотеке к каким ногам подключен датчик
void setup()
{
// сбросили реле, щелкнули в подтверждение того что началось измерение базы
digitalWrite (relay_pin, LOW);
delay(100);
for (int a=0; a<1; a++)
{
digitalWrite (relay_pin, HIGH); delay(500);
digitalWrite (relay_pin, LOW); delay(500);
}
//----------------------------------Измеряем базу
delay(5000); //ожидание закрытия двери 5 сек
do
{
delay(200);
Base = 0;
uS = sonar.ping(); //запрос на измеренние роасстояния (библиотечная функция)
Base = (uS / US_ROUNDTRIP_CM); // получение расстояния в см
}
while ((Base > 150) (Base < 5)); // устраняем возможные сбои в измерении
//----------------------------------Получили базу без ошибки
for (int a=0; a<3; a++)
{
digitalWrite (relay_pin, HIGH); delay(500);
digitalWrite (relay_pin, LOW); delay(500);
}
//----------------------------------Щелкнули реле 3 раза - измерение базы закончено
}
void loop()
{
//Периодически измереняем текущее расстояние
delay(100);
do
{
delay(100);
uS = sonar.ping();
Dist = (uS / US_ROUNDTRIP_CM);
}
while (Dist < 5); //отфильтровываем возможные потери сигнала, нулевые значения
if ((Dist < (Base-5)) (Dist > (Base+5))) // проверяем значение расстояния
{
digitalWrite (relay_pin, HIGH); //реле включено если "человек на горшке"
delay (2000);
}
else
{
digitalWrite (relay_pin, LOW); //выключено, если никого нет и дверь закрыта.
}
}
// в качестве модуля можно использовать платы Ардуино и дополнительное реле.
// Но можно взять какой-нибудь подходящий модуль с микроконтроллером, и перепрогаммировать
// под Измерение расстояния, например, MC3302. Реле уже есть на борту, если выпаять радиомодуль,
// то появляется несколько свободных пинов для подключения ультразвукового датчика.
Автоматический измеритель размеров упаковки. HD Видео 720p
Описание высокоточного ультразвукового датчика расстояния MP562 (без "слепой" зоны) |
|
Библиотека для Ардуино и примеры кода. ZIP-файл 7 кБ |
Для увеличения нажмите на картинку
(навигация по картинкам осуществляется стрелочками на клавиатуре)
------------------
УЛ1905153:830