Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/33: Рейтинг темы: голосов - 33, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382

опрос 96 кнопок

25.03.2017, 21:45. Показов 6923. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Не могу определиться с реализацией задачи: Необходимо опрашивать 96 кнопок, которые рассредоточены по помещению. расстояние от кнопок до МК
до 30 метров. Возможно одновременное нажатие нескольких кнопок. Результат отправляется на ЭВМ через RS485
Реализация должна быть максимально простой с точки зрения монтажа. Поэтому матричная клавиатура с динамическим опросом отпадает.
Варианты:
1. МК в небольшом корпусе (STM32F0) + 6 микросхем расширителей портов (например TCA9555), подключенных по I2C
2. Один МК в корпусе LQFP144 (STM32F10xZ)
3. Три МК в корпусе LQFP48 (STM32F042) (Один контроллер будет главным, остальные ведомые. Придется при изготовлении 3 МК прошивать (не критично, но не приятно))

Еще вопрос по защите портов. Достаточно ли схемы (см. вложение)? Все провода от кнопок сходятся в 12 UTP кабелей, земля отдельно.


<Изображение удалено>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.03.2017, 21:45
Ответы с готовыми решениями:

опрос кнопок, как исправить?
Привет, прошу в помощи в написании функции опроса кнопок. функция периодически запускается по таймеру и должна изменять значения...

FreeRTOS и опрос кнопок и передача в таск
Не могу придумать в голове как передать состояние кнопок из одной задачи в другую. Задачу ставлю так: есть таск который опрашивает 6...

Опрос кнопок (PIC16F877)
Здравствуйте, недавно начал заниматься программированием платы PIC16F877. Написал программу по выбору одной из двух кнопок, одна - включает...

31
Oxford
25.03.2017, 23:59
квест городим?
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 22
26.03.2017, 00:52
На таких расстояниях лучше использовать оптроны.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 155
26.03.2017, 01:38
24 корпуса 16 ногих, по 4 корпуса на модуль вроде норм будет
0
1 / 1 / 0
Регистрация: 17.12.2012
Сообщений: 425
26.03.2017, 02:18
Цитата Сообщение от judshym
земля отдельно.
вот это настораживает
0
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
26.03.2017, 10:22
Первое, что приходит в голову - на каждую кнопку/группу кнопок отдельный контроллер, пусть даже самый мелкий из доступных. Он будет отправлять код нажатой кнопки в главный контроллер. Тогда не будет проблем с ложным срабатыванием из-за наводок и т.п. неприятностей и не нужно тянуть жгут проводов по всему периметру.
0
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
26.03.2017, 14:37
Расширитель лучше сдвиговый, на I2C разоритесь. Типа 74HC165. ВСего 12 микрух за смешные деньги. На проце понадобится лишь несколько ног. Ноги заводить через оптопары, на оптопару на входе подавать 24В, и желательно нагрузить вход хотя бы на 10-15мА, чтобы наводка не летела.
У себя делал так:

