Только некоторые из моих индуктивных датчиков работают с моей платой

Я работаю над платой с шестью индуктивными датчиками.

Я использую оптопары для изоляции между выходом датчика и MCU. Четыре из них работают нормально, а два показывают очень ненадежное поведение.

Когда я обнаруживаю металлический объект, напряжение на стабилитроне (3,3 В) составляет 0,70 В, что нормально, но когда я подключаю вывод GPIO микроконтроллера для считывания напряжения в той же точке (стабилитрон 3,3 В), оно составляет 0,254 В, а иногда и когда металлоискателя нет то напряжение на (стабилитрон 3,3В) 1,154В а должно быть 3,3В.

Я уже поднимал этот вопрос на другом форуме, и люди предположили, что это может быть проблема с конструкцией или холодной пайкой. Я сделал новую плату на перфорированной печатной плате, но проблема осталась, даже после их замены.

  • Рабочее напряжение индуктивного датчика: (10-30 В)
  • Выходное напряжение: (23,32 В) при напряжении питания (24 В)
  • Оптопара: PC817
  • Подтягивающий резистор: 4,7 кОм

введите описание изображения здесь

Ваш стабилитрон замыкает выход датчика на землю. Когда выход датчика становится высоким, ваш опто и LED1 смещены в обратном направлении. Это никогда не должно работать. Датчик PNP или NPN? Ссылку на даташит (в вашем вопросе), пожалуйста.
«Когда я обнаруживаю металлический объект, напряжение на стабилитроне (3,3 В) составляет 0,70 В, что нормально, но когда я подключаю вывод GPIO микроконтроллера для чтения, напряжение в той же точке (стабилитрон 3,3 В) составляет 0,254 В». - Подключение MCU не должно иметь значения, если контакт порта является входом, если только не активировано раскрывающееся меню. Какой микроконтроллер вы используете и к каким контактам ввода-вывода подключены датчики? Можете ли вы показать исходный код инициализации порта?
@Transistor Я отредактировал вопрос, и когда датчик обнаруживает металл, он дает 0, иначе 1
Это не говорит мне, является ли датчик PNP или NPN. Почему бы не добавить ссылку на таблицу данных?
А почему изображение боком? :^?
настроены ли «плохие» контакты mcu как выход или вход?
ps -- 24-вольтовый стабилитрон оставляет небольшой запас, но, вероятно, это не ваша проблема. Также приятно иметь двунаправленную защиту.
@Transistor Я прикрепил ссылку на таблицу данных в вопросе

Ответы (1)

... четыре из них работают нормально, а два показывают очень ненадежное поведение.

Это означает либо:

  • у вас ошибка на двух досках.
  • ваш дизайн находится на грани не/работы.

Когда я обнаруживаю металлический объект, напряжение на стабилитроне (3,3 В) составляет 0,70 В, что нормально, но когда я подключаю вывод GPIO микроконтроллера для их чтения, напряжение в той же точке (стабилитрон 3,3 В) составляет 0,254 В и некоторое время, когда нет металла напряжение обнаружения при (стабилитрон 3,3 В) составляет 1,154 В, но должно быть 3,3 В.

Нумерация компонентов ZD1, ZD2, R1, R2 и т. д. значительно упрощает обсуждение схемы. Однако подключение вывода MCU к стабилитрону 3,3 В не должно нагружать схему, если только GPIO не запрограммирован как выход.

Общие комментарии:

  • Стабилитрон на 24 В не требуется, если вы работаете от хорошего источника питания 24 В. Если вы получите перенапряжение, ничто не ограничивает ток, поэтому он, вероятно, перегреется и умрет. Также обратите внимание, что если это устройство ± 5%, его напряжение пробоя может быть < 23 В, поэтому оно будет включено все время, поэтому вам может просто повезти, если вы еще не видели дыма. Если вы действительно считаете, что вам нужна защита от перенапряжения, установите ZD1, как показано на рисунке 1.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Рисунок 1. D1 обеспечивает защиту от перенапряжения и обратной полярности.

  • Подключение светодиода 1 последовательно с оптическим светодиодом экономит пару компонентов, а светодиод 1 показывает, что ток действительно протекает через OPTO1.
  • Диод Зенера на 3,3 В ничего не делает для вас, кроме как вызывает еще один возможный горячий компонент, поскольку его напряжение пробоя такое же, как напряжение питания. Ваше подтягивание в любом случае связано с шиной питания микроконтроллера, поэтому, если вы получаете высокое напряжение от подтягивания, скорее всего, MCU уже приготовлен.
  • Я использовал разные символы заземления, чтобы указать, что цепи изолированы. Из вашей схемы не ясно, так это или нет.