Урок 3.3. Яркость и цвет
В рамках данного урока вы будете использовать датчик яркости, чтобы с помощью него контролировать яркость цветового LED индикатора на микроконтроллере.
Вы научитесь:
- Использовать функцию диапазона brightness.range() для изменения шкалы яркости
- Использовать значение яркости для включения цветового LED индикатора
- Применять числовые трансформации
В отличие от светового (красного) LED индикатора на микроконтроллере TI-Innovator Hub цветовой LED индикатор может менять яркость. В этом уроке вы будете использовать датчик яркости, чтобы контролировать этот параметр.
1. Еще раз скопируйте программу для работы с измерением яркости, которую вы написали в первой части урока 3 (Урок 3.1. Работа со светом), или программу для работы с яркостью и светом (Урок 3.2. Переключатель света). Они практически одинаковые.
Так как значение для каждого цветового канала LED индикатора может быть только от 0 до 255, диапазон яркости также следует настроить от 0 до 255 с помощью следующего выражения:
brightness.range(0, 255)
Значение яркости b можно теперь использовать для всех трех каналов цвета, если это необходимо.
2. Далее после выражения brightness.measurement() нужно добавить еще одну функцию, которая позволяет включать цветовой LED индикатор, используя переменную b для всех трех каналов:
color.rgb(b,b,b)
Запустите программу.
Примечание для учителя: В данном конкретном случае, чем светлее в комнате, тем ярче горит LED индикатор. Вам нужно сделать наоборот.
3. Обратите внимание на то, что LED индикатор горит ярче, если уровень света повышается. Нужно сделать наоборот! Чем темнее в комнате, тем ярче должен гореть индикатор. Измените переменную b (между выражениями brightness.measurement() и color.rgb()), чтобы LED индикатор горел ярче при низком уровне света, и тускло - при высоких значениях (Видите переменную b=??? на примере ниже?)
Постарайтесь сделать это самостоятельно перед тем, как перейти к следующему шагу.
Примечание для учителя: Линейные трансформации переменной в программировании - частое явление.
4. Вот какое выражение вам может понадобиться:
b=255 - b
Когда переменная b равна 0, выражение 255-b изменяет значение b на 255; когда переменная b равна 255, выражение 255-b изменяет значение b на 0.
Вы можете использовать выражение text_at() в программе, чтобы отображать исходное, а не измененное значение переменной b.
Можете ли вы изменить программу таким образом, чтобы индикатор загорался не только белым, но и другими цветами?
По окончании программы цветовой LED индикатор может оставаться включенным. Добавьте выражение в конце цикла (но не структурируйте его), чтобы выключить LED индикатор.
Примечание для учителя: У вас нет опыта в программировании? Тогда выражения в формате b=255-b могут показаться вам неверными, но они часто используются в программировании. Здесь сначала вычисляется выражение справа от знака равенства, а затем результат вычисления сохраняется в переменной слева от него. Значение b справа отличается от значения слева.
Еще один способ использовать разные цвета для индикатора - это применение только двух каналов цвета. Например, сочетание красного и зеленого даст желтый: color.rgb(b, b, 0). Или вы можете изменить значение между красным и зеленым, используя выражение color.rgb(b,255-b,0).