Оптопары PC817. Резистор на 1.5К заложить не менее 0.5 Вт, на нем 0.4Вт выделяется в момент нажатия кнопки.
0
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
26.03.2017, 15:14
А 96 оптопар - не перебор ли?
0
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
26.03.2017, 16:02
Можно без них. Но 30 метров провода, непонятки с землей... Придется городить схемы защиты пинов, которые также займут место. 96 ног не так мало, габарит все равно вылезет. Встречал сборки оптопар, но не думаю что ценники на них гуманны. Плату можно сделать бутербродом, не такая уж и большая будет по площади. Зато проц точно не погорит и не зависнет, да и по деньгам наверно минимально будет.
0
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
26.03.2017, 22:12
Первое, что приходит в голову - на каждую кнопку/группу кнопок отдельный контроллер, пусть даже самый мелкий из доступных. Он будет отправлять код нажатой кнопки в главный контроллер. Тогда не будет проблем с ложным срабатыванием из-за наводок и т.п. неприятностей и не нужно тянуть жгут проводов по всему периметру.
Один контроллер - это требование заказчика. Критерий - минимум операций для монтажников.
Алгоритм монтажника если одна плата: 1. прикрутить (припаять) провод к кнопке (повторять по кнопки не кончаться).
2. Протянуть кабели до контроллера (длина не важна)
3. Обжать кабель и вставить в плату.
Если плат несколько, то добавится еще объединить в сеть платы. А для этого будет еще один разъем. А как показывает практика, фантазия что и как можно вставить в разъем ОЧЕНЬ богатая.
земля отдельно.
вот это настораживает
Меня тоже, поэтому про защиту и спрашиваю. Единичные ложные срабатывания не интересуют, программно отфильтруются,
Боюсь за контроллер.
Питание по помещению готовое 24 В. Вариантов тут у меня также нет.
Расширитель лучше сдвиговый, на I2C разоритесь. Типа 74HC165. ВСего 12 микрух за смешные деньги. На проце понадобится лишь несколько ног. Ноги заводить через оптопары, на оптопару на входе подавать 24В, и желательно нагрузить вход хотя бы на 10-15мА, чтобы наводка не летела.
У I2C есть опция внешнего прерывания при изменении входных сигналов. Было бы удобно их использовать, хотя контроллеру делать особо нечего будет, можно и каждый раз расширители опросить.
Тем более, что микросхемы расширителей не будут играть ключевую роль в образовании цены. Три предложенных варианта по цене отличаются не существенно.
А вот 96 оптопар ставить особо желания нет, если есть вариант обойтись без них.
Для защиты Rail-to-Rail есть вариант ставить бюджетные сборки диодов Шоттки (типа bt54) или готовые микросхемы защиты (основной вариант) типа IP4220CZ6, DVIULC6-4SC6, DALC208SC6
0
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 73
26.03.2017, 22:39
1. UTP шлейфом, стандартные колодки, стандартные разводки.
2. На плате сдвиговый регистр, клок и данные по парам в диф режиме. На прием хватит компаратора, на передачу и инвертор на двух транзисторах сгодится.
P.S. Я делал два табло 7сегментных по 6 разрядов на кабеле 30метров. Сдвиговые 595е + ULN, сегменты из светодиодной ленты, на табло местный импульсный источник питания. И adm485 для приема передачи.

0
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
26.03.2017, 23:30
Цитата Сообщение от judshym
Один контроллер - это требование заказчика. Критерий - минимум операций для монтажников.
...
Если плат несколько, то добавится еще объединить в сеть платы. А для этого будет еще один разъем.
Завтра заказчику понадобится еще 1 кнопка и что он будет делать?

А что если контроллер сгорит? Например из-за грозы или идиота, решившего проверить сколько тока в розетке какое напряжение выдержит защита? На полочке у завхоза будет лежать ерзац контроллер?

Модульная система имеет свои плюсы, да и сеть RS485 уже и так есть.
0
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,400
26.03.2017, 23:54
Я бы кластеров наделал на STM8 или SM32F042 (этот даже лучше — есть CAN, и можно тупо одну шину сделать для всех).
Нелогично как-то тянуть сопли проводов от уймы кнопок. Протянуть к кластерам витуху из двух пар, по одной паре CAN, по другой — питание. Можно, в принципе, и не CAN, а 485 и 9-м битом рулить прием/передача.
0
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
27.03.2017, 00:23
А что если контроллер сгорит? Например из-за грозы или идиота, решившего проверить сколько тока в розетке какое напряжение выдержит защита? На полочке у завхоза будет лежать ерзац контроллер?
Модульная система имеет свои плюсы, да и сеть RS485 уже и так есть.
Никаких завхозов. Заказчик снарядит монтажников в командировку, которые приедут поставят и уедут и в случае поломки будет новая командировка. Конечный пользователь никуда не лезет. Полез - сам виноват. И разницы какую плату менять маленькую или большую никакой нет. командировка в любом случае обойдется в разы дороже.
С одной платой не надо думать сколько классов образования в дипломе у монтажника.

