Переключатель

Структура данных

ДанныеТипЗначение
Положение переключателяunsigned char0 - положение A
1 - положение B
2 - положение C
3 - положение D
и т.д.

Переключатель позволяет передать на микроконтроллер информацию об одном из нескольких своих положений. Переключатель можно установить в одно из нескольких положений. Для изменения положения переключателя необходимо передвинуть его бегунок в новое положение, или указать пальцем непосредственно в новое положение.

Настройка

Свойства переключателя позволяют задать следующие значения:

  • Имя переменной - имя переключателя и переменной в исходном коде для микроконтроллера, допускается задавать имя по правилам именования переменных языка C.
  • Количество положений - задается количество возможных положений переключателя. Может принимать значение от 2 до 10.
  • Ориентация - можно задать ориентацию переключателя на поле интерфейса. Ориентация может быть "Вертикальная" или "Горизонтальная".

Примеры использования

Общий пример, показывающий, как проверить текущее положение четырехпозиционного переключателя:


  if (RemoteXY.select_1==0) {
    /*  текущее состояние A */
  }
  else if (RemoteXY.select_1==1) {
    /*  текущее состояние B */
  }
  else if (RemoteXY.select_1==2) {
    /*  текущее состояние C */
  }
  else if (RemoteXY.select_1==3) {
    /*  текущее состояние D */
  }

То же самое, но используя оператор switch .. case:


  switch (RemoteXY.select_1) {
    case 0:
      /*  текущее состояние A */
      break;
    case 1:
      /*  текущее состояние B */
      break;
    case 2:
      /*  текущее состояние C */
      break;
    case 3:
      /*  текущее состояние D */
      break;
  }

Следующий пример показывает, как можно управлять четырьмя выводами микроконтроллера, включая их в зависимости от текущего положения переключателя.

Код для Arduino IDE, управление пинами 4..7:


  if (RemoteXY.select_1==0) digitalWrite(4, HIGH);
  else digitalWrite(4, LOW);
  if (RemoteXY.select_1==1) digitalWrite(5, HIGH);
  else digitalWrite(5, LOW);
  if (RemoteXY.select_1==2) digitalWrite(6, HIGH);
  else digitalWrite(6, LOW);
  if (RemoteXY.select_1==3) digitalWrite(7, HIGH);
  else digitalWrite(7, LOW);