Возможно ли увеличение количества входов/выходов модуля?

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем dr.Lmg, 29 май 2015.

  1. dr.Lmg

    dr.Lmg Нуб

    Предыстория:
    Сейчас имею контроллер (не adruino), самостоятельно собранный и настроенный для управления функционалом загородного дома (отопление, освещение, охрана периметра, пожарная сигнализация и т.п.).
    Столкнулся с проблемой масшатбирования - входы еще есть, а выходов уже не осталось, т.е. данные считывать можно, а вот применить их на исполнительных механизмах - увы, нет.

    Присматриваюсь к adruino. Привлекает гибкость управления / сборки (собственное программирование, и куча дополнительных модулей).

    Отсюда вопрос: приобретая, к примеру, модуль Arduino Uno, который имеет ограниченное количество входов / выходов (ну как и любой другой модуль), имеется ли возможность при возникшем дефиците входов или выходов этот модуль масшабировать с сохранением управления через первоначальный модуль?
     
  2. ИгорьК

    ИгорьК Гуру

    Возьмите, лучше, Мегу и избавьтесь от своего вопроса радикально.
    Полагаю, что Вы можете себе это позволить (по средствам).

    Другое дело что ... У Вас в доме все притянуто проводами к одной железке???
    Есть же, там, всякие шины, 1-Wire в первую очередь, и тем более беспроводные модули разных калибров?
     
  3. dr.Lmg

    dr.Lmg Нуб

    А как именно радикально Mega избавит меня от этого вопроса? Только бОльшим количеством входов / выходов, или все же ее можно масштабировать? Просто в адруино я новичок, поэтому и хочу понять.
    Сам контроллер работает только с проводами, поэтому провода. Собственно, от них я пока отказываться не планирую, меня пока другой вопрос интересует.
     
  4. ИгорьК

    ИгорьК Гуру

    Там ооооооочень много проводов можно подключить. Но можно и еще добавить разными способами.
    Digital I/O Pins - 54 (of which 15 provide PWM output) -мало?

    Если не секрет - сколько сейчас у Вас входов/выходов задействовано?

    Кстати, проблема ведь еще не только в количестве возможных соединений, а ресурсе контроллера со всем этим хозяйством управиться.
    Сейчас тенденция заключается в том, что каждый элемент умного дома действует самостоятельно, объединившись при этом с контроллером, который может давать ему наставления, но не управлять им на уровне логики. Это повышает устойчивость системы в целом.
     
    Последнее редактирование: 29 май 2015
  5. dr.Lmg

    dr.Lmg Нуб

    Ну это я видел, да. 54 входа / выхода.
    По началу мне 16 входов / 5 выходов было много. Теперь уперся в потолок.
    Мне просто понять на будущее, дом еще не до конца оборудован (т.к. функционал уже не позволяет), а еще гараж, баня, хоз. пристройки.. Хочу приобрести именно такое устройство, которым смогу централизованно всем этим хозяйством управлять. И при необходимости - масшатбировать. Например, так, чтобы при условии, что я задействовал все 54 входа / выхода, я мог подключить доп. модуль, который дал бы мне прирост входов/ выходов, но при этом они так же управлялись бы централизованно с первого модуля. Вот в чем вопрос :)
     
  6. ИгорьК

    ИгорьК Гуру

    Существуют микросхемы, которые, соединяясь с МК по одной из шин (UART, I2C, 1-Wire), выполняют задачи как приема данных так и передачи.
    Не знаю какое у Вас железо, но оно, скорее всего, поддерживает какую-то шину и, следовательно, Вы можете расширить и свои ресурсы на работающем контроллере. Если он уж совсем не специфический какой-то.

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

    Завешивание всей логики в одну программу как сильно усложняет программирование, так и снижает надежность.
     
    issaom нравится это.
  7. Tomasina

    Tomasina Сушитель лампочек Модератор

  8. ИгорьК

    ИгорьК Гуру

  9. geher

    geher Гуру

    Если я правильно понял, то под масштабированием понимается простое размножении входов и выходов.
    Это можно делать на любом МК.
    1. Использовать для управления различные шины, допускающие подключение более одного устройства: I2C, SPI, RS422, RS485.
    Первые две реализованы непосредственно на ардуине. Также их можно реализовать на других пинах программно. Для последовательного порта потребуется дополнительный модуль.
    2. Сдвиговые регистры, входные и выходные, позволяют при помощи четырех пинов управлять любым количеством цифровых входов и выходов.
    Можно подключить к шине SPI МК.
    3. Различные модули расширения портов, некоторые из которых позволяют расширять аналоговые входы и ШИМ на выходах.
    4. Объединение в одну систему нескольких МК, каждый из которых управляет своим набором устройств, согласуя свои действия по какой-либо шине с централным управляющим МК (централизованная система) или просто с соседними МК (одноранговая система).
    Данный вариант позволяет решить вопрос нехватки не только входов-выходов, но и вычислительной мощности, таймеров, прерываний и проч.
     
    Последнее редактирование: 29 май 2015
  10. dr.Lmg

    dr.Lmg Нуб

    Все верно.
    Ну тем не менее подавляющее большинство устройств типа "Умный дом" и более серьезные промышленные комплексы работают под управлением одной программы и центрального модуля. Можно, конечно, подискутировать, но тема о другом :)

    Мне как раз подходят два варианта из 4, предложенных geher. Это 1 и 4. 4 вариант наиболее навороченный, и в настоящее время конечно не требуется. Главное, что из adruino его можно собрать (ведь так?).
    Мой контроллер, который сейчас, не имеет никакой шины. Он как бы "в себе". Что есть - то есть.
    Получается, что оптимально будет использовать первый вариант, предложенный geher, и описанный по ссылке http://arduino.ru/Tutorial/registr_74HC595.
     
  11. ИгорьК

    ИгорьК Гуру

    Этот вариант я бы никогда не использовал. Но дискуссия на тему оптимальности связана с подходами к построению системы и программированию.
    Поэтому, просто ИМХО.
     
  12. dr.Lmg

    dr.Lmg Нуб

    А почему? Нестабильнось или высокая степень отказа?
     
  13. ИгорьК

    ИгорьК Гуру

    Думаю, схема (железно) и стабильна и отказоустойчива.
    Кстати, сдвиговые регистры - это не то что уважаемый geher в первом пункте описал. Это еще одно, которое само по себе.
    Но вот представьте - у Вас меняется какой-то выход. Один. Чтобы изменить его состояние, вы обрабатываете состояние всех остальных: ведь логика работы такова, что все они зависимы между собой.
    Понятно, что создав необходимый класс и написав правила работы с ним, это решаемая задача.
    Просто посмотрите примеры, которые там есть. Все они связаны с красивой и последовательной работой с лампочками. Это гуд. Но насколько это удобно для умного дома? Вопрос.
     
    issaom нравится это.
  14. dr.Lmg

    dr.Lmg Нуб

    Да, это он в п.2. описал.

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

    Т.е., например, по шине I2C можно соединить между собой два UNO, и управлять обеими через один? Или нет?
     
  15. Tomasina

    Tomasina Сушитель лампочек Модератор

    эм, насколько я знаю, первые два протокола - чисто межплатные и не предназначены для больших расстояний (более 0,8-2 м). А ТС надо организовать стабильное (свет - ладно, а если это управление реактором котлом?) общение между комнатами или даже этажами, причем в сложных условиях: параллельно уложенные силовые провода 220 В, возможные обрывы и прочие бытовые проблемы.
    А это уже 1-wire, RS4xx, DMX или LAN.
     
  16. geher

    geher Гуру

    Естественно, не стоит ждать от SPI и I2C чудес.
    Данные шины позволят сэкономить на пинах только для близких к ардуине устройств (дисплей, локальные датчики). Для удаленных устройств нужны более другие шины. Но они обычно требуют дополнительных модулей или специализированных дуин с расширенным функционалом.
    Про 1-wire ничего не скажу, ибо никогда не работал с нею.
    LAN в смысле Ethernet? Если да, то это интересное решение, но требует "сетеватости" от датчиков. RS-422/485 - стандартное промышленное решение, часто используется в наше время, несмотря на засилье LAN, поскольку простое и с проверенной надежностью. От датчика потребуется только наличие UART, к которому надо будет приделать переход на RS.
     
  17. dr.Lmg

    dr.Lmg Нуб

    Гуру, спасибо за ответы!
    Пока остановлюсь на Меге, а там по ходу дела уже буду подбирать варианты расширения, если потребуется.