4.5.4. Управление кнопками «вправо» и «влев
Для каждой системы существует возможность управлять движением моторов при помощи кнопок. Контроллер поддерживает таблицу из 10 скоростей движения MaxSpeed[0-9], которые используются и для управления джойстиком, и при управлении кнопками.
Настройки кнопок передаются/считываются командами SCTL/GCTL (set_control_settings/get_control_settings).
- При кратковременном нажатии (менее MaxClickTime) на кнопку вправо или влево мотор сдвигается на заданное расстояние, если DeltaPosition и uDeltaPosition отличны от нуля.
- При длительном нажатии одной из кнопок, по истечении времени MaxClickTime контроллер запускает движение со скоростью MaxSpeed[0] и начинает отсчитываться таймаут Timeout[0]. По истечению каждого таймаута Timeout[i] скорость меняется на с MaxSpeed[i] на MaxSpeed[i+1].
- При одновременном нажатии двух кнопок контроллер совершает остановку с замедлением. Удержание двух кнопок в течении 3 секунд запускает автокалибровку домашней позиции.
Примечание
Если вся таблица из 10 скоростей не нужна, то достаточно заполнить только её верхнюю часть. Контроллер не будет менять скорость на следующую, если она равна нулю или если таймаут, который для этого надо отсчитать, равен нулю. Например, если MaxSpeed[0] и MaxSpeed[1] ненулевые, а MaxSpeed[2] равно нулю (включая микрошаговую часть), то контроллер начнёт движение на скорости MaxSpeed[0], перейдёт на скорость MaxSpeed[1] и продолжит движенее с крайней скоростью до момента отпускания кнопки. Для той же функциональности можно сделать Timeout[1] равным нулю, величина скорости MaxSpeed[2] не будет иметь значения. Движение мотора подчиняется настройкам движения (за исключением устанавливаемой скорости). Например, при переходе от MaxSpeed[i] на MaxSpeed[i+1] мотор может ускоряться до достижения нового значения скорости или менять её скачком, если ускорение отключено.
По умолчанию состояние кнопки задаётся уровнями напряжений согласно таблице Параметры вывода. Состояние каждой кнопки может быть программно инвертировано. При активном состоянии кнопка считается нажатой. Не имеет значения каким образом состояние становится активным (после изменения настройки инвертирования состояний или же при смене уровня напряжения при физическом воздействии на кнопку). Контроллер использует программное подавление дребезга контактов на кнопках. Кнопка считается нажатой, если активное состояние на входе кнопки длилось более 3-х миллисекунд.
Тип | ТТЛ уровень |
---|---|
Логический нуль | 0 В |
Логическая единица | 3.3 В |
Предупреждение
Если при включении контроллера или его перезагрузке на входе кнопки присутствует уровень напряжения, который считается активным, то контроллер воспримет это как сигнал нажатия кнопки и начнёт подчиняться правилам описанным выше.
4.5.4.1. Схема подключения¶
4.5.4.1.1. Плата контроллера¶
К плате контроллера могут быть подключены кнопки управления («вправо», «влево») через разъём BPC. В ней не встроено подтягивающих резисторов для установки входного потенциала по-умолчанию, поэтому необходимо использовать схему с верхним (pullup) или нижним (pulldown) резисторами.
4.5.4.1.2. Одноосная или двухосная система в корпусе¶
Для контроллеров в корпусе кнопки уже выведены наружу. Однако есть возможность подключить свои кнопки управления к соответствующим контактам. Они находятся в D-SUB 9 разъёме и есть только в двухосной системе. Схема подключения приведена ниже.
4.5.4.1.3. Многоосная система¶
В многоосной системе кнопки выведены на разъём External Control. Схема подключения зависит от версии платы модулей. Для более старых версий (mbxbb v1.0 и v1.1) используется схема с подтягивающими резисторами.