Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

Тема в разделе "Сенсоры/датчики для DIY устройств", создана пользователем Arkan, 27 окт 2019.

  1. Arkan

    Arkan Новичок

    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте, друзья!
    Очень нужна ваша помощь!
    Подключил сенсор к еспэшке. Однако сенсор работает сам по себе. После включения загорается светодиод. Через пару секунд гаснет. При движении загорается на 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);


    }

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

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.745
    Симпатии:
    186
    И что видно в serial?
     
  3. Arkan

    Arkan Новичок

    Сообщения:
    6
    Симпатии:
    0
    1,0. Движение/нет движения
     
  4. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.745
    Симпатии:
    186
    Я не спрашивал, что вы ожидаете увидеть.
    Каждую секунду у вас должно выводиться в serial, а вы видите только 1,0.
    Проверьте датчик отдельно, возможно проблема в питании, может как и другие земли не соединили.
     
  5. Arkan

    Arkan Новичок

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

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.280
    Симпатии:
    238
    У него питание от 4 до 27 вольт должно быть. Где вы взяли на контроллере такое питание?
    И откуда запитан контроллер?
     
  7. Arkan

    Arkan Новичок

    Сообщения:
    6
    Симпатии:
    0
    На шинах D5 и D8, тупо светится фонарь! Отсоединяю выходной контакт датчика от контроллера, датчик работает.
    Пин, который я объявляю " INPUT" срабатывает, как тригер. Когда датчик на выходе дает 1,она висит на пине. Отключаю выходной контакт датчика от контроллера, датчик срабатывает исправно. А на обоих пинах контроллера остается 1,
     
  8. Arkan

    Arkan Новичок

    Сообщения:
    6
    Симпатии:
    0
    На шинах 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)); // управляем светодиодом
    }
     
  9. Arkan

    Arkan Новичок

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

    nikolz Гуру

    Сообщения:
    5.354
    Симпатии:
    473
    это посмотрите:
    jxmot/ESP8266-RCWL0516
     
  11. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.280
    Симпатии:
    238
    Фонарь вам зачем?
    Т. Е. Ни про паспортные технические условия, ни про согласование уровней, ни про взаимные помехи вы не слышали и слушать не желаете?
    Вам @nikolz даже ссылку привёл, там есть как надо делать.
     
  12. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.745
    Симпатии:
    186
    Скорее всего дело в том, как вы этот датчик подключили.
    Провода или очень короткие или использовать экранированные, возле есп нужен подтягивающий резистор.
     
  13. nikolz

    nikolz Гуру

    Сообщения:
    5.354
    Симпатии:
    473
    для спортивного интереса подключал этот датчик -проблем не было.
    ушло минут десять точно уже не помню, особого смысла в его применении не узрел.
    Он очень примитивный.
     
  14. svs2007m

    svs2007m Читатель

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

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.745
    Симпатии:
    186
    Вы упоминаете, чуть ли не все выводы есп, покажите схему.

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

    nikolz Гуру

    Сообщения:
    5.354
    Симпатии:
    473
    GPIO02 не мешает это вывод TXD1 - используется при отладке
    мешать может использование GPIo0 и GPIO15.
     
  17. CodeNameHawk

    CodeNameHawk Moderator Команда форума

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

    nikolz Гуру

    Сообщения:
    5.354
    Симпатии:
    473
    согласен, обычно он подтягивается к Vcc
    и при запуске на нем выход и всегда High.
    В итоге как-то забыл, про него.
     
  19. esp340

    esp340 Читатель

    Сообщения:
    77
    Симпатии:
    6
    А должно быть наоборот http://radio63.narod.ru/page/download/RCWL0516.pdf

    на платах NodeMCU D4 подтянут резистором к Vсс. Возможно это и является проблемой. Попробуйте использовать другой пин для входа от датчика
     

Поделиться этой страницей