Мой друг Жюль спрашивает:
Цель состоит в том, чтобы получить как можно больше элементов управления серводвигателями — похоже, максимум, который выдает Arduino, составляет 14?
Цифровые контакты ввода/вывода 54 (из которых 14 обеспечивают выход ШИМ)
Я предполагаю, что синхронизация нескольких плат Mega становится программной проблемой? - т.е. массив 14 x 14 с использованием 14 плат
Я бы также пошел по тому же маршруту, который предложил todbot. Однако, поскольку я большой поклонник I2C, я использую сервоконтроллер SD21, который может управлять 21 сервоприводом. Если вам нужно еще больше, есть сервоконтроллер SD84, который может управлять (как вы уже догадались) 84 сервоприводами.
Если вы хотите управлять несколькими сервоприводами, лучше подключить несколько выделенных сервоконтроллеров к одному Arduino. Есть много примеров сервоконтроллеров с открытым исходным кодом, но вы также можете купить готовые. Например, вот 8-сервоконтроллер Polulu и 16-сервоконтроллер Pololu . Возьмите несколько таких, подключите их к любым цифровым контактам Arduino и используйте библиотеку SoftSerial для отправки им команд.
Я согласен с другими парнями, используйте специальный сервоконтроллер.
Я нахожусь в процессе создания собственного робота-гексапода, см. здесь исходный код и доступные схемы.
Другой подход заключается в использовании «цифровых» сервоприводов, таких как OpenServo . Таким образом, вы можете управлять дюжиной или около того сервоприводов, используя 2 вывода Arduino, и еще дюжиной сервоприводов, используя еще 2 вывода.
Я использую сервоконтроллер SSC-32 от Lynxmotion. Он использует ATmega8 или ATmega168 и может управлять до 32 сервоприводами. Вы можете найти все (схема, прошивка) для сборки на их странице. Я построил один сам, и он работал нормально.
Коннор Вульф