- Adafruit 5X8 NeoPixel Shield для Arduino
- Розуміння процесу спілкування між додатком Blynk та Arduino
- Потрібні компоненти
- Adafruit RGB LED Shield та Arduino - апаратне підключення
- Налаштування програми Blynk
- Arduino Code Controlling Adafruit WS2812B RGB LED Shield
- Завантаження коду на Arduino Board
Протягом кількох років світлодіоди RGB стають популярними з кожним днем завдяки своїм прекрасним кольорам, яскравості та привабливим світловим ефектам. Ось чому Він використовується в багатьох місцях як декоративний предмет, прикладом може бути будинок або офісне приміщення. Крім того, ми можемо використовувати підсвічування RGB на кухні, а також на ігровій консолі. Вони також чудово підходять для дитячої ігрової кімнати або спалень з точки зору освітлення настрою. Раніше ми використовували світлодіоди WS2812B NeoPixel та мікроконтролер ARM для створення візуалізатора музичного спектру, тому перевірте це, якщо це вам цікаво.
Ось чому в цьому проекті ми збираємось використовувати світлодіодний матричний екран RGB на базі Neopixel, Arduino та Blynk, щоб створити безліч захоплюючих анімаційних ефектів та кольорів, якими ми зможемо керувати за допомогою програми Blynk. Тож давайте почнемо !!!
Adafruit 5X8 NeoPixel Shield для Arduino
Сумісний з Arduino NeoPixel Shield містить сорок індивідуально адресуваних RGB-світлодіодів, кожен з яких має вбудований драйвер WS2812b, який розміщений у матриці 5 × 8 для формування цього NeoPixel Shield. Кілька щитів NeoPixel також можна підключити, щоб сформувати більший щит, якщо це є вимогою. Для управління світлодіодами RGB потрібен один штифт Arduino, тому в цьому посібнику ми вирішили використовувати для цього штифт 6 Arduino.
У нашому випадку світлодіоди живляться від вбудованого 5-контактного виводу Arduino, чого достатньо для живлення приблизно “третини світлодіодів” при повній яскравості. Якщо вам потрібно живити більше світлодіодів, ви можете вирізати вбудований трас і використовувати зовнішнє джерело живлення 5 В для живлення екрану за допомогою зовнішнього терміналу 5 В.
Розуміння процесу спілкування між додатком Blynk та Arduino
Матриця 8 * 5 RGB LED, яка використовується тут, має сорок індивідуально адресуваних RGB світлодіодів на основі драйвера WS2812B. Він має 24-бітове управління кольором і 16,8 мільйона кольорів на піксель. Цим можна керувати за методологією “Одножильний контроль”. Це означає, що ми можемо контролювати весь світлодіодний піксель за допомогою одного керуючого штифта. Під час роботи зі світлодіодами я пройшов технічний опис цих світлодіодів, де дійшов діапазону робочої напруги екрана від 4 В до 6 В, а споживання струму становить 50 мА на світлодіод при 5 В із червоним, зеленим, і синій при повній яскравості. Він має захист від зворотної напруги на зовнішніх контактах живлення та кнопку скидання на екрані для скидання Arduino. Він також має зовнішній вхідний штифт для світлодіодів, якщо достатня кількість живлення відсутня через внутрішню схему.
Як показано на схематичній схемі вище, нам потрібно завантажити та встановити програму Blynkна нашому смартфоні, де можна контролювати такі параметри, як колір, яскравість. Після налаштування параметрів, якщо в додатку трапляються будь-які зміни, це хмара Blynk, де наш ПК також підключений і готовий отримувати оновлені дані. Arduino Uno підключений до нашого ПК через USB-кабель із відкритим комунікаційним портом, завдяки цьому комунікаційному порту (COM-порт) можна обмінюватися даними між хмарою Blynk та Arduino UNO. ПК запитує дані у хмари Blynk через постійні інтервали часу, і коли отримує оновлені дані, він передає їх Arduino і приймає рішення, визначені користувачем, такі як контроль яскравості та кольорів RGB. Світлодіодний екран RGB розміщений на світлодіоді Arduino і підключений через єдиний контакт для передачі даних для зв'язку, за замовчуванням він підключений через контакт D6 Arduino.Серійні дані, надіслані від Arduino UNO, надсилаються на Neopixel shied, який потім відображається на світлодіодній матриці.
Потрібні компоненти
- Arduino UNO
- 8 * 5 RGB світлодіодний матричний екран
- Кабель USB A / B для Arduino UNO
- Ноутбук / ПК
Adafruit RGB LED Shield та Arduino - апаратне підключення
Світлодіоди WS2812B Neopixel мають три висновки, один призначений для передачі даних, а два інших використовується для живлення, але цей специфічний екран Arduino робить апаратне підключення дуже простим, нам залишається лише розмістити світлодіодну матрицю Neopixel на вершині Arduino UNO. У нашому випадку світлодіод живиться від типової залізниці Arduino 5V Rail. Після розміщення Neopixel Shield налаштування виглядає так:
Налаштування програми Blynk
Blynk - це програма, яка може працювати на пристроях Android та IOS для управління будь-якими пристроями та пристроями IoT за допомогою наших смартфонів. Перш за все, потрібно створити графічний інтерфейс користувача (GUI) для управління світлодіодною матрицею RGB. Програма надішле всі вибрані параметри з графічного інтерфейсу до хмари Blynk. У розділі приймача Arduino підключений до ПК за допомогою послідовного кабелю зв'язку. Отже, ПК запитує дані з хмари Blynk, і ці дані надсилаються в Arduino для необхідної обробки. Отже, давайте почнемо з налаштування програми Blynk.
Перед налаштуванням завантажте програму Blynk із магазину Google Play (користувачі IOS можуть завантажити з App Store). Після встановлення зареєструйтесь, використовуючи ідентифікатор електронної пошти та пароль.
Створення нового проекту:
Після успішної установки відкрийте програму, і там ми отримаємо екран з опцією « Новий проект ». Клацніть на нього, і з’явиться новий екран, де нам потрібно встановити такі параметри, як назва проекту, дошка та тип підключення. У нашому проекті виберіть пристрій як « Arduino UNO », а тип підключення як « USB » та натисніть « Створити».
Після успішного створення Проекту ми отримаємо Аутентифікаційний Ідентифікатор на нашу рекомендовану пошту. Збережіть ідентифікаційний код для подальшого використання.
Створення графічного інтерфейсу користувача (GUI):
Відкрийте проект в Blynk, натисніть на знак «+», де ми отримаємо віджети, які ми можемо використовувати в нашому проекті. У нашому випадку нам потрібен підбір кольору RGB, який вказаний як “zeRGBa”, як показано нижче.
Налаштування віджетів:
Перетягнувши віджети до нашого проекту, тепер ми повинні встановити його параметри, які використовуються для надсилання значень кольорового RGB до Arduino UNO.
Клацніть на ZeRGBa, тоді ми отримаємо екран з назвою ZeRGBa. Потім встановіть для параметра Output значення « Merge » та встановіть для штифта «V2», що показано на малюнку нижче.
Arduino Code Controlling Adafruit WS2812B RGB LED Shield
Після завершення апаратного підключення код потрібно завантажити в Arduino. Покрокове пояснення коду показано нижче.
По-перше, включіть усі необхідні бібліотеки. Відкрийте Arduino IDE, а потім перейдіть на вкладку Ескіз та натисніть опцію Включити бібліотеку-> Керувати бібліотеками . Потім знайдіть Blynk у вікні пошуку, а потім завантажте та встановіть пакет Blynk для Arduino UNO.
Тут бібліотека “ Adafruit_NeoPixel.h ” використовується для управління світлодіодною матрицею RGB. Щоб включити його, Ви можете завантажити бібліотеку Adafruit_NeoPixel за вказаним посиланням. Отримавши це, ви можете включити його з опцією Включити ZIP-бібліотеку.
#define BLYNK_PRINT DebugSerial #include #include
Потім ми визначаємо кількість світлодіодів, яка потрібна для нашої світлодіодної матриці, а також визначаємо номер виводу, який використовується для управління параметрами світлодіодів.
#define PIN 6 #define NUM_PIXELS 40
Потім нам потрібно помістити наш блимаючий ідентифікаційний код в масив аутентифікації , який ми зберегли раніше.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Тут послідовні висновки програмного забезпечення використовуються як консоль налагодження. Отже, висновки Arduino визначені як послідовний налагоджувач нижче.
#включати
Всередині налаштування послідовний зв’язок ініціалізується за допомогою функції Serial.begin , blynk підключається за допомогою Blynk.begin і за допомогою pixels.begin () ініціюється світлодіодна матриця.
void setup () { DebugSerial.begin (9600); pixels.begin (); Serial.begin (9600); Blynk.begin (послідовний, авт.); }
Всередині циклу () ми використовували Blynk.run () , який перевіряє наявність вхідних команд з графічного інтерфейсу blynk та виконує операції відповідно.
недійсний цикл () { Blynk.run (); }
На завершальному етапі потрібно отримати та обробити параметри, надіслані із програми Blynk. У цьому випадку параметри були призначені для віртуального виводу “V2”, як обговорювалося раніше в розділі налаштування. Функція BLYNK_WRITE - це вбудована функція, яка викликається, коли змінюється стан / значення пов'язаного віртуального виводу. ми можемо запускати код всередині цієї функції, як і будь-яку іншу функцію Arduino.
Тут написана функція BLYNK_WRITE для перевірки вхідних даних на віртуальному штифті V2. Як показано в розділі налаштування Blink, дані кольорових пікселів були об’єднані та призначені для виводу V2. Тож нам також доведеться знову роз’єднатись після декодування. Оскільки для управління світлодіодною піксельною матрицею нам потрібні всі 3 окремі кольорові піксельні дані, такі як червоний, зелений та синій. Як показано в коді нижче, три індекси матриці читалися як param.asInt (), щоб отримати значення Червоного кольору. Подібним чином, усі інші два значення були отримані та збережені у 3 окремих змінних. Потім ці значення присвоюються матриці Pixel за допомогою функції pixels.setPixelColor, як показано в коді нижче.
Тут функція pixels.setBrightness () використовується для управління яскравістю, а функція pixels.show () використовується для відображення встановленого кольору в Матриці.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixels.clear (); pixels.setBrightness (20); for (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } пікселів.show (); }
Завантаження коду на Arduino Board
Спочатку нам потрібно вибрати ПОРТ Arduino всередині IDE Arduino, потім нам потрібно завантажити код в Arduino UNO. Після успішного завантаження запишіть номер порту, який буде використовуватися для налаштування послідовного зв'язку.
Після цього знайдіть папку сценаріїв бібліотеки Blynk на вашому ПК. Він встановлюється, коли ви встановлюєте бібліотеку, моя була в, “C: \ Users \ PC_Name \ Documents \ Arduino \ libraries \ Blynk \ scripts”
У папці скриптів повинен бути файл із назвою “blynk-ser.bat”, який є пакетним файлом, що використовується для послідовного зв'язку, який нам потрібно редагувати за допомогою блокнота. Відкрийте файл за допомогою блокнота та змініть номер порту на номер вашого порту Arduino, який ви зазначили на останньому кроці.
Після редагування збережіть файл і запустіть пакетний файл, двічі клацнувши на ньому. Тоді ви, мабуть, бачите вікно, як показано нижче:
Примітка: Якщо ви не можете побачити це вікно, показане вище, і вам буде запропоновано повторно підключитися, це може бути пов’язано з помилкою підключення ПК до екрану Arduino. У такому випадку перевірте підключення Arduino до ПК. Після цього перевірте, чи відображається номер COM-порту в IDE Arduino чи ні. Якщо він показує дійсний COM-порт, то він готовий до продовження. Вам слід запустити командний файл ще раз.
Підсумкова демонстрація:
Тепер настав час випробувати схему та її функціональність. Відкрийте програму Blynk, відкрийте графічний інтерфейс і натисніть кнопку Відтворити. Після цього ви можете вибрати будь-який з бажаних кольорів, які відображатимуться на світлодіодній матриці. Як показано нижче, у моєму випадку я вибрав червоний та синій кольори, він відображається на матриці.
Так само ви можете спробувати зробити різну анімацію, використовуючи ці світлодіодні матриці, трохи налаштувавши кодування.