Відтворення кольорів за допомогою RGB-світлодіоду
Завдання роботи
Налаштувати платформу Arduino для зчитування та відтворення кольорів.
Обладнання
- платформа Arduino UNO;
- модуль RGB-світлодіоду;
- розсіювач світла;
- датчик кольору ISL29125;
- макетна плата;
- з’єднувальні провідники;
- кабель USB Type A-Type B;
- кольорові картки;
- ПК.
Теоретична частина
Рисунок 1 – Загальний вигляд обладнання
Система RGB (Red, Green, Blue) – це головна колірна модель електронної техніки, яка формує зображення на екранах моніторів, телевізорів, смартфонів і планшетів. Вона базується на змішуванні світлових променів трьох основних кольорів: червоного, зеленого та синього у різних пропорціях, що дозволяє створювати величезну кількість відтінків.
В даній роботі пропонується здійснити відтворення кольорів, які зчитуються датчиком ISL29125 (рис. 2) за допомогою модуля RGB-світлодіоду (рис. 3).
Рисунок 2 – Датчик кольору ISL29125
ISL29125 – це цифровий датчик кольору та освітленості (RGB) з низьким енергоспоживанням та інтегрованим інфрачервоним (ІЧ) фільтром. Він вимірює інтенсивність червоного, зеленого та синього спектрів видимого світла. Отримані дані передаються через інтерфейс I2C. Основні характеристики датчику:
- Робоча напруга: 2,25…3,63 В (типова – 3,3 В);
- Споживаний струм: 56 мкА в робочому режимі та 0,5 мкА в режимі сну;
- Роздільна здатність АЦП: 16 біт;
- Інтерфейс зв'язку: I2C;
- Діапазони вимірювань: 0,0057…375 Лк та 0,152…10 000 Лк.
- Придушення завад: апаратно блокує ІЧ випромінювання та фільтрує мерехтіння штучного світла частотою 50 Гц / 60 Гц.
- 3V – живлення датчика (3,3 В);
- GND – загальний провід;
- SDA – лінія даних шини I²C.
- SCL – лінія тактування шини I²C.
- INT – вивід переривання (Interrupt). Використовується за бажанням для сповіщення мікроконтролера про те, що рівень освітлення досяг заданого порогу.
Рисунок 3 – Зовнішній вигляд та схема модуля RGB-світлодіоду
Основні характеристики світлодіоду представлені у таблиці 1.
Таблиця 1 – Основні характеристики світлодіода
|
Максимальний струм, мА |
20 |
|
Падіння напруги на кристалі R (625 нм), В |
1,75 |
| Падіння напруги на кристалі G (520 нм), В |
2,2 |
| Падіння напруги на кристалі B (465 нм), В |
2,45 |
| Інтенсивність випромінювання R (625 нм), мкд |
1200 |
| Інтенсивність випромінювання G (520 нм), мкд |
2000 |
| Інтенсивність випромінювання B (465 нм), мкд |
1200 |
|
Кут випромінювання |
30º |
(1)
де U – напруга джерела живлення, В;
UVD (X) – пряме падіння напруги на конкретному кристалі, В;
R(X) – опір обмежувального резистора, Ом.
З таблиці 1 видно, що для даного світлодіоду найменше падіння напруги має червоний кристал, а найбільше синій. Опори обмежувальних резисторів є однаковими, та дорівнюють 470 Ом (рис. 3). Отже, якщо ми прикладемо до всіх кристалів однакову напругу, то струм червоного кристалу буде найбільшим, а синього найменшим. Для того щоб вирівняти струми треба обмежити споживання червоного й зеленого кристалу. Коефіцієнти обмеження струму за умови, що опори обмежувальних резисторів R1, R2, R3 однакові, можна визначити за формулою:
(3)
де Е(min) – мінімальне з трьох значень інтенсивності випромінювання кристалу, В.
Загальний коефіцієнт обмеження струму визначається за формулою:
Рисунок 4 – Плата Arduino UNO
Програма Arduino IDE, доступна для скачування на офіційному сайті Arduino, є безкоштовною. На рисунку 5 зображено робоче вікно програми, в якому здійснюється написання програми для плати Arduino.
Рисунок 5 – Вікно програми Arduino IDE
Програму в Arduino IDE, яка вже готова до роботи з платою, називають скетчем. Після того як програма складена вона завантажується (прошивається) на плату. Для програмування Arduino використовується USB-кабель. Відразу після завантаження програма готова виконувати різні команди. Для завантаження програми на плату у вікні програми треба натиснути кнопку
Рисунок 6 – Схема підключення датчику кольору та RGB-модуля до Arduino UNO
Контакти SDA та SCL датчику кольору підключаються до контактів А4 та А5 Arduino UNO, які можуть виконувати функцію аналогових входів та ліній шини I²C.
Модуль RGB-світлодіоду підключається до цифрових входів-виходів 9, 10 та 11, які можуть здійснювати широтно-імпульсну модуляцію (ШІМ), та керувати в такий спосіб струмом, що проходить через кожний кристал світлодіоду.
Принцип ШІМ, або PWM (pulse-width modulation) полягає в наступному (рис. 7). Електричне навантаження, яким у нашому випадку є світлодіод VD з обмежувальним резистором R, живиться не постійним, а пульсуючим струмом. Період повторення імпульсів Т, а відповідно й частота, є постійними, а тривалість τ – змінною. Чим більше значення τ, тим більший загальний струм буде проходити через навантаження. Частота імпульсів ШІМ знаходиться в межах від одного до декількох десятків кГц, тому людське око не бачить пульсацій світіння.
Рисунок 7 – Принцип ШІМ для керування інтенсивністю світіння світлодіодуХід роботи
- За формулами (2), (3) та (4) розрахуйте коефіцієнти обмеження струму та занесіть їх значення до таблиці 2.
|
Кристал |
kU | kE | kI |
|
R |
|||
|
G |
|||
| B |
- Підключить датчик кольору та модуль RGB-світлодіоду до Arduino UNO у відповідності до схеми на рис. 6, а також рис. 1.
- Встановіть на корпус світлодіоду розсіювач світла (рис. 1).
- Перш ніж написати програмний код до робочого вікна програми треба встановити, або перевірити наявність наступних бібліотек:
- Скопіюйте та вставте до робочого вікна програми Arduino IDE наступний скетч (коментарі до команд не вплинуть на роботу програми, оскільки відділені від команд символом «//»):
- За допомогою USB кабелю під’єднайте плату Arduino до ПК.
- В меню Tools – Board оберіть Arduino UNO.
- В меню Tools – Port оберіть порт, якій відповідає обраній платі.
- Натисніть кнопку
«Завантаження» та дочекайтеся завершення процесу. - Підносьте під датчик кольору картки з кольорового паперу. Оцініть, наскільки точно (чи не точно) ці кольори відтворюються RGB-світлодіодом.
- Введіть до програмного коду отримані у пункті 1 коефіцієнти обмеження струму kI(X) замість одиниць (рис. 8).
Рисунок 8 – Фрагмент програмного коду, до якого вводяться коефіцієнти обмеження струму.
- Завантажте виправлений програмний код на Arduino, та повторіть пункт 10.
- Здійсніть налаштування загальної яскравості та кінцеве налаштування кольорів за вашим сприйняттям. Для цього окрім кольорових карток зручно використовувати білий аркуш паперу.
Аналіз даних
Зробіть висновки щодо необхідності коригування струмів кристалів RGB-світлодіоду для правильного відтворення кольорів.