В прошлой статье были упомянуты библиотеки, доступные сразу, "из коробки". Об одной из встроенных библиотек мы сегодня и поговорим. Это библиотека для работы с адресными RGB-светодиодами - neopixel.
Для начала напишем простую программу, которая по очереди окрасит светодиоды в красный, зелёный и синий цвета.
import machine, neopixel
import time
np = neopixel.NeoPixel(machine.Pin(2), 8)
def color(delay = 1):
for color in [(100,0,0),(0,100,0),(0,0,100)]:
for index in range(8):
np[index] = color
np.write()
time.sleep(delay)
Для начала необходимо импортировать библиотеки: machine
- для работы с пинами, neopixel
- непосредственно для работы со светодиодами и библиотеку time
- она понадобится для создания задержки.
Затем необходимо инициализировать нашу светодиодную ленту. Основным достоинством адресных светодиодов является то, что для управления необходим всего один пин. В функцию необходимо передать два параметра: пин, к которому подключен управляющий канал и количество светодиодов на плате. В моём примере плата из 8 светодиодов подключена ко второму пину.
Для установки цвета светодиода используется кортеж из трёх чисел, каждое из которых отвечает за канал определённого цвета: R,G,B.
Используя команду [index] = color
мы указываем необходимый цвета, для светодиода с номером index
, а команда np.write() - отображает цвета.
Теперь усложним задачу, если в первом примере светодиоды зажигались по очереди, то теперь попробуем сделать симуляцию вращения.
import machine, neopixel
import time
np = neopixel.NeoPixel(machine.Pin(2), 8)
def tic(first_index = 0):
color = [(100,0,0),(0,100,0),(0,0,100),(100,100,100)]
i = 0
for index in range(first_index,8+first_index,2):
np[index%8] = color[i]
np[(1+index)%8] = color[i]
i+=1
np.write()
i = 0
while True:
tic(i)
i = (i+1)%8
time.sleep(0.2)
Функция tic(first_index = 0)
раскрашивает каждую пару светодиодов начиная с заданного в разные цвета. Передвигая цвета по одному - то есть сдвигая на один элемент - можно добиться "симуляции" вращения.
C помощью светодиодных колец, таких как это, можно отображать различные данные. Например, в интернете очень популярны часы, сделанные с использованием адресных светодиодов, а скоро вы узнаете, как узнать время просто подключившись к интернету.
Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.
Комментарии