Современная Arduino Uno имеет 14 цифровых входов/выходов (6 из которых могут использоваться как выходы ШИМ) и 6 аналоговых входов. Для использования Arduino в качестве устройства управления системой умного дома, имеющего в своем составе датчики освещенности и температуры, пожарной и охранной сигнализации, устройства для управления бытовой техникой, освещением, вентиляционными и отопительными системами, системами электропитания и механизации здания (открытие/закрытие ворот, шлагбаумов, дверей и т.д.) такого количества входов и выходов явно недостаточно. Для увеличения количества входов используются схемы расширения, подключаемые к Arduino.
Arduino Mega
Плата Arduino Mega - описание, на оф. сайте
Платформа содержит 54 цифровых входа/выходов (14 из которых могут использоваться как выходы ШИМ), 16 аналоговых входов
Статьи по схемам расширения - для цифровых сигналов
Удвоение пинов Arduino - увеличение числа выходов - 8 выходов из трех (+5 выходов). Таким образом, 12 из цифровых выходов Arduino можно объединить в 4 группы по 3 выхода и получить по 8 выходов для каждой группы: 4*8=32, плюс два незадействованных выхода, итого можно получить 32+2=34 цифровых выхода
При использовании приведенной ниже схемы объединения регистров из трех цифровых выходов Arduino получается 16, итого получается максимальное число цифровых выходов 4*16+2=64+2=66. При необходимости можно добавить дополнительные регистры, получив 24, 32 и т.д. цифровых выходов, за счет снижения скорости работы
Даташит на 74HC595, Сдвиговый регистр 74HC595
Удвоение пинов Arduino - увеличение числа входов. Аналогично рассмотренному выше, для увеличения количества входов используем две и более микросхемы регистров, подключаемых к трем входам Arduino (схема ниже)
Даташит на 4021
Увеличение количества входов ARDUINO
Пример расчета схемы для нужного числа выводов
Пусть требуется подключение 50 входных и 35 выходных сигналов. Пусть 2 группы по 3 контакта Arduino обеспечивают прием информации с 50 входов, а 2 группы по 3 контакта - выдачу информации на 35 выходов. Рассчитаем нужное количество регистров.
Входы: 50/2=25. Так как при использовании двух групп по три контакта задействованы 12 контактов из 14 имеющихся, используем 2 оставшихся под входы и получим необходимость обеспечить с помощью переключения регистров 50-2=48 входов, то есть по 24 входа ка группу из трех контактов Arduino. Таким образом, использование двух групп по три регистра с восемью входами каждый и двух оставшихся контактов Arduino обеспечивает 2*3*8+2=50 входов, что удовлетворяет заданию.
Выходы: 35/2=17,5. Ближайшее большее число выходов - 24, то есть по три микросхемы регистра на каждую группу контактов. Таким способом для двух групп и трех регистров с восемью выходами каждый (см. выше) будет обеспечено 2*3*8=48 выходов, что больше требуемых 35, то есть удовлетворяет заданию с запасом.
Подключаемые элементы
Подключение кнопки, Цифровой ввод — кнопка
Микропереключатели ПМ39, тумблер ASW-09-101
ЖК-дисплей: Подключение текстового экрана к Arduino. В соответствии со статьей, к контакту индикатора нужно подключить: 1,3 - земля; 2 - +5 В; 4,6,11,12,13,14 - цифровые выходы. Даташит на ЖК индикатор
Блок питания:
Схема простого блок питания 5 В 1 А
Простой блок питания 5 В, 0,5 А
Трансформатор
Подключение RS-485: в соответствии с описанием, раздел Связь, Arduino Uno поддерживают последовательный интерфейс UART TTL (5 В), осуществляемый выводами 0 (RX) и 1 (TX)
Подключение USB: статья, раздел Кабели и разъёмы USB