Светодиодная гирлянда

В данном уроке вы научитесь более эффективно работать с массивами, подключать внешние устройства, для работы с которыми требуются библиотеки.
а. Соберите электрическую схему.

b. Создайте программу, реализующую эффект «бегущего огня» на 10 светодиодах.


Используйте структуру for. Общий вид структуры:
for(инициализация ; условие ; приращение)
На практике: for(int i; i <= 10; i++)

Инициализация выполняется один раз в начале цикла. Как правило, в блоке инициализации создается переменная, называемая счётчиком цикла.
Далее идёт блок условия. Пока условие истинно, цикл продолжает выполняться.

Последний и ключевой блок - блок приращения. Каждый шаг цикла выполняется блок приращения. Как правило в этом блоке переменная-счетчик увеличивается на какое-либо значение.

с. Сравните программу, написанную с использованием структуры for и программу, написанную в уроке №1.

d. Соберите электрическую схему, представленную на риcунке ниже
e. Рассмотрите код программы из файла getColor.txt
Концепция разработки устройств на базе платформы Arduino подразумевает использование различных модулей (физических устройств) и «библиотек» - наборов команд, используемых для работы с этими модулями. Как правило, каждая библиотека имеет примеры работы с ней, находящиеся в папке Examples.

#include - команда для подключения библиотеки - название библиотеки. Обратите внимание на угловые скобки.

#define PIN 2- команда для объявления константы с именем PIN и значением 2. Константы отличаются от переменных тем, что не изменяют свои значения в процессе работы программы.

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_ KHZ800); - специальная команда для работы с адресной светодиодной лентой (в нашем примере используется лишь 1 пиксель этой ленты).
Команда сообщает контроллеру что мы будем использовать ленту с количеством светодиодов равным значению константы NUMPIXELS, подключенной к пину PIN, тип ленты NEO_ GRB + NEO_KHZ800 - последние параметры говорят какого типа лента используется (RGB или GRB, какая рабочая частота ленты и т.д.). Вы можете узнать эти параметры у продавца ленты, которую вы используете, либо в сети интернет.

Совет: Если данных найти не удалось, попробуйте наши параметры. В худшем случае, лента будет давать неправильные цвета.

pixels.begin() - команда, сообщающая контроллеру о начале работы с адресной светодиодной лентой.
Функционал аналогичен команде Serial.begin()

getColor() - процедура для работы с потенциометрами. Она считывает значения с трех аналоговых портов и отправляет данные на компьютер. Каждый оттенок состоит из комбинации трёх основных цветов - красного (Red), зеленого (Green) и синего(Blue). Комбинируя различные пропорции этих цветов, вы можете получать различные оттенки.

Такая схема удобна при работе с лентой, так как каждый отделдьный «пиксель» ленты имеет внутри себя 3 маленьких светодиода основных цветов. Кроме того, каждый пикскель снабжен управляющей микросхемой (ws2811 или ws2812), которая имеет свой адрес (номер пикселя) и может отправлять ШИМ-сигнал, управляя яркостью каждого из трех маленьких светодиодов, что позволяет получать различные цвета.
pixels.setPixelColor(0, pixels.Color(redColor, greenColor, blueColor)) - команда, назначающая конкретному пикселю цвет. 0 - номер пикселя (нумерация начинается с 0 так же, как и в массивах), pixels.Color(красный, зеленый, синий) - команда, формирующая из трёх основных цветов какой-либо оттенок.

pixels.show(); - команда, обновляющая состояние светодиодной ленты, отправляя сигнал, который обновит все вновь назначенные пикселям цвета.

f. Экспериментируйте с потенциометрами, и найдите 3-4 любимых отенка. Запомните значения R, G и B составляющие эти оттенки, они понадобятся в следующем задании.

g. Соберите электрическую схему, представленную на рисунке
h. Заимствуем часть кода из предыдущего шага и добавляем переменную delayval для создания задержки между переключениями. Задержка обеспечит плавность эффекта заполнения ленты цветом. Обратите внимание на значение константы NUMPIXELS, мы указываем столько пикселей, сколько используем в ленте.

Создаем массивы с цветовыми составляющими для оттенков, выбранных в прошлом задании. Все элементы массивов с индексом 0 составляют первый оттенок, с индексом 1 - второй и т.д. Вы можете добавить больше 3-х цветов.

i. Далее создаём следующую структуру: в первом цикле (с переменной-счетчиком j) мы перебираем цвета и запоминаем их в переменные redColor, greenColor,blueColor, а затем в следующем цикле попиксельно заполняем ленту выбранными цветами.


j. Экспериментируйте с анимационными эффектами, попробуйте добиться плавного изменения оттенков, увеличения и уменьшения яркости всей ленты, придумайте свои эффекты.
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website