Яркость NeoPixel
Часть раздела Дисплеи и датчики путешествия по Arduino на Coddy. Урок 16 из 24.
NeoPixel очень яркие. ring.setBrightness(level) одновременно уменьшает яркость всех светодиодов: 0 — выключены, 255 — максимальная яркость.
Это работает за счёт масштабирования цветов, сохранённых в памяти платы. При яркости 64, то есть примерно на четверть, красный цвет со значением 255 сохраняется как 64. Но есть подвох: при масштабировании теряются детали. Уменьшите яркость до 0 — и каждый сохранённый цвет станет равен 0, поэтому при увеличении яркости больше нечего масштабировать, и кольцо останется тёмным.
Поэтому при каждом изменении яркости задавайте цвета заново после него:
ring.setBrightness(level);
ring.fill(white); // сохранено с новым уровнем яркости
ring.show();Цвета, заданные после setBrightness(), масштабируются при сохранении.
Задание
СреднеРегулятор на A0 управляет яркостью кольца:
- преобразуй показание в яркость от 0 до 255 с помощью
map() - установи её с помощью
ring.setBrightness() - затем заполни кольцо белым цветом и отобрази его при каждом проходе
loop()
Нажми Run и поверни регулятор, затем нажми Check.
Попробуйте сами
#include <Adafruit_NeoPixel.h>
// 16 светодиодов, данные на выводе 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
uint32_t white = ring.Color(255, 255, 255);
void setup() {
ring.begin();
}
void loop() {
int reading = analogRead(A0);
// установить яркость с помощью ручки, затем зажечь всё кольцо белым светом
delay(50);
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Дисплеи и датчики
3NeoPixels
Ваш первый NeoPixelЦвета на кольце пикселейЗаполнение и очистка кольцаБегущий пиксельЯркость NeoPixelРадужное кольцоПотренируйтесь самостоятельно: Песочница Arduino