Как установить библиотеку fastled
IMPORTANT NOTE: For AVR based systems, avr-gcc 4.8.x is supported and tested. This means Arduino 1.6.5 and later.
This is a library for easily & efficiently controlling a wide variety of LED chipsets, like the ones sold by adafruit (Neopixel, DotStar, LPD8806), Sparkfun (WS2801), and aliexpress. In addition to writing to the leds, this library also includes a number of functions for high-performing 8bit math for manipulating your RGB values, as well as low level classes for abstracting out access to pins and SPI hardware, while still keeping things as fast as possible. Tested with Arduino up to 1.6.5 from arduino.cc.
We have multiple goals with this library:
How quickly can you get up and running with the library? Here’s a simple blink program:
Supported LED chipsets
Here’s a list of all the LED chipsets are supported. More details on the led chipsets are included on our wiki page
HL1606, and «595»-style shift registers are no longer supported by the library. The older Version 1 of the library («FastSPI_LED») has support for these, but is missing many of the advanced features of current versions and is no longer being maintained.
Right now the library is supported on a variety of arduino compatable platforms. If it’s ARM or AVR and uses the arduino software (or a modified version of it to build) then it is likely supported. Note that we have a long list of upcoming platforms to support, so if you don’t see what you’re looking for here, ask, it may be on the roadmap (or may already be supported). N.B. at the moment we are only supporting the stock compilers that ship with the arduino software. Support for upgraded compilers, as well as using AVR studio and skipping the arduino entirely, should be coming in a near future release.
What types of platforms are we thinking about supporting in the future? Here’s a short list: ChipKit32, Maple, Beagleboard
What about that name?
Wait, what happend to FastSPI_LED and FastSPI_LED2? The library was initially named FastSPI_LED because it was focused on very fast and efficient SPI access. However, since then, the library has expanded to support a number of LED chipsets that don’t use SPI, as well as a number of math and utility functions for LED processing across the board. We decided that the name FastLED more accurately represents the totality of what the library provides, everything fast, for LEDs.
Установка библиотек
Библиотеки к набору
Менеджер библиотек
Большинство Ардуино-библиотек можно установить автоматически из встроенного в программу менеджера библиотек, для этого нужно знать название библиотеки. Открываем менеджер:
Нужную библиотеку можно найти в поиске по названию и нажать Установка, библиотека будет автоматически установлена в папку с библиотеками. Arduino IDE проверяет обновления библиотек при запуске и предложит обновиться, если найдёт обновления.
Скачивание с GitHub
Не все существующие библиотеки есть в менеджере библиотек и скачать их можно только с GitHub. Есть два способа: скачать весь репозиторий и скачать релиз. Весь репозиторий со всеми “лишними” служебными файлами можно скачать одним архивом вот так, нажав Code/Download ZIP
Если у библиотеки есть релизы – справа будет отмечен последний (свежий) релиз. Нажимаем на него:
И в новом окне нажимаем Source code (zip) – начнётся загрузка архива. Скачивание релиза более предпочтительно, так как содержит только файлы библиотеки.
Автоматическая установка
Ручная установка
Чтобы Arduino IDE смогла использовать библиотеку, нам нужно положить её туда, где программа будет её искать. Таких мест три (на примере Windows):
Рекомендуется держать все библиотеки в одном месте, чтобы не было путаницы. Лично я устанавливаю все библиотеки в папку с программой (в Program Files), но для этого могут потребоваться права администратора (зависит от версии и настроек Windows). Если у вас возникли с этим проблемы – устанавливайте в Документы/Arduino/libraries/.
Примеры к библиотекам
После установки библиотеки любым способом будут доступны примеры, посмотреть их можно прямо из программы: Файл/Примеры/Нужная библиотека
Также примеры находятся в папке с библиотекой по установленному пути в подпапке examples.
Arduino и адресная светодиодная лента
Описание
Адресная светодиодная лента, в отличие от обычной RGB, позволяет управлять цветом и яркостью каждого своего светодиода. Благодаря этому на ней можно отображать различные интересные эффекты, как статические, так и динамические. Сама по себе лента ничего не может, поэтому генерацией эффектов занимается микроконтроллер (или плата на его основе, например Arduino). Более подробно про виды адресных лент можно прочитать в моей статье.
В наборе GyverKIT есть 1 метр адресной светодиодной ленты WS2812b. При желании ленту можно докупить в том же магазине, где продаётся набор – Giant4.
Подключение
В рассмотренных выше схемах Arduino питается от USB. Для работы от адаптера можно подключить питание с него на пин 5V платы:
При наличии на ленте штекера можно подключать управление и питание следующим образом:
Примечание:
При работе с Wemos есть особенность: у него логический уровень 3.3V, чего не всегда хватает для передачи сигнала на ленту. При возникновении “артефактов” в эффектах можно подключить питание по следующей схеме: питать Wemos через диод (есть в наборе GyverKIT):
Библиотеки
Самой функциональной и известной библиотекой является FastLED, можно установить через диспетчер библиотек по названию FastLED. В библиотеке ОЧЕНЬ много возможностей, см. официальную вики-документацию, а также полный список модулей, классов и функций.
Как работать с FastLED
Коротко рассмотрим как работать с библиотекой FastLED и самые основные инструменты.
Логика работы с адресной лентой сводится к следующему: лента представляется в виде одномерного массива, каждый элемент – светодиод, точнее его цвет. Цвет светодиода кодируется тремя байтами, то есть 256 значений на каждый канал: красный, зелёный, синий. В программе можно производить различные манипуляции с этим массивом, то есть задавать цвета светодиодам при помощи различных инструментов библиотеки. Как только построение “кадра” закончено – массив можно отправить на ленту и светодиоды включатся соответственно заданным цветам.
Для начала обозначим константами длину ленты и пин, к которому она подключена, просто чтобы проще было редактировать программу в дальнейшем:
В блоке setup нам нужно передать в библиотеку информацию о подключенной ленте, а также подключить созданный выше массив. Чтобы программа знала, откуда брать информацию о цветах. По порядку указывается тип ленты, пин, порядок цветов. В круглых скобках – имя нашего массива, а также его размер – длину ленты:
Отлично! Всё настроено и готово к работе.
Общие функции
Помимо задания цветов в массиве, существуют следующие управляющие функции:
Тип данных CRGB
Библиотека организована так, что переменной типа CRGB можно задать значение несколькими способами. Рассмотрим задание цвета первому светодиоду в нашей ленте, то есть элемент массива под номером ноль: leds[0]
Подробнее про цветовые модели RGB и HSV можно почитать вот здесь.
Примеры
Итак, с базовыми понятиями разобрались, переходим к практике. Для начала зальём всю ленту статичной радугой. Для этого покрасим светодиоды в цикле, задав цвет от 0 до 255 от первого до последнего светодиода в ленте. Конструкция i * 255 / LED_NUM позволяет получить значения от 0 до 255 при изменении i от 0 до LED_NUM:
Можно сделать подвижную радугу, это будет уже полноценная анимация. Для этого ленту нужно постоянно обновлять новыми цветами, например 30 раз в секунду. Чтобы плавно менять цвет – добавим к нему счётчик, который будет меняться от 0 до 255 и так по кругу.
Можно сделать один бегающий светодиод: каждый раз очищать ленту и красить светодиод под номером, который задаётся счётчиком. Изменение счётчика закольцевать от 0 до количества светодиодов:
И таких эффектов можно придумать очень много! Займёмся этим уже в блоке проектов
Установка библиотек в Arduino IDE
Общие сведения:
Многие скетчи (программы) работают с библиотеками. Библиотека облегчает работу с определённым модулем или одним из типов модулей. Например, если Вы хотите вывести текст на LCD дисплей без подключения библиотеки, то Вам нужно передать ему несколько байт команд и данных, что займет несколько строк кода, а главное, что Вам нужно знать тип микроконтроллера под управлением которого работает LCD дисплей, назначение команд которыми он управляется, знать архитектуру его памяти, адреса и назначение регистров, для чего потребуется найти и перечитать его datasheet. В то время как при написании кода с использованием библиотеки (например LiquidCrystal_I2C.h) Вы сможете вывести текст на дисплей вызвав всего одну функцию библиотеки: lcd.print(«my text»);
Перед тем как начать пользоваться методами и функциями библиотеки, её нужно скачать (загрузить на Ваш компьютер), установить (разместить в нужной папке) и подключить (вставить текст «#include » в скетч).
Скачивание библиотеки:
Если в наших уроках, описаниях или примерах используется библиотека, то мы указываем ссылку на скачивание этой библиотеки. Все наши библиотеки находятся в zip архиве, но не спешите доставать файлы из архива, это может не понадобиться, т.к. Arduino IDE сама может распаковывать архивы и размещать библиотеки в нужных папках (см. дальше).
Если Вы скачали архив библиотеки с сайта не указывая путь для сохранения файла, то скаченный (загруженный) Вами файл скорее всего находится в папке: Этот компьютер > Загрузки.
Установка библиотеки:
После того как Вы скачали (загрузили) библиотеку на свой компьютер, её нужно установить. Установить библиотеку можно вручную или сделать это средствами Arduino IDE:
Установка библиотеки средствами Arduino IDE:
В появившемся окне нажмите на иконку «Этот компьютер» и выберите папку «Загрузки». Если при скачивании ZIP архива с сайта, Вы указывали путь для сохранения файла, то вместо папки «Загрузки» укажите путь к файлу.
Выберите ZIP файл библиотеки, который Вы скачали. Название файла может не соответствовать названию библиотеки. После чего нажмите на кнопку «Открыть» (Open).
На этом установка библиотеки завершена, можно приступить к её подключению в скетч.
Установка библиотеки вручную:
Распакуйте скаченный Вами ZIP архив и поместите папку (имя папки обычно совпадает с названием библиотеки) из данного архива в папку: Этот компьютер > Документы > Arduino > libraries.
Если во время копирования Arduino IDE была запущена (открыта), то нужно закрыть все окна этой программы, после чего запустить (открыть) Arduino IDE и можно приступать к подключению библиотеки в скетч.
Подключение библиотеки:
Для того чтобы подключить библиотеку, нужно написать всего одну строку в начале скетча: «#include «, например:
Некоторые библиотеки работают используя методы и функции других библиотек, тогда нужно подключать две библиотеки, сначала подключается та, методы и функции которой использует вторая, например:
Для работы с большинством библиотек, нужно создать объект (экземпляр класса библиотеки), через который будут доступны их функции и методы, например:
Вместо lcd можно написать любое слово или сочетание букв и цифр, это название объекта через который можно обращаться к методам и функциям библиотеки. Если Вместо lcd Вы написали myLCD, то и ко всем методам и функциям библиотеки LiquidCrystal_I2C, нужно обращаться через указанное Вами имя объекта, например: myLCD.print(«my text»);
Примеры из библиотек:
Большинство библиотек содержат примеры. Это небольшие скетчи (программы) которые раскрывают функционал библиотеки. Наиболее удобный способ просмотра примеров, с помощью средств Arduino IDE. Выберите пункт меню: Файл > Примеры, откроется список с названиями библиотек у которых есть примеры. Наведите курсор на название библиотеки и Вы увидите список примеров содержащихся в ней, клик на примере приведёт к появлению нового окна Arduino IDE со скетчем примера.
Альтернативный способ просмотра примеров заключается в запуске файлов скетчей из папки:
путь > libraries > название библиотеки > examples > название примера.
Поиск библиотек:
Библиотеки можно искать самостоятельно, а можно воспользоваться функционалом Arduino IDE.
Выберите пункт меню: Скетч > Подключить библиотеку > Управлять библиотеками. .
Откроется «Менеджер библиотек», в котором можно найти интересующую Вас библиотеку введя её название в строку поиска, дополнительно можно установить пункты «Тип» и «Тема».
Нажатие на описании библиотеки приведёт к появлению вкладки «Версия» и кнопки «Установка». После нажатия на кнопку «Установка» можно приступать к подключению библиотеки в скетч «#include «.
Светодиодная матрица. Урок 17. Ардуино
Привет! Что может быть лучше rgb светодиода? Конечно 256 светодиодов вместе. Да еще и адресуемых. Это значит, что мы сможем зажечь любой из 256 светодиодов из программы на Ардуино. Сегодня в обзоре светодиодная матрица WS2812B (SK6812).
В предыдущей статье мы говорили о гироскопе GY-521. Это тоже очень интересный модуль для Ардуино. Посмотрите тот обзор, если пропустили или уже забыли.
Для того, чтобы выполнить этот урок нам понадобиться
Светодиодная матрица
Я использовал матрицу 16 на 16 светодиодов на черной подложке. Ссылка на Алиэкспресс будет внизу. Матрица хорошо гнется. Работает от 5 вольт и бывает во многих формфакторах. 8 на 8, 16 на 16 и 8 на 32 светодиодов.

Характеристики
Подключение
Матрица работает от 5 вольт. А значит мы сможем подключить ее напрямую к Ардуино. Однако, для реальных проектов рекомендую сделать для нее отдельное питание от аккумулятора или блока питания. В соответствии с характеристиками производителя при ярком белом свете, матрица потребляет 76,8 Вт. А ток может быть от 12 до 18 А, в соответствии с таблицей производителя.
Кроме того, сигнальный контакт DIN подключим через резистор, чтобы оградить контакт Ардуино от перепадов напряжения.

+5V — питание 5 вольт на плате, GND — земля, DIN — пин для данных на плате Ардуино 
Библиотека FastLed
В начале скетча есть раздел с настройками матрицы. Нам нужно изменить несколько параметров. Поставим количество светодиодов равное 256, а яркость уменьшим, чтобы потреблять меньше тока, на 8.
Контакт DIN подключен к 3 контакту Ардуино.
Остальную программу изменять не будем, загрузим скетч в Ардуино и посмотрим на результат.

Теперь попробуем использовать код из примера и напишем свой небольшой скетч.
Объявим настройки матрицы и инициализируем их.
А цикле loop() возьмем каждый отдельный светодиод и будем зажигать и гасить его в цикле. Таким образом мы сможем обратиться к каждому конкретному светодиоду.

Полный текст программы
Возможные проблемы
При подключении питания матрицы к Ардуино. Контроллер может сильно нагреться в процессе использования. Особенно, если включить все светодиоды на большой яркости. В этом случае, пожалуйста, используйте отдельное питание.
Заключение
Мы рассмотрели светодиодную матрицу 16х16 светодиодов. Подключили ее к Ардуино и научились обращаться к каждому светодиоду. Это сильно поможет нам в будущих проектах.
























