Как увеличить расстояние обнаружения на датчике обхода препятствий Arduino KY-032?
У нас есть датчик предотвращения препятствий Arduino KY-032, и мы потратили приличное время на поиски и исследования, чтобы найти подробный технический паспорт / руководство, чтобы выяснить, как это работает; но нет никакой подробной информации о модуле.
В одной из немногих инструкций здесь говорится, что потенциометры на чипе используются для регулировки расстояния, но я перепробовал все разные настройки, и максимум, что я могу получить, - это 10 сантиметров. Я пробовал разные поверхности с разным уровнем отражательной способности, но на самом деле они мало чем отличаются.
Есть идеи, как увеличить расстояние на этом? Что-нибудь связанное с перемычкой включения?
Обновление: Вот соответствующий код для обнаружения препятствий:
void loop() {
// проверяйте сетевое соединение каждые 10 секунд:
val = digitalRead (buttonpin) ;// цифровому интерфейсу будет присвоено значение 3 для чтения val
if(full==1 && val==LOW) {
Serial.print("Bin Full");
delay(5000);
} else {
if (val == LOW) {
// Когда датчик объезда препятствий обнаруживает сигнал, светодиод мигает
digitalWrite (Led, HIGH);
delay(2000);
if(digitalRead(buttonpin)==LOW) {
delay(2000);
if(digitalRead(buttonpin)==LOW) {
full = 1;
}
}
count++;
//printCurrentNet();
sendData();
} else {
digitalWrite (Led, LOW);
if(full==1) {
count = 0;
}
full = 0;
}
}
}
@Neeku, 👍1
Обсуждение5 ответов
Лучший ответ:
Модуль ИК-датчика включает в себя внутренний полосовой фильтр 38 кГц. Горшок рядом с выводом GND точно настраивает частоту этого сигнала, который используется для освещения ИК-светодиода.
Другой банк регулирует рабочий цикл сигнала. Это управляет яркостью ИК-светодиода. Обе регулировки влияют на чувствительность и дальность действия устройства.
Для достижения максимальной чувствительности абсолютно необходимо использовать PIN "EN" или "Enable". Однако при правильном использовании требуется дополнительное оптическое экранирование ИК-светодиода. Это можно сделать с помощью небольшой картонной трубки, обычно используемой в качестве упаковочного материала, или любого другого материала.
Если функция включения не используется, перемычка должна быть установлена на плате. Штифт включения не может быть использован, если перемычка установлена.
Для получения дополнительной информации см.: http://irsensor.wizecode.com /
Эти датчики препятствий не всегда работают должным образом.Я купил 3 из них, но только 2 работали должным образом.Другой работал только на расстоянии около 6-7 см.
Кстати, код кажется прекрасным, но нет никакого способа сказать наверняка без полного кода.
Ну а дальность действия датчика должна быть: "2-40см". Я бы предложил использовать приведенный ниже код и изменить потенциометры, чтобы увидеть, имеет ли это какое-то значение.
int Led = 13 ;// определить интерфейс светодиода
int buttonpin = 3; // определить интерфейс датчика обхода препятствий
void setup ()
{
pinMode (Led, OUTPUT) ;// определить светодиод как выходной интерфейс
pinMode (buttonpin, INPUT) ;// определить выходной интерфейс датчика обхода препятствий
}
void loop ()
{
if (digitalRead (buttonpin) == HIGH) // Когда датчик объезда препятствий обнаруживает сигнал, загорается светодиод.
{
digitalWrite (Led, HIGH);
}
else
{
digitalWrite (Led, LOW);
}
}
Я бы не подумал, что это требуется, очень вероятно, что Датчик неисправен., @Mathsman 100
@Mathsman100 Но это способ доказать это?, @Paul
Проверьте это: http://irsensor.wizecode.com /
Когда на плате установлена зеленая перемычка (см. Рисунок), ИК-светодиод будет непрерывно мерцать на частоте 38 кГц. Если функция Enable (EN) не будет использоваться, необходимо установить перемычку. Когда перемычка снята, вывод 4 таймера 555 удерживается на НИЗКОМ уровне (СБРАСЫВАЕТСЯ) R3, тянущим резистором 22K. Затем, если к контакту EN будет применено ВЫСОКОЕ условие, условие сброса будет сброшено, и таймер 555 начнет колебаться. Функция включения не может быть использована, если установлена ЗЕЛЕНАЯ ПЕРЕМЫЧКА. Вы должны удалить перемычку на плате, чтобы использовать вывод EN (Enable).
На странице wizecode есть хорошая информация. Однако горшок R5 (рядом с перемычкой EN) не изменяет рабочий цикл, а непосредственно ток на ИК-светодиод - все еще влияет на яркость. Слишком большой ток, по-видимому, вызывает ложные срабатывания - зависит от вашего дополнительного оптического экранирования. Я накрыл датчик черной термоусадочной трубкой - правда, с пробитым отверстием, чтобы датчик мог видеть. Кроме того, горшок R6 на самом деле не "точно настраивает" частоту, скорее как "грубая настройка" - даже небольшой толчок может отклониться на кГц, что значительно снижает чувствительность.
Если вы используете перемычку EN, внезапно появившийся объект дает короткий импульс, но затем срабатывает подавление возмущающего сигнала, который снижает чувствительность и "отключает" объект. Кроме того, медленно появляющиеся объекты не распознаются по этой причине. Только очень близкие объекты (несколько см) дают достаточно сильный сигнал, чтобы преодолеть это ослабление чувствительности.
Что меня несколько раздражало: установка EN на НИЗКИЙ уровень позволяет ИК-светодиоду стабильно гореть, а не выключаться, чего я и ожидал. Это может раздражать датчик больше, чем необходимо. Также потребляет больше энергии (может быть, даже много, в зависимости от текущей настройки R5).
Как ни странно, вы можете получить несколько аналоговое поведение этого датчика, если измерите, сколько времени требуется от активации вывода EN до понижения выходного сигнала датчика. Чем ближе объект, тем быстрее он реагирует. Ближние объекты занимают ~ 190us, дальние - более 400us. Однако это не совсем линейное поведение. Также зависит от расстояния, размера, угла наклона, ИК-отражательной способности и мощности ИК-светодиода. Однако он может обнаружить человека на расстоянии более 1 метра.
- Модуль HW-477 с ИК-датчиком VS1838B: Помощь с выводами
- KY-022 ИК-приемник, светодиод всегда горит, нет выхода
- ИК приемник принимает только 0
- Использование Broadcom AFBR-S50 с Arduino
- Измерение скорости автомобиля между двумя точками: какой датчик использовать и как преодолевать расстояние?
- Ультразвуковой датчик или инфракрасный датчик лучше для измерения расстояния (до/от человеческого тела)?
- Как я могу получить сигнал от пульта дистанционного управления с помощью сенсорного модуля tcrt5000
- Несколько ИК-датчиков с Arduino
Это может быть связано с кодом. Можете ли вы добавить небольшой фрагмент вашего кода (исключая все, что не связано с этой проблемой)? Спасибо!, @Anonymous Penguin
@AnnonomusPenguin Вот так. (:, @Neeku
Возможно, он просто неисправен. Вы тестировали дублирующие датчики? Это также может быть просто некачественный продукт. Вы пробовали связаться с производителем?, @Paul
Как насчет этого - протестируйте датчик ** БЕЗ ** Arduino Uno., @Mathsman 100
@Pedro Что вы имеете в виду, как мы подключили его к Arduino? Мы использовали плату Intel Galileo и программировали ее с помощью Arduino. Если вы посмотрите, там есть учебные пособия., @Neeku