Каталог

КАК ЭТО РАБОТАЕТ

Быстрый старт

Варианты связи с контроллером

Редактор графического интерфейса

Как получить исходный код

Как использовать графический интерфейс для своей задачи

Дополнительные функции библиотеки

Элементы управления

Элементы индикации

Элементы оформления

Модули связи

Библиотека

Как перенести интерфейс в IDE FLProg

Обновление прошивки ESP8266

Слайдер



Слайдер является пропорциональным элементом управления и позволяет передать на микроконтроллер плавное изменение своего положения. Он позволяет плавно изменять значение от 0 до 100 (целые числа).

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


ДанныеТипЗначение
Положение слайдераunsigned char0..100 положение движка

Настройка

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

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

Примеры программирования

Для получения положения слайдера, его достаточно прочитать из соответствующего поля структуры RemoteXY:

int pos = RemoteXY.slider_1; /* pos равно положению слайдера, изменяющееся от 0 до 100 */

Для управления аналоговым сигналом на выводе PIN микроконтроллера в Arduino IDE можно использовать следующий код:

analogWrite(PIN, RemoteXY.slider_1 * 2.55);

Для управления двигателем через драйвер моторов в Arduino IDE можно использовать следующий код, в котором пин PIN_DIR - направление вращение двигателя, пин PIN_SPD - ШИМ вывод для управления двигателем:

int pos = RemoteXY.slider_1; if (pos>50) { // вперед digitalWrite(PIN_DIR, HIGH); analogWrite(PIN_SPD, (pos-50) * 5.11); } else if (pos<50) { // назад digitalWrite(PIN_DIR, LOW); analogWrite(PIN_SPD, (50-pos) * 5.11); } else { // стоп digitalWrite(PIN_DIR, LOW); analogWrite(PIN_SPD, 0); }

Для управления сервомашинкой в Arduino IDE можно использовать одну из строк следующего кода:

myservo.writeMicroseconds(RemoteXY.slider_1 * 20 + 500); /* или */ myservo.write(RemoteXY.slider_1 * 1.8); /* для реверсирования направления */ myservo.writeMicroseconds(2500 - RemoteXY.slider_1 * 20); /* или */ myservo.write(180 - RemoteXY.slider_1 * 1.8);