Бегущий пиксель
Часть раздела Дисплеи и датчики путешествия по Arduino на Coddy. Урок 15 из 24.
Свет, бегущий по кольцу, зажигает по одному пикселю за раз и на каждом шаге перемещается к следующему. Цикл for задаёт номер пикселя:
for (int i = 0; i < 16; i++) {
ring.clear(); // предыдущий пиксель гаснет
ring.setPixelColor(i, orange); // новый пиксель загорается
ring.show();
delay(100);
}Сначала выполняется clear(), поэтому предыдущий пиксель гаснет одновременно с зажиганием следующего в том же вызове show(). Без этого каждый пиксель останется гореть, и кольцо заполнится светом.
Цикл останавливается после пикселя 15, loop() запускается снова, а i начинает с 0: свет движется по кругу снова и снова.
Задание
ЛегкоСделай так, чтобы оранжевый свет перемещался по кольцу:
- зажигай по одному пикселю, от 0 до 15
- по 100 мс на каждый пиксель
- после 15 снова начинай с 0
Нажми Запустить, затем Проверить.
Попробуйте сами
#include <Adafruit_NeoPixel.h>
// 16 светодиодов, данные на выводе 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
uint32_t orange = ring.Color(255, 40, 0);
void setup() {
ring.begin();
}
void loop() {
// зажигать по одному светодиоду за раз, от 0 до 15, по 100 мс каждый
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Дисплеи и датчики
Потренируйтесь самостоятельно: Песочница Arduino