Перейти к содержанию
    

FAQ: защита дискретных и аналоговых входов, Выборка из истории форума

Вот набросал схемку. Покритикуйте, пожалуйста. Будет работать? Меня смущает только то, что на открытом симисторе MOC3023 падает около 2В и CPC1035 может не закрыться.

post-37940-1346337430_thumb.jpg

Изменено пользователем Neketos

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня смущает только то, что на открытом симисторе MOC3023 падает около 2В и CPC1035 может не закрыться.

Во входную цепь CPC1035 включить последовательно пару диодов или 1 красный светодиод, напряжение открывания будет выше 2V и симистор будет отключать нагрузку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, пожалуйста, схему дискретных входов на 220 В (на оптопаре) и алгоритм опроса таких входов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможны варианты, самый простой - берете оптрон, например, PC817, ставите последовательно на входы пару одноватных гасящих резисторов килоом по пятьдесят, для пропускания обратной полуволны шунтируете светодиод, обычным диодом, включенным в обратном направлении и сигнал с оптрона заводите на GPIO вход контроллера, включив на нем PULLUP резистор. Имеете на входе последивательность 50 Гц импульсов низкого уровня.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сигнал с оптрона заводите на GPIO вход контроллера, включив на нем PULLUP резистор.

а хватит ли pullup'а ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможны варианты, самый простой - берете оптрон, например, PC817, ставите последовательно на входы пару одноватных гасящих резисторов килоом по пятьдесят, для пропускания обратной полуволны шунтируете светодиод, обычным диодом, включенным в обратном направлении и сигнал с оптрона заводите на GPIO вход контроллера, включив на нем PULLUP резистор. Имеете на входе последивательность 50 Гц импульсов низкого уровня.

 

Необходимо опрашивать 50 раз в секунду вход МК и если за 1 секунду было 50 импульсов, считать что на входе есть сигнал, я правильно понимаю алгоритм?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Программистам не оптрона, им вычислительной мощности процессора не хватает чтобы один логический датчик обработать

Попробуйте втиснуться в массив в 50 слов байтовых. Было бы в памяти 4к 32-разрядных и тактовая вчетверо выше - тогда кое-как.

А пока с этим отдельный 100-ножечный процессор еле справляется.

Ох-хо-хо... печаль и только.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Программистам не оптрона, им вычислительной мощности процессора не хватает чтобы один логический датчик обработать

Попробуйте втиснуться в массив в 50 слов байтовых. Было бы в памяти 4к 32-разрядных и тактовая вчетверо выше - тогда кое-как.

А пока с этим отдельный 100-ножечный процессор еле справляется.

Ох-хо-хо... печаль и только.

 

зачем массив, если достаточно 1 переменной счетчика, вообще непонятны ваши опасания по поводу производительности процессора. никто вроде не говрил про какие -либо ограничения со строны МК

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

зачем массив, если достаточно 1 переменной счетчика, вообще непонятны ваши опасания

А, таки хватает одного счетчика и пары таймеров? Тогда опасания снимаются.

Так скоро дойдем до прерывания или даже до простого опроса одного бита

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, пожалуйста, схему дискретных входов на 220 В (на оптопаре) и алгоритм опроса таких входов.

В отличие от vladec я бы порекомендовал оптрон с AC-входом, то есть - двумя антипараллельными светодиодами внутри, как, например, H11AA1. В качестве гасящих сопротивлений - три последовательно-соединенных сопротивления minimelf порядка 33K, чтобы получить в общей сложности 100K. Почему три? Во-первых, нужно учитывать допустимое максимальное напряжение на сопротивлении, чтобы не случилось пробоя. Для minimelf это, как правило, 125V, что дает 375V для трех, то есть, амплитуду для 265V AC. Во-вторых, три сопротивления распределят максимально возможную мощность в 0.7W между собой, по 0.23W "на нос", что в рамках спецификации для minimelf. Реально рассеиваемая мощьность будет меньше, т.к. номинальное напряжение сети - 220V AC.

Ны выходе оптрона - транзистор с эмиттером на земле, а коллектором - на вход CPU и сопротивлением, скажем, 10K на питание CPU. При приложении АС напряжения на вход там будет сигнал в 100Hz, длинные нули, короткие единицы.

Алгоритм может быть таков: прием трех импульсов в течение некоторого времени (скажем, 5 периодов, то есть, 50мс) считается активным (напряжение подано). Каждая такая активация (пере)запускает таймаут на, скажем, 10 периодов (100мс). Если таймаут истек, принимается пассивное состояние (напряжение снято).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему 100кОм и зачем сеять впустую не менее 0.7 ватта? Разве пропустить 1мА через оптрон мало? Или даже 0.5мА?

Выборка по трем значениям скопирована с дребезжащего контакта? Оптрон так дребезжать не будет. Случайно, по мифическим "помехам" он не подрабатывает. Достаточно поймать один фронт, чтобы уверенно говорить: на ближайшие 10-20мс напряжение подано.

Если аккуратно включить на выходе оптрона небольшой фильтр, то и вовсе статический опрос входа.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я бы порекомендовал оптрон с AC-входом, то есть - двумя антипараллельными светодиодами внутри, как, например, H11AA1. В качестве гасящих сопротивлений - три последовательно-соединенных

Ны выходе оптрона - транзистор с эмиттером на земле, а коллектором - на вход CPU и сопротивлением, скажем, 10K на питание CPU. При приложении АС напряжения на вход там будет сигнал в 100Hz, длинные нули, короткие единицы.

 

Масса программных вариантов - таймеры, счетчики, прерывания... Но для нескольких входов лучше действительно оптроны с относительно высокоомной нагрузкой (проще - PullUp) и конденсатор параллельно оптрону. Задержку "отпускания" RC схемы выбрать из соображений динамики процессов, но не меньше пары-тройки полупериодов сети.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Необходимо опрашивать 50 раз в секунду вход МК и если за 1 секунду было 50 импульсов, считать что на входе есть сигнал, я правильно понимаю алгоритм?

Возможно, секунды будет даже слишком много. Смотря зачем вам это нужно. Например, UPS после втыкания в него силовой вилки подключает нагрузку к сети (соответственно отключая ее от аккумуляторов) не мгновенно, а где-то через секунду, для подавления "дребезга". А вот на пропадание сети он реагирует мгновенно.

Алгоритм может быть таким. Например, настраиваете таймер на прерывание основной программы 500 раз в секунду. В каждом обработчике прерывания опрашиваете вход и складываете в два отдельных счетчика нули и единички. На 500-м прерывании сравниваете счетчики - они должны быть примерно равны (по ~250 каждый). Вообще, алгоритмов можно придумать множество ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему 100кОм и зачем сеять впустую не менее 0.7 ватта? Разве пропустить 1мА через оптрон мало? Или даже 0.5мА?

Оптроны имеют большой разброс по чувствительности. Надо пробовать и выбирать такое сопротивление, чтобы работало всегда. Я расчитываю на 2мА. Собственно, если принять "усиление" оптрона для худшего случая в 65%, то Ваши 0.5мА превратятся на выходе в 0.3мА или 10К подтяжка при 3.3V питания, если "забить" на фронты. Можно и так.

Выборка по трем значениям скопирована с дребезжащего контакта? Оптрон так дребезжать не будет. Случайно, по мифическим "помехам" он не подрабатывает. Достаточно поймать один фронт, чтобы уверенно говорить: на ближайшие 10-20мс напряжение подано.

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...