8 (800) 200 36 72
8 (800) 200 36 72 По России - бесплатно
Заказать звонок

г. Ярославль, ул. Максимова 4Б, оф. 1

Сравнение0 Отложенные 0 Корзина0 0
Войти
Giant4
Светодиодная лента оптом
Каталог
  • Адресная лента
    Адресная лента
  • Блоки питания
    Блоки питания
  • Комплекты
    Комплекты
  • Контроллеры
    Контроллеры
  • Светодиодная лента
    Светодиодная лента
  • Светильники
    Светильники
  • Профиль
    Профиль
  • Неон
    Неон
  • На новый год
    На новый год
  • Коннекторы и комплектующие
    Коннекторы и комплектующие
  • Экраны сетки
    Экраны сетки
  • Солнечные батареи
    Солнечные батареи
  • Сценическое оборудование
    Сценическое оборудование
Доставка и оплата
  • Условия оплаты
  • Условия доставки
  • Гарантия на товар
О компании
  • Контакты
  • Отзывы
  • Новости
  • Статьи
  • Вакансии
Акции
Купить оптом
Ещё
    Giant4
    Сравнение0 Отложенные 0 Корзина0 0
    Телефоны
    8 (800) 200 36 72 По России - бесплатно
    Заказать звонок
    • Личный кабинет
    • Главная
    • Каталог
      • Назад
      • Каталог
      • Адресная лента
      • Блоки питания
        • Назад
        • Блоки питания
        • Узкие блоки питания
        • Адаптеры питания
        • Герметичные блоки питания
        • Блоки питания 5V
      • Комплекты
      • Контроллеры
        • Назад
        • Контроллеры
        • Для адресной ленты
        • Для RGB ленты
        • Для одноцветной ленты
        • Программируемые платы
      • Светодиодная лента
        • Назад
        • Светодиодная лента
        • Разноцветная RGB лента
        • Яркая лента для основного освещения
        • Не яркая лента для фоновой подсветки
      • Светильники
        • Назад
        • Светильники
        • Потолочные светильники
        • Декоративные лампы и светильники
        • Умные трековые светильники Tuya
      • Профиль
      • Неон
      • На новый год
      • Коннекторы и комплектующие
        • Назад
        • Коннекторы и комплектующие
        • Коннекторы для светодиодной ленты и неона
        • Материалы для пайки
        • Отвертки и прочий инструмент
        • Запчасти для сборки Gyverlamp
      • Экраны сетки
      • Солнечные батареи
      • Сценическое оборудование
    • Доставка и оплата
      • Назад
      • Доставка и оплата
      • Условия оплаты
      • Условия доставки
      • Гарантия на товар
    • О компании
      • Назад
      • О компании
      • Контакты
      • Отзывы
      • Новости
      • Статьи
      • Вакансии
    • Акции
    • Купить оптом
    • Корзина0
    • Отложенные0
    • Сравнение товаров0
    • 8 (800) 200 36 72
    Контактная информация

    г. Ярославль, ул. Максимова 4Б, оф. 1

    admin@giant4.ru
    • Вконтакте
    • Telegram
    • YouTube
    Бесплатная доставка на заказы от 1500 Рублей

    Инструкция по подключению Arduino к адресной светодиодной ленте

    Главная
    -
    Статьи
    -Инструкция по подключению Arduino к адресной светодиодной ленте
    Поделиться

    Инструкция по подключению Arduino к адресной светодиодной ленте
    Как подключить адресную ленту к Ардуино?

    На сегодня это наша третья статья. В прошлых статьях мы уже разобрали, что из себя представляет адресная лента и примерно поняли, как она устроена. А также поговорили о плате Arduino Nano, посредством которой мы буем управлять лентой, установили необходимое программное обеспечение и даже написали свою первую программу. Теперь же пришло время подключить все вместе и сделать простую световую анимацию.

    Для начала необходимо разобраться с потреблением светодиодной ленты. Дело в том, что каждый светодиод в пикселе потребляет до 20 мА, в зависимости от яркости его свечения. Напомню, что яркость свечения задаем мы сами из программы. Итого получается, что каждый пиксель может потреблять до 60 мА. Это довольно много, если учитывать, что мы можем использовать несколько метров ленты. Но в рамках данной статьи я буду экспериментировать с отрезком на 5 пикселей. И по этой причине запитаю адресную ленту прямо от Arduino Nano. Хотя я бы сам не рекомендовал так делать, лучше всего ставить отдельный блок питания и подключить ленту к нему, а с МК реализовать только управление.

    Как мы помним из прошлых статей, управление будет осуществлено любым из цифровых выходов с D2 по D13. В данном случае я решил использовать D5 (просто для примера, Вы можете использовать любой). Итак, подключаем ленту к Arduino Nano. GND к GND, +5V к +5V и D-input к D5 на плате Nano. Я не стал ничего придумывать и просто припаял. Визуально выглядит адресная лента подключенная к Ардуино:

    3_01.JPG

    А вот схема подключения адресной ленты к Arduino:

    3_01_02.png

    Тут главное помнить, что адресная светодиодная лента имеет направление и важно не перепутать к какому концу ленты подключать плату Arduino. Но об этом я уже говорил в прошлых статьях и больше заострять на этом внимание не будем.

    Следующим действием предлагаю подключить плату Адруино к компьютеру и уже заняться написанием нашей первой программы под адресную светодиодную ленту.

    3_02.JPG

    Пишем программу для управления адресной светодиодной лентой через Arduino. Установка библиотеки

    Первый раз – это всегда очень волнительно. В первый раз можно наделать кучу ошибок, причем в последствии понимаешь, что данные ошибки и нарочно придумать сложно, не то, чтобы их случайно допустить, и это касается не только программирования. Но для того я и пишу данную статью, чтобы максимально облегчить путь от идеи до результата. Сейчас я достаточно подробно опишу все, что буду делать. Это поможет сформировать в голове новичка четкое представление о подключении Arduino.

    Для начала давайте откроем IDE Arduino. Это программа, которую мы установили в одной из прошлых статей.

    3_03.PNG

    Получилось? Отлично! Далее нам необходимо установить библиотеку. Это нужно, чтобы управлять адресной лентой. Дело в том, что лента принимает определенный набор команд, но нам, как молодым разработчикам, пока не интересно, что это за команды и как они устроены. Мы просто хотим управлять цветами. И библиотека управления адресной лентой поможет нам сделать это максимально просто и быстро. Мы будем сообщать программе, где какой цвет хотим видеть, а программа, с помощью библиотеки, будет формировать наборы команд, понятные для микросхем адресной ленты. На самом деле все достаточно просто и очевидно, нужно только привыкнуть. Поэтому нажимаем «Скетч» -> «Подключить библиотеку» -> «Управлять библиотеками».

    3_04.png

    После этого появится окно «Менеджер библиотек». Кстати, данному окну нужно немного времени чтобы прогрузиться, поэтому пару секунд оно будет не активным, нужно подождать.

    3_05.PNG

    На данный момент мы будем использовать библиотеку «Adafruit NeoPixel». Проще всего будет воспользоваться поиском. Как видно, в списке есть похожие название, нужно быть внимательным и не перепутать.

    3_06.png

    Следующим шагом нам необходимо установить библиотеку, для этого есть соответствующая кнопка. Нажимаем и ждем. После того, как установка будет завершена, кнопка «Установить» пропадет, зато появится выпадающий список, позволяющий выбрать версию. Пока что ничего менять не будем и просто закроем окно.

    3_07.png

    Пишем программу для управления лентой через Ардуино

    И теперь мы приступаем к следующему этапу - написанию программы. Начнем с чего-то простого и потом будем постепенно совершенствовать. Наша первая программа будет выглядеть следующим образом:

    3_08.PNG

    #include "Adafruit_NeoPixel.h"

    #define LED_COUNT 5

    #define LED_PIN 5

     

    Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

     

    void setup() {

      strip.begin(); //Инициализируем ленту.

    }

     

    void loop() {

      for (int i = 0; i < LED_COUNT; i++)

      {

        strip.setPixelColor(i, strip.Color(255, 0, 0)); // Красный цвет.

        strip.show();

        delay(300);

      }

      for (int i = 0; i < LED_COUNT; i++)

      {

        strip.setPixelColor(i, strip.Color(0, 0, 0)); // null

      }

      strip.show();

      delay(300);

    }

    На первый взгляд это может показаться немного не понятным. Сейчас мы пройдемся по коду и используемые нами команды приобретут смысл.

    Начнем с первой строчки. Тут мы объявляем библиотеку. Дело в том, что перед этим мы только ее скачали, а чтобы использовать в программе, необходимо ее объявить. Для этого используется директива #include<>. Где в скобках указано имя файла, который будет использоваться при компиляции, как часть кода. В нашем случае это название библиотеки. Кстати да, библиотека – это файл с программой.

    Вторая и третья строчки, - тут мы задаем кол-во пикселей в нашей ленте и номер вывода, с которого будет организовано управление. 

    Обратите внимание: речь идет именно о количестве пикселей, то есть чипов в ленте, а не о количестве светодиодов. В некоторых адресных лентах, например с чипом ws2811 и ws2818 управление происходит кратно 3 диодам, поэтому лента с 60 диодами на метр будет управляться всего 20 пикселями. Если у вас адресная лента ws2812b, ws2813 или ws2815, то управление происходит кратно одному диоду, то есть количество пикселей = количество светодиодов.

    Идем далее. Директива #define определяет идентификатор и последовательность символов, которой будет замещаться данный идентификатор при его обнаружении в коде. Давайте разберем вторую строку более подробно «#define LED_COUNT 5». «LED_COUNT» — это идентификатор, которому соответствует символ «5». Это позволит нам в теле программы (везде, где нужно) написать «5», писать «LED_COUNT». Возможно, это звучит немного непотяно, но подумайте вот о чем: нам пришло в голову изменить кол-во пикселей в ленте и тогда нам придется во всем коде менять их кол-во. Но благодаря #define, мы имеем возможность поменять всего лишь последовательность символов в идентификаторе. Понятное дело, в нашей программе возможно заменить все значения, потому что тут всего 2-а десятка строк. Но бывают и очень большие программы, где действия по замене потребуют огромного количества времени и терпения.

    В пятой строке мы объявляем экземпляр класса Adafruit_NeoPixel и передаем его конструктору значения о длине ленты, выводе управления и типу адресной ленты. В данной статье мы не будем разбирать само понятие классов, поэтому предлагаю просто принять данную строчку как должное, где в скобках мы передаем необходимые параметры. Скажу только одно: тут мы создали объект под именем «strip». И этот объект полностью отвечает за работу подключенной ленты.

    В теле функции setup() мы сообщаем компилятору, что данный объект «strip» у нас будет использован. По сути, эту команду инициализации пока тоже нужно принять как необходимый минимум.

    А дальше у нас уже идет самое интересное - основная часть программы, в которой и происходит волшебство, она находится в теле функции loop(). Но перед этим необходимо ввести новое понятие – цикл.

    Цикл — это определенный блок программы, выполняющийся по кругу. Даже сама функция loop() является циклом. Циклы бывают конечными и бесконечными и у циклов так же, как и у функций, есть тело, где написаны повторяющиеся команды. В данной программе мы использовали цикл – for. Если данный цикл описан правильно, то он, как правило, конечен. Цикл for имеет 3 параметра «for(int i = 0; i < LED_COUNT; i++){ }». Первый параметр задает начальное значение для переменной i. Кстати, в данном случае переменная i инициализируется при начале работы цикла и забывается при окончании работы цикла. Второй параметр – это условие, при котором цикл продолжает выполняться. В нашем случае цикл выполняется до тех пор, пока i меньше 5. И третий параметр прибавляет единицу к i, при каждом повторе цикла. Сейчас ограничимся этим коротким объяснением. В дальнейшем у меня выйдет короткая статья, посвящённая программированию.  

     Итак, вернемся к программе. С 13-ой по 17-ую строку у нас расположен цикл, цикл на 5 повторений, где i меняется от 0 до 4 включительно.

    В 14-ой строке мы вызываем метод setPixel, объекта strip и передаем ему два параметра. Где i это номер пикселя на адресной ленте, а «strip.Color(255, 0, 0)» его цвет. Про то, как задается цвет по системе RGB мы уже говорили ранее. Скажу только очевидную вещь, «255, 0, 0» - это максимально красный цвет.

    Получается, когда мы объявили объект strip и передали ему, что в нашей адресной ленте будет 5 пикселей, то в памяти было зарезервировано 5 ячеек, предназначенные для хранения цвета. И теперь в данном цикле мы их заполняем. 

    В 15-ой строке расположена команда, которая выводит на ленту цвета из памяти в МК (микроконтроллер). То есть последовательность такая: сначала пишем цвета в память, потом разом выводим их на адресную ленту. Изначально пока мы еще не успели заполнить память, там хранятся нулевые цвета «0, 0, 0».

    И в 16-ой строке у нас стоит задержка в 300 млс.

    Получается, изначально мы имеем 5 ячеек памяти, где записаны только нулевые цвета. Потом в цикле поочередно в каждую из ячеек пишется красный цвет, выводится на ленту и происходит небольшая задержка.

    Теперь давайте разберем строки кода с 18-й по 23-ю. Тут происходит практически то же самое. В таком же цикле, мы обнуляем цвета, только это происходит без какой-либо задержки. И данные поступают на адресную ленту уже после выполнения всего цикла, то есть обнуления всех цветов. И уже после этого мы используем задержку.

    На мой взгляд все достаточно просто. Светодиоды поочередно загораются красным, а затем гаснут и все это происходит по кругу. Результат выполнения программы вы можете увидеть ниже.


    Заключение

    В данной статье мы написали свою первую программу для управления адресной лентой. Теперь Вы сами можете повторить это. Также Вы можете использовать не только красный цвет, но и самостоятельно поэкспериментировать с палитрой и более сложными цветами. А уже в следующих статьях мы постепенно усложним задачу.



    Товары
      • Плата Arduino NANO V 3.0 Atmega328P
        Быстрый просмотр
        Плата Arduino NANO V 3.0 Atmega328P
        700 руб./шт
        Подробнее

      Поделиться

      Назад к списку
      • Комментарии
      Загрузка комментариев...
      Категории
      • Календарь Хакатонов и Роботонов16
      • Проекты победителей конкурса Arduino 20227
      • Советы покупателям11
      • Инструкции по Arduino от канала Рукопоп8
      • Обзоры товаров11
      Это интересно
      • Инструкция по программированию Arduino
        Инструкция по программированию Arduino
        5 сентября 2020
      • Инструкция по Wemos D1 mini: управление с мобильного телефона
        Инструкция по Wemos D1 mini: управление с мобильного телефона
      • Инструкция по Wemos D1 mini: вроде бы все тоже самое
        Инструкция по Wemos D1 mini: вроде бы все тоже самое
      • Инструкция по Arduino: Финальная программа
        Инструкция по Arduino: Финальная программа
      • Инструкция по Arduino: продолжаем разбираться
        Инструкция по Arduino: продолжаем разбираться
      Компания
      Каталог
      О компании
      Новости
      Вакансии
      Информация
      Купить оптом
      Условия оплаты
      Условия доставки
      Гарантия на товар
      Помощь
      Помощь
      Статьи
      Вопрос-ответ

      Оставайтесь на связи
      • Вконтакте
      • Telegram
      • YouTube
      Наши контакты
      8 (800) 200 36 72
      8 (800) 200 36 72 По России - бесплатно
      admin@giant4.ru

      г. Ярославль, ул. Максимова 4Б, оф. 1

      Giant4 - светодиодная лента оптом. Copyright 2016-2026© Все права защищены. При копировании материалов активная, индексируемая ссылка на сайт www.giant4.ru обязательна. Информация на данном интернет-сайте носит исключительно ознакомительный характер и ни при каких условиях не является публичной офертой, определяемой положениями статьи 437 Гражданского кодекса Российской Федерации. Внешний вид товара может отличаться от изображения, представленного на сайте. Для получения наиболее актуальных изображений товара, а также - информации о характеристиках товаров, их наличии и стоимости связывайтесь с менеджерами компании. Заполнение любых форм на нашем сайте означает ваше согласие с нашей политикой конфиденциальности.