Black001010 0 18 октября, 2022 Опубликовано 18 октября, 2022 · Жалоба День добрый. Задача... Нужна общая линия тревоги, устойчивая к помехам. К ней подключаются 1-10 блоков, каждый на расстоянии 1-5м друг от друга, соотв. максимальная длина линии 50 м. Любой блок может активировать линию (логическое "или") и каждый блок узнает, если линию активировал другой блок. Все блоки питаются 24в с общего БП. В каждом блоке STM32F103. Решение... Линию просаживаю биполярным транзистором с ОК, оптопарой слушал линию. Проблема... На столе работает как нужно. Любой блок может активировать линию, и все об этом узнают. НО когда имитирую работу в тяжелых (нормальных рабочих) условиях, проводами линии обвешиваю 3-х фазный электродвигатель - начинается произвольная активация линии. Предположил открывается транзистор, пытался менять номинал R5 - не помогло, хотя на 2к перестал открываться от касания пальцем. Предположил срабатывает светодиод оптопары, пытался "приглушить" номиналом R3 до 2к - нет разницы. Подскажите пожалуйста, как доработать мою схему (или может другой схемой), решить задачу. В электронике слаб, буду очень признателен, если поправите неправильные номиналы, подскажите что поменять. P.S. Возможна зацепка... При подключении 2-х блоков, наводки как буд-то сильнее и наводятся быстрее, чем если подключены 8 блоков. При 2 блоках светодиоды (имитируют вход МК) горят на 20%, МК активацию линии (лог 0) ловит практически сразу при включении электродвигателя. При 8 блоках светодиоды помаргивают еле еле, МК активацию линии ловит секунд через 10. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 18 октября, 2022 Опубликовано 18 октября, 2022 · Жалоба А Вы фильтруете сигнал DIN? Или он сразу вызывает прерывание микроконтроллера? Программно фильтруйте. Хотя бы так, что активация сигнала происходит, если низкий уровень держится непрерывно в течение 50 мс. Если в течение этих 50 мс хотя бы ненадолго проскочила "единица", то сбрасывайте фильтр и снова ждите. Схема, ИМХО, требует отдельной критики. Светодиод оптрона можно зашунтировать конденсатором 0.1 - 1 мкФ (керамика). Резистор R3 нужно пересчитывать так, чтобы он работал токовым шунтом - забирал на себя основную часть тока, оставляя светодиоду лишь малую и необходимую долю для надёжного срабатывания. Таким образом случайная помеха не изменит состояние светодиода (по крайней мере хочется на это надеяться). Но тут нужно считать номинал. А вообще схему развивать можно и нужно. В своём дискретном входе я добавлял аппаратный гистерезис: т.е. вход срабатывает, например, от напряжения выше 8 В, а для снятия сигнала, нужно чтобы напряжение упало до 2 В. Но мою схему так напрямую к Вашей не приспособить. P.S. Что-то более конкретное далее предлагать мне сейчас и лень, и некогда и у меня тут уже конец рабочего дня))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 18 октября, 2022 Опубликовано 18 октября, 2022 · Жалоба Линию LINE, которая идёт "по улице" неплохо бы защитить от перегрузки по напряжению (схема на двух диодах) и от ЭСР. P.S.S. Схему нужно просчитывать. Но на это нужно время и желание) У меня пока ни того и ни другого нет) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 87 18 октября, 2022 Опубликовано 18 октября, 2022 · Жалоба 2 часа назад, Black001010 сказал: . НО когда имитирую работу в тяжелых (нормальных рабочих) условиях, проводами линии обвешиваю 3-х фазный электродвигатель - начинается произвольная активация линии. Задайте рабочий ток линии максимальный, хотя бы 50 мА, т.е через R2 и R3 должен течь такой ток, или 20мА - как раз максимальный через PC817 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 223 18 октября, 2022 Опубликовано 18 октября, 2022 · Жалоба В коллектор транзистора вставить диод, R5 заменить на 1 кОм. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться