Jump to content
deniszhur

Беспроводной датчик температуры: загадочные проблемы с приемом сигнала

Recommended Posts

Добрый день, уважаемые знатоки, обращаюсь за помощью, поскольку сам уже в отчаянии найти причину, просто бьюсь головой об стену

проект у меня предельно простой: беспроводной термометр с дисплеем на Arduino

Для беспроводной передачи использовал имеющиеся дешевые модули на частоте 434 MhZ (https://www.sparkfun.com/products/10532,  https://www.sparkfun.com/products/retired/8946)

Схема работы следующая:

  1. передатчик забирает показания температуры с 2х датчиков и передает их раз в 5 минут
  2. приемник ловит и выводит показания на 2 7-сегментных дисплея, драйвером для которых используется MAX-7219

Проблема следующая: включаю приемник и передатчик, пока дисплеи не работают, первый прием показаний происходит без проблем, на большой дистанции

Когда начинают работать дисплеи, дальность приёма ЗНАЧИТЕЛЬНО сокращается, т.е. на той необходимой дистанции, на которой сработал первый прием, второй и последующие уже не проходят. При этом, если расположить устройства поблизости, прием нормально работает и обновляет значения на дисплеях.

В чем может быть проблема? В недостаточной мощности питания? Но у меня БП на 500ма, и я запитал приемник напрямую от разъема питания (5в).

Возможно, я упускаю что-то очевидное для более опытных радиолюбителей? Если необходима схема, я выложу

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

Share this post


Link to post
Share on other sites

Помехи по питанию, как вариант. Импульсные преобразователи питания DC-DC используются?, разводка плат выполнена праильно, фильтрующие емкости, экранирование от передатчика/приемника? Потребляемый ток какой, может 500мА маловато, вот и просаживается питание.


Настоящему коту и в декабре март!

Share this post


Link to post
Share on other sites
Posted (edited)

В приемнике стоял КРЕН 5в, потом убрал, поставил напрямую от БП 5в.

БП даже 1А, ошибся, не 500ма. Импульсный, с регулировкой напряжения.

Экранирования - специально не делал. Попробовал закрыть приемник снаружи фольгой (в полиэтилене), 0 эффекта.

Но в этом я профан, не знаю как правильно экранировать. Такое впечатление что причина как раз в помехах, то ли возникающих внутри контура, то ли внешних, которые создает работа светодиодного драйвера 7219.

И что имеется в виду под правильной разводкой плат? Я любитель, образования электротехники нет, соответственно как делать правильно не знаю- просто соединил все разъемы по логике во Fritzing, перевел на плату и искупал ее в растворе.

Edited by deniszhur

Share this post


Link to post
Share on other sites

Вебинар «Каждому ключу — свой драйвер» (13.08.2020)

Компания КОМПЭЛ приглашает вас принять участие в вебинаре, который будет посвящен теме драйверов управления транзисторами компании Infineon. Мы рассмотрим четыре различных технологии изготовления микросхем драйверов, в чём их отличия и особенности.

Подробнее

Разделить питание аналоговой и цифровой части, сильно и слаботочные цепи. Вы хоть покажите, что наваяли, иначе разговор ни о чем.


Настоящему коту и в декабре март!

Share this post


Link to post
Share on other sites

Новый ХИТ FANSO CR123A/SN

Параметры новой батарейки показывают прекрасные результаты. Она используется для приложений с повышенными импульсами тока. Широко применяется в охранно-пожарных датчиках, устройствах телеметрии, поисковых маячках, LED-фонарях и других промышленных и бытовых устройствах.

Подробнее

Posted (edited)

Пожалуйста, стыдно показывать только - не было 3х символьных дисплеев в списке деталей, пришлось городить.

лучшее что могу показать - макет платы с подписями основных элементов

(Потом уже подпаял питание к остальным пинам приемника - у него 2 земли и 2 VCC, в схеме разводил только к 1-м -, но безрезультатно.)

Нормальную принципиальную схему не получилось сделать во Fritzing.

Если нужно что то уточнить, пожалуйста.

receiver_compact_2_pcb_labels.png

Edited by deniszhur

Share this post


Link to post
Share on other sites

Сетевой источник питания с расширенным диапазоном входных напряжений на основе VIPER26xK

Питание стационарных устройств чаще осуществляется напряжением 220 В, получаемым от одной фазы трехфазной промышленной сети. Однако существует ряд приложений, которым необходима энергия из всех трех фаз, в т.ч. и в аварийных режимах. Решение этой задачи обычно требует введение в модули питания дополнительных узлов, увеличивающих как их размеры, так и стоимость. Упростить схемы источников питания от трехфазной сети переменного тока либо от других высоковольтных источников, позволяет использование преобразователей с расширенным диапазоном входного напряжения.

Подробнее

Ешкин кот! Короче, запомните. Всегда (или очень желательно) цепляем конденсатор  примерно 0,1 мкФ на питание каждой микросхемы. Можно прямо на выводы. И не делаем таких длинных дорожек, особенно земли и питания проходящих через все подряд и импульсные нагрузки (типа передатчика). С RESETом вы не напутали? Лучше передатчику рвать + питания, а не землю, как-то так привычнее.

Для начала припаять 0,1мкФ прямо на выводы АТмеги 7 и 8 (или 20 и 22) - земля и питание. Такой же на МАХ 9 и 19. И такой же на модуль ресивера между +5В и землей.

Если не поможет, снимаем перемычку между 22 АТмеги и 9 МАХ, 9 Мах провоочком прямо на земля КРЕнки (или на дорожку рядом, чтобы выводы не закоротить.
Отрезаем +5В между ресивером и 7 выводом АТМеги, +5В ресивера на конденсатор с выхода КРЕНки.  Аналогично возле 19 ноги МАХа отрезаем питание и на тот же конденсатор.
Конденсаторы возле КРЕНки ставят на минимальном расстоянии. И по логике, зачем вы конденсатор на выходе КРЕНки поставили слева, если питание у вас уходит вправо. Вот справа, где проходит ток и ставьте емкость, чтобы с нее и расходились земля и  + питания. Изучайте.

https://www.compel.ru/lib/72948
https://cxem.net/comp/comp40.php
http://easyelectronics.ru/razvedenie-pitaniya.html

 

Как-то так, извините за неровный почерк.... Красным то, что перерезать, синим - куда присоединить, зеленым - конденсаторы навесить.

receiver_compact_2_pcb_labels1.png.700e895d9ccee4c71a549dde9a773f69.png


Настоящему коту и в декабре март!

Share this post


Link to post
Share on other sites

Ужас, конечно, да ещё и неизвестно, что там выдаёт "импульсный регулируемый блок питания".

А сколько по времени длится сеанс связи с датчиками, может, просто гасить индикацию на это время?
Или даже, можно уложится во время, пока включен один разрядов индикатора?


"Я не знаю какой там коэффициент, я просто паять умею. "

Share this post


Link to post
Share on other sites
24.05.2020 в 21:41, KomSoft сказал:

Ешкин кот! Короче, запомните. Всегда (или очень желательно) цепляем конденсатор  примерно 0,1 мкФ на питание каждой микросхемы. Можно прямо на выводы. И не делаем таких длинных дорожек, особенно земли и питания проходящих через все подряд и импульсные нагрузки (типа передатчика). С RESETом вы не напутали? Лучше передатчику рвать + питания, а не землю, как-то так привычнее.

Для начала припаять 0,1мкФ прямо на выводы АТмеги 7 и 8 (или 20 и 22) - земля и питание. Такой же на МАХ 9 и 19. И такой же на модуль ресивера между +5В и землей.

Если не поможет, снимаем перемычку между 22 АТмеги и 9 МАХ, 9 Мах провоочком прямо на земля КРЕнки (или на дорожку рядом, чтобы выводы не закоротить.
Отрезаем +5В между ресивером и 7 выводом АТМеги, +5В ресивера на конденсатор с выхода КРЕНки.  Аналогично возле 19 ноги МАХа отрезаем питание и на тот же конденсатор.
Конденсаторы возле КРЕНки ставят на минимальном расстоянии. И по логике, зачем вы конденсатор на выходе КРЕНки поставили слева, если питание у вас уходит вправо. Вот справа, где проходит ток и ставьте емкость, чтобы с нее и расходились земля и  + питания. Изучайте.

https://www.compel.ru/lib/72948
https://cxem.net/comp/comp40.php
http://easyelectronics.ru/razvedenie-pitaniya.html

 

Как-то так, извините за неровный почерк.... Красным то, что перерезать, синим - куда присоединить, зеленым - конденсаторы навесить.

 

Огромное спасибо за помощь советы: попробовал сделать все как вы показали, но , к сожалению, ситуация не наладилась. 

Попробовал с батарейкой вместо БП - все так же.

Может быть, действительно гасить дисплеи на время приема, раз в 5 минут.

Или заменить схемы приемника и передатчика на что нибудь менее требовательное к отсутствию разного рода помех, может, x-bee.

Но от этой схемы я уже просто устал, честно говоря, уже нет желания искать ошибки разводки.

Share this post


Link to post
Share on other sites

А может дело не (только) в разводке?

Может есть нюансы на стороне передатчика. 2) попробуйте таки гасить дисплеи на момент приема-передачи. 3) сбросьте схему, попробую красиво развести, если есть желание плату переделать. 


Настоящему коту и в декабре март!

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

  • Similar Content

    • By devisor
      Добрый вечер. И не болеть всем...
      После замены дисплея некорректно работает функция пробуждения двойным тапом. Дисплей, естественно, не оригинальный. Менялся в сборе с рамкой.
      Телефон пробуждается нажатием кнопки питания, после чего функция работает нормально. Экран и выключается, и включается снова двойным касанием.
      Но после закрывания датчиков на некоторое время (точно не засекал, но примерно минута и больше) его можно включить только через кнопку. Далее все нормально, до следующего закрытия датчиков.
      Проблемы с датчиками маловероятны. Ради эксперимента менялись платы, с других телефонов. Результат такой же.
      Резинка на датчиках установлена, проблема не в этом. Кто сталкивался с подобным, поделитесь пожалуйста.
    • Guest Ирина
      By Guest Ирина
      Для облегчения работ по поливу огорода мы приобрели беспроводной дистанционный выключатель для насоса. Работает. Удобно. НО! Возникают такие ситуации: отключаю насос с пульта, он не работает, а потом отключился и включился свет в деревне. И насос снова заработал сам. Как решить эту проблему, подскажите, пожалуйста. Мы можем, конечно, каждый раз после полива вытаскивать вилку из розетки, а перед началом работ включать. Но это теоретически, а практически - забываем.
    • By sys
      Потребовалась в проекте простая и долгоживущая память для вобщем- то небольшого количества данных, на случай сбоя по питанию. Работа ограничивалась записью текущих изменяющихся значений и восстановлением при включении. При неспешной записи несколько раз в минуту, ресурс ATMEGA328 выбирался за 2 года гарантированной записи её родной EEPROM, происходившей по кольцу, что не очень радовало.
              Отступление небольшое, в нете читал статью где этот чип подвергался повышенным напряжением в 7- 9В и при снижении опять начинал работать, так это правда, случайно проверил. Ещё тестили количество циклов чтения- записи, реально намного превышает количество заявленное производителем, но у меня не тот случай где можно на это надеяться.
      Присутствовал на борту модуль с Алиекспресса с DS3231,  на нём имелась память 24С32. Ввиду чрезвычайного удобства (модуль два в одном, и часы и память, общая шина IIC/TWI) эта микросхема использовалась для вышеуказанных целей очень долгое время. А потом всё устройство обрастало свистелками- перделками многочисленными датчиками  и подвергалось давлению перфекционизма. Времени для записи, по даташиту  10ms, стало слишком много и в обрез оставалось для основной работы программы. Я посмотрел в сторону FRAM.
             Были заказаны на том же Али FM24С64 и 04. Частота работы до 1 Мгц,  выпускаются в вариантах 5 и 3,3В, объёма, учитывая количество циклов записи- чтения 10 в 12-й степени хватало. Перепробовав безуспешно адаптировать несколько библиотек, для обычных 24СХХ, решил написать подпрограммы, напрямую работая со встроенной библиотекой Wire Arduino IDE (https://www.arduino.cc/en/Reference/Wire). Этими скетчами проверял присланные микросхемы.
      Для FM24C04:
      #include <Wire.h>
      byte iich = 0x50;// адрес устройства
      unsigned int address = 0;
      byte datawrite = 0x77;// чем заполнить ячейки памяти
      void setup() {
        Serial.begin(115200);
        Wire.begin();
        Wire.setClock (400000);// скорость шины, от 3,3В через конвертер уровней TXS0108 тоже работают
        for (address = 0; address < 512; address ++ ) {  // цикл для записи в память
          iic_write (address, datawrite);    
        }
        for (address = 0; address < 512; address ++ ) { // цикл для чтения из памяти
          Serial.println ();
          Serial.print (address);
          Serial.print ("--");
         Serial.print (iic_read (address),HEX);
          Serial.print ("--");   
        }
      }
      /////////////////////////////////////////////////////
        void loop() {
        }
      /////////////////////////////////////////////////////
        
      unsigned int iic_read (unsigned int adrd) {
          Wire.beginTransmission(iich);
          Wire.write(adrd);
          Wire.requestFrom(iich, 1);
          return  Wire.read();
          Wire.endTransmission();
        }
       void iic_write ( unsigned int adwr, byte dat) {
          Wire.beginTransmission(iich);
          Wire.write(adwr);
          Wire.write(dat);
          Wire.endTransmission();
        }
       
      Для  FM24С64 меня ждали несколько шикарных, испытанных временем граблей.
      Перерыт инет, перечитан даташит. Внутренний подтягивающий к земле резистор  internally pulled down достаточно велик для уровня наводки, воспринимаемой как логический "0" или "1". Поэтому вывод WP- обязательно к земле наикратчайшим  проводом, тем более если это "сопли" на разъёмах на столе. То- же о выводах А0-А2, висящие в воздухе они давали несколько несуществующих адресов. Почему- то это не касается FM24C04 и я попался на этом чипе.
      Подпрограммы изменились, для чтения:
      unsigned int iic_read (unsigned int adrd) {
        Wire.beginTransmission(iich);
        Wire.write(adrd >> 8);// старший байт
        Wire.write(adrd & 0xFF);//младший байт
        Wire.requestFrom(iich, 1);
        if (Wire.available()) {
          return  Wire.read();
        }
        Wire.endTransmission();
      }

      для записи:
      void iic_write ( unsigned int adwr, byte dat) {
        Wire.beginTransmission(iich);
        Wire.write(adwr >> 8);
        Wire.write(adwr & 0xFF);
        Wire.write(dat);
        Wire.endTransmission();
      }
      Работа 5В версии (FM24C64-G) при питании 3,3В и скорости шины 400000 стабильна, что рекомендовать к работе конечно нельзя.
      По поводу  FM24C64 (подозреваю что и С32 ,  С128,  С256) коротко и ясно написано на https://forum.arduino.cc/index.php?topic=18946.0 пользователь alicemirror объясняет как работает чтение у этих микросхем, а поскольку они прямая замена для, например, АТ24С64, то и для них это справедливо.  Дело в том, что данные из микросхемы "выстреливаются" далее без указания адреса с его автоинкрементом самой микросхемой после подтверждения от ведущего. Эту прыть и надо останавливать при получении байта :-)  и способ адресации отличается от младших, с меньшим объёмом.
         Интересных всем проектов!
    • By jonytvester
      Есть у меня два блока питания один на 35kV второй на 65kV, у обоих присутствует порт аналогового программирования 0-10 v (смотрите  прикрепленный мануал ), я ищу умельца который сможет выполнить описанную ниже задачу. возможно есть уже готовое решение ? 
      Задача состоит из двух частей 
      Железо которое должно подключатся с одной стороны  к блоку питания FUG(мануал во вложении ) выдавая от 0-10V , а с другой стороны к ПК через юсб Программа , в которой будет возможно калибровать выходное напряжение блока питания  в зависимости от подключенного БП, возможность повышать/понижать  напряжение постепенно , таймер на выключение/ включение блока питания  .  Analog_programming.pdf
    • By Gor_Th
      Доброго времени суток.

      Есть ли здесь знатоки, кто мог бы на пальцах объяснить работу минут в часах с видео? а еще лучше подсказать, где можно найти схему и код на подобное. (Имеются часы: плоская дощечка длинною в 30см на которой зажигаются минуты. То есть нужна схема, при которой индикаторы зажигаются поочередно.)
      Я в этом деле полный профан и начал копаться в "ардуинах" с неделю назад. Если я правильно понимаю можно получить данный эффект с помощью часов реального времени (например DS 3231) подключенных к arduino и 60 светодиодов подключенных через сдвиговые резисторы плюс, разумеется, должен быть будильник и кнопки которые этим всем оркестром будут управлять, так?
      Реально ли найти готовые схему подключения и сам код работы подобных часов?
      PS: Если кто даст буду крайне благодарен (мало ли у кого-то завалялось).

      lineclock1.mp4
×
×
  • Create New...