Индикатор (светодиод)
Индикатором эмитируется обычный светодиод, расположенный на экране смартфона. Информация передается из контроллера к смартфону. Светодиод может изменять яркость свечения каждого из трех основных цветов - красного, зеленого, синего. Так же поддерживается смешение цветов, и вы можете отобразить любой цвет.
Структура данных
Данные | Тип | Значение |
Интенсивность красного | unsigned char | 0..255 - интенсивность красного цвета |
Интенсивность зеленого | unsigned char | 0..255 - интенсивность зеленого цвета |
Интенсивность синего | unsigned char | 0..255 - интенсивность синего цвета |
Настройка
- Имя переменной - имя светодиода и переменной в исходном коде для микроконтроллера, допускается задавать имя по правилам именования переменных языка C.
- Красный - использовать красную составляющую цвета (по умолчанию).
- Зеленый - использовать зеленую составляющую цвета
- Синий - использовать синюю составляющую цвета
Примеры программирования
Для установки свечения одного из цветов индикатора, необходимо записать в соответствующее поле значение 255, соответствующее максимальной насыщенности цвета:
RemoteXY.led_1_r = 255; // включаем красный цвет
Пример, показывает использование частичной яркости индикатора:
RemoteXY.led_1_r = 128; // 50% яркости
RemoteXY.led_2_r = 64; // 25% яркости
Для гашения индикатора просто запишите в соответствующее поле значение 0:
RemoteXY.led_1_r = 0; // выключаем красный цвет
Всего вы можете управлять любым из трех цветов индикатора - красным, зеленым и синим. Возможность использования каждого из цветов необходимо задать в настройках индикатора при его размещении в онлайн редакторе. Для каждого цвета в структуре RemoteXY имеется отдельное поле, в которое можно записать значение от 0 до 255. При включении двух и более цветов одновременно, цвет индикатора будет определяться путем смешения.
Пример, реализующий отображение индикатором состояния входного пина 5 Arduino:
if (digitalRead(5) == HIGH) // если на пин 5 подан высокий уровень
RemoteXY.led_1_r = 255; // тогда включаем красный цвет индикатора
else // иначе
RemoteXY.led_1_r = 0; // выключаем красный цвет
Предыдущий пример, но записанный в одну строчку:
RemoteXY.led_1_r = (digitalRead(5)==HIGH)?255:0;
Пример, реализующий яркость свечения индикатора в зависимости от входного напряжения на аналоговом пин A0 Arduino:
// получаем значение АЦП пина A0, которое будет равно 0..1023
int adc = analogRead(A0);
// преобразуем значение АЦП к диапазону значений индикатора
RemoteXY.led_1_r = adc / 4;