Индикатор (светодиод)

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

ДанныеТипЗначение
Интенсивность красногоunsigned char0..255 - интенсивность красного цвета
Интенсивность зеленогоunsigned char0..255 - интенсивность зеленого цвета
Интенсивность синегоunsigned char0..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;