• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Проблемы с сенсором RCWL-0516 на ESP8266 NodeMcu

Arkan

New member
Здравствуйте, друзья!
Очень нужна ваша помощь!
Подключил сенсор к еспэшке. Однако сенсор работает сам по себе. После включения загорается светодиод. Через пару секунд гаснет. При движении загорается на 8 секунд. Гаснет на 87 секунд. Потом сам по сете через 2-4 секунды загорается снова на 8 сек. гаснет.Мод\жет включиться на 8 сек. И т.д. Голову сломал над проблемой! На движение, то реагирует, то нет. Менял сенсор, менял контроллер. Проблема остается. Скетч простой.

Вот скетч, который, хоть как-то идет:

int ip = D4;

int val = 0;

int led =D5;


void setup() {

Serial.begin(115200);

pinMode (ip, INPUT);

pinMode (led, OUTPUT);

}


void loop() {


val = digitalRead(ip);

Serial.println(val, DEC);

if(val >0)

{

digitalWrite(led, HIGH);

}

else

{

digitalWrite(led, LOW);

}

delay(1000);


}

Подскажите, пожалуйста, кто знает, в чем проблема!
 

CodeNameHawk

Moderator
Команда форума
Я не спрашивал, что вы ожидаете увидеть.
Каждую секунду у вас должно выводиться в serial, а вы видите только 1,0.
Проверьте датчик отдельно, возможно проблема в питании, может как и другие земли не соединили.
 

Arkan

New member
Совершенно верно. Каждую секунду у меня на serial появляются значения, соответствующие сигналу от датчика. Сработал - 1, не сработал - 0.
И, что?
Проблема в том, что срабатывает он сам по себе!
Я написал в первом письме, что менял датчик и менял контроллер. Все одно! Датчик присоединен к контроллеру, и запитывается от него.
 

Arkan

New member
На шинах D5 и D8, тупо светится фонарь! Отсоединяю выходной контакт датчика от контроллера, датчик работает.
Пин, который я объявляю " INPUT" срабатывает, как тригер. Когда датчик на выходе дает 1,она висит на пине. Отключаю выходной контакт датчика от контроллера, датчик срабатывает исправно. А на обоих пинах контроллера остается 1,
 

Arkan

New member
На шинах D5 и D8, тупо светится фонарь! Отсоединяю выходной контакт датчика от контроллера, датчик работает.
Пин, который я объявляю " INPUT" срабатывает, как тригер. Когда датчик на выходе дает 1,она висит на пине. Отключаю выходной контакт датчика от контроллера, датчик срабатывает исправно. А на обоих пинах контроллера остается 1,
Пробовал такой скетч, вообще ничего не работает. На входном пине висит 1.2 вольта.
uint8_t PinSensor = D4; // указываем номер цифрового вывода arduino, к которому подключён датчик движения RCWL-0516

uint8_t PinAlarm = 07; // указываем номер цифрового вывода arduino, к которому подключён светодиод

void setup()

{
//ArduinoOTA.begin();
pinMode(PinSensor, INPUT); // конфигурируем цифровой вывод датчика как вход

pinMode(PinAlarm, OUTPUT); // конфигурируем цифровой вывод светодиода как выход
}

void loop()
{
// ArduinoOTA.handle();
digitalWrite(PinAlarm, digitalRead(PinSensor)); // управляем светодиодом
}
 

Arkan

New member
Контроллер запитан от 5 вольт. датчик запитывался от 5 и от 3.3-3.7 вольт. Дело же не в датчике. Пока датчик работает без контроллера, но под напряжением 3.3 в. он работает нормально. Стоит подключить к контроллеру - пошло-поехало.
 

nikolz

Well-known member
Здравствуйте, друзья!
Очень нужна ваша помощь!
Подключил сенсор к еспэшке. Однако сенсор работает сам по себе. После включения загорается светодиод. Через пару секунд гаснет. При движении загорается на 8 секунд. Гаснет на 87 секунд. Потом сам по сете через 2-4 секунды загорается снова на 8 сек. гаснет.Мод\жет включиться на 8 сек. И т.д. Голову сломал над проблемой! На движение, то реагирует, то нет. Менял сенсор, менял контроллер. Проблема остается. Скетч простой.

Вот скетч, который, хоть как-то идет:

int ip = D4;

int val = 0;

int led =D5;


void setup() {

Serial.begin(115200);

pinMode (ip, INPUT);

pinMode (led, OUTPUT);

}


void loop() {


val = digitalRead(ip);

Serial.println(val, DEC);

if(val >0)

{

digitalWrite(led, HIGH);

}

else

{

digitalWrite(led, LOW);

}

delay(1000);


}

Подскажите, пожалуйста, кто знает, в чем проблема!
это посмотрите:
jxmot/ESP8266-RCWL0516
 

Сергей_Ф

Moderator
Команда форума
На шинах D5 и D8, тупо светится фонарь!
Фонарь вам зачем?
Дело же не в датчике. Пока датчик работает без контроллера, но под напряжением 3.3 в. он работает нормально. Стоит подключить к контроллеру - пошло-поехало.
Т. Е. Ни про паспортные технические условия, ни про согласование уровней, ни про взаимные помехи вы не слышали и слушать не желаете?
Вам @nikolz даже ссылку привёл, там есть как надо делать.
 

CodeNameHawk

Moderator
Команда форума
Контроллер запитан от 5 вольт. датчик запитывался от 5 и от 3.3-3.7 вольт. Дело же не в датчике.
Скорее всего дело в том, как вы этот датчик подключили.
Провода или очень короткие или использовать экранированные, возле есп нужен подтягивающий резистор.
 

nikolz

Well-known member
для спортивного интереса подключал этот датчик -проблем не было.
ушло минут десять точно уже не помню, особого смысла в его применении не узрел.
Он очень примитивный.
 

svs2007m

Active member
Прекрасно все работает. Датчик+WEMOS. питание дешевый китай 5в. Только скетч у Вас мягко говоря ...
Опрос датчика лучше делать через таймеры, а не delay(...)
 

CodeNameHawk

Moderator
Команда форума
uint8_t PinSensor = D4; // указываем номер цифрового вывода arduino, к которому подключён датчик движения RCWL-051
Вы упоминаете, чуть ли не все выводы есп, покажите схему.

В NodeMcu вывод D4 это вывод GPIO2 есп, его надо осторожно использовать, что бы не мешало программировать.
 

nikolz

Well-known member
Вы упоминаете, чуть ли не все выводы есп, покажите схему.
В NodeMcu вывод D4 это вывод GPIO2 есп, его надо осторожно использовать, что бы не мешало программировать.
GPIO02 не мешает это вывод TXD1 - используется при отладке
мешать может использование GPIo0 и GPIO15.
 

CodeNameHawk

Moderator
Команда форума
GPIO02 не мешает это вывод TXD1 - используется при отладке
GPIO02 также отвечает за выбор откуда есп будет грузиться.
И если на этом выводе, во время подачи питания будет низкий уровень, есп не запустит скетч.
http://wikihandbk.com/ruwiki/images/e/e8/A01-boot-mode-decoding.png
 

nikolz

Well-known member
GPIO02 также отвечает за выбор откуда есп будет грузиться.
И если на этом выводе, во время подачи питания будет низкий уровень, есп не запустит скетч.
http://wikihandbk.com/ruwiki/images/e/e8/A01-boot-mode-decoding.png
согласен, обычно он подтягивается к Vcc
и при запуске на нем выход и всегда High.
В итоге как-то забыл, про него.
 

esp340

Active member
Датчик присоединен к контроллеру, и запитывается от него.
А должно быть наоборот http://radio63.narod.ru/page/download/RCWL0516.pdf

Отключаю выходной контакт датчика от контроллера, датчик срабатывает исправно. А на обоих пинах контроллера остается 1,
обычно он подтягивается к Vcc
на платах NodeMCU D4 подтянут резистором к Vсс. Возможно это и является проблемой. Попробуйте использовать другой пин для входа от датчика
 
Сверху Снизу