Датчики влияют друг на друга!

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем onefreddy, 29 дек 2018.

  1. onefreddy

    onefreddy Нуб

    Собираюсь подключить разные датчики, так вот пока что тестировал только два, три и заметил вот что.
    Значение датчика освещенности влияет на результат датчика газа MQ2. Смотрите кусочек из лога, когда в помещении вечером темно свет 0.99 Lx, а по дыму получаем 17 ppm. стоит мне включить настольную лампу как свет становится 53.36 Lx а дым 5 ppm. Такой же эксперемент проводил днем, открывал и закрывал жалюзи. Моментально значения освещенности влияют на результат по газам. Причем днем была обратная зависимость там дым скакал вверх и до 800 когда жалюзи открыты.
    Подключаю датчики к тройка шилд. Пробовал подключать как на соседние пины, так и совсем в разных сторонах. Результат всегда удручает. Что делать с этим?
     
  2. Измерять каждый датчик 10 раз подряд, откидывать первые 9 измерений. Или паять буферный усилитель.
     
  3. onefreddy

    onefreddy Нуб

    Ну ок попробовал, тестовый код вот такой:
    Код (C++):
    void loop()
    {
         //1. Датчик освещённости
         for (int i = 1; i <= 10; i++)
         {
              // считывание данных с датчика освещённости
              delay(1000);
         }
         //
         delay(1000);
         //2. Датчик газов
         for (int i = 1; i <= 10; i++)
         {
              // считывание данных с датчика освещённости
              delay(1000);
         }
         //
         delay(1000);
         //3. Датчик температуры
         for (int i = 1; i <= 10; i++)
         {
              // считывание данных с датчика освещённости
              delay(1000);
         }
         delay(1000);
    }
    В целом стало лучше, но по прежнему освещенность влияет на газ, кроме того кое что новое заметил. Этот код по освещенности выводит такую картину:
    т.е. при каждом считывании то 44 то 50. бл* это же чушь какая то...

    А это че такое?
     
  4. DetSimen

    DetSimen Гуру

    Если тестовый скетч такой, как в соощении выше, то ничего в нем ни на што не влияет.
     
  5. onefreddy

    onefreddy Нуб

    Ну хз я тоже так хотел бы думать... Свет выключен, Lx показывают одно значение, а задымленность 16 ppm - 18 ppm. Стоит мне только включит свет как все показания выводят по циклу 10 ppm - 12 ppm.
     
  6. DetSimen

    DetSimen Гуру

    По причине, что в нем ничего нигде НЕ читается
     
    Airbus нравится это.
  7. DetSimen

    DetSimen Гуру

    дилеи вижу, одинаковые комментарии для всех даччиков тоже вижу, чтения - Не вижу.
     
    Airbus нравится это.
  8. Ну 20, 30 измерений подряд. В ардуино входы рассчитаны на импеданс в 10к. Если у вас там фоторезистор в 100к, с таким же плечом, то и считайте, сколько раз нужно повторять измерение для входа в 200к.

    Что такое буферный усилитель есть в гугле. Если в кратце, то такой усилитель, на входе которого большой импеданс, а на выходе близкий к нулю.
     
  9. parovoZZ

    parovoZZ Гуру

    Все верно. Показания этого датчика зависят от температуры.
     
  10. onefreddy

    onefreddy Нуб

    Сами поняли что сказали? Естественно я прогреваю MQ2 при старте, если вы это имели ввиду.
    Ну я их в сниппет и не вставлял чтобы место не занимать. Чтение разумеется есть в коде, там ошибок быть не может.
    Провел сейчас эксперимент 100 измерений для MQ2 подряд с задержкой в 1с между каждым. Ничего не поменялось. В любой итерации с включенной ламой выдает Smoke: 20 ppm, выключаю свет повышается до 31 ppm.
    Ну у меня Датчик освещённости (Troyka-модуль) от амперки.
    Сделаю проще, выкину нафиг MQ2.
     
  11. Ну значит у вас схемотехника совсем через зад
     
    parovoZZ нравится это.
  12. Airbus

    Airbus Радиохулиган

    Кто то прочитал это?
    И это?
    В натуре где там чтение с датчиков?
     
    DetSimen нравится это.
  13. Airbus

    Airbus Радиохулиган

    Что измеряет этот кот?
    Код (C++):
    void loop()
    {
         //1. Датчик освещённости
         for (int i = 1; i <= 10; i++)
         {
              // считывание данных с датчика освещённости
              delay(1000);
         }
         //
         delay(1000);
         //2. Датчик газов
         for (int i = 1; i <= 10; i++)
         {
              // считывание данных с датчика освещённости
              delay(1000);
         }
         //
         delay(1000);
         //3. Датчик температуры
         for (int i = 1; i <= 10; i++)
         {
              // считывание данных с датчика освещённости
              delay(1000);
         }
         delay(1000);
    }
     
  14. parovoZZ

    parovoZZ Гуру

    Ровно то, что есть в даташите. Там даже график есть.