• Система автоматизации с открытым исходным кодом на базе 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сс. Возможно это и является проблемой. Попробуйте использовать другой пин для входа от датчика
 
Сверху Снизу