Нет смысла здесь обсуждать заморочки заказчика.
Есть ТЗ, работаю по нему.
0
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
27.03.2017, 10:29
Раз пошла такая пьянка, то как уже писали выше - развязка оптопарами каждой кнопки, иначе будет глючить из-за наводок на провода к кнопкам. Не забудьте при проектировании учесть падение напряжения в проводах к кнопкам.
0
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 721
27.03.2017, 10:37
Смысл рассуждать о поделке с бюджетом в 500 селевовских рублей?
Заказчик сказал : хочу на процессоре за 10 рублей и мотню проводов...
значит так и надо делать... Исполнитель берёт на себя обязательства распутывать проблемы этой мотни.
По правильному по проектировочному для начала берётся план помещения и делается проект кабельных прокладок, а потом уже смотрится принцип построения системы сбора данных с сотни датчиков.
Есть примеры реализаций устойчиво работающих шлейфовых систем типа пожарных и охранных сигнализаций... хотя есть примеры тех же систем, но периодически по неизвестной причине орущих "Срочно покиньте помещения... Это не учебная тревога"
0
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
27.03.2017, 11:29
За ограничения бюджета я не говорил.
Плана помещения нет. т.к. устройство будет выпускаться очень мелкой серией (хороший показатель 10 в год) и будет работать в составе других модулей всего модулей около 20.
Для опроса кнопок сейчас ставят 3 модуля дискретного ввода ОВЕН на 32 канала. Проблема что нет возможности сделать автоконфигурацию SCADA-системы.
Моя задача, по сути дела, сделать некоторый интеллектуальный аналог модулей дискретного ввода/вывода с расширенным функционалом. И сокращение количество плат. (Заказчик посчитал, что так ему будет проще и дешевле работать с монтажниками)
Я ищу "красивое" и достаточное решение. Не проблема на схеме поставить 50 корпусов и сделать плату 0.5*0.5 м. Гораздо сложней поставить 10 корпусов без потери надежности.
Был бы ESD GUN, то собрал бы разные типы защит и проверил бы. Но у меня такого прибора нет. Поэтому спрашиваю тех кто реально тестировал подобные системы.
Опторары тоже не панацея, с учетом того что земля будет все равно общая. Весомый плюс в том, что с ней можно уровни поднять до 24В.
0
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 721
27.03.2017, 12:04
Если это для промышленного назначения (при сигналах =24В можно забыть о наводках и помехах свойственных линиям 3,3...5 Вольт), то надо делать из стандартных промышленных массово выпускаемых модулей, не зависящих на программно-аппаратном уровне от придумок конкретного временного исполнителя.
Автоконфигурацию любой СКАДЫ делает программист :) Чтобы СКАДА (система визуализации на экране и ведения архивов) сама себя конфигурировала - такого ИИ ещё не придумали.
Раньше по началу по старой релейной традиции мы все кабели от всех датчиков тянули в одно место в щитовой.. и там эту мотню втыкали в сотни входов станциий ввода/вывода...
Потом решили экономить на меди и кабельных прокладках и стали использовать станции распределённой периферии, устанавливаемых в непосредственной близости у устройства контроля/управления. К станциям тянем питание и шину Профибус-RS485/Профинет-Эзернет.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
27.03.2017, 12:16
У меня есть знакомый, работает с электроникой, но "у них" не сложилось - электроника его не любит.
Так вот, подходит он как-то к компу, хвать за мышку и перезагрузка. После запуска выясняется, что мышка уничтожена статикой.
Мораль сей басни такова - ставьте опторазвязку.
0
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
27.03.2017, 12:25
Убедили! Оптопары будут.
А что с первым вопросом: расширители, несколько мелких МК или один большой?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.03.2017, 12:25
Помогаю со студенческими работами здесь

Опрос сенсорных кнопок
Всем здравия. Имеется Таймер встраиваемого духового шкафа Hansa. По воле периодического отключения света перестал работать от слова совсем....

Опрос кнопок и индикация.
Помогите пожайлуста. Пишу на Си. Пытаюсь на порт (не важно какой) повесить кнопку и динамическую индикацию. Делаю так включаю порт на ввод,...

Периодический опрос кнопок на MCS-51
Если ДД1=1 и ДД2=1, то ДСИ=0 и ДСИ2=0, если ДД1=0 и ДД2=0, то ДСИ1=1, ДСИ2=1, если ДД1 ≠ДД2, то ДСИ1=1, ДСИ2=0;организовать периодический...

Опрос клавиатуры (несколько нажатых кнопок сразу)
Подскажите как лучше сделать опрос клавиатуры, чтобы можно было отслеживать несколько одновременно нажатых клавиш. Пробовал по int...

Из созданного массива кнопок одна из кнопок (9) должна выполнять метод Percent
Из созданного массива кнопок одна из кнопок (9) должна выполнять метод Percent, но после запуска выдаёт исключение &quot;Ссылка на объект...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru