STEM - проект "Веселка"

Про матеріал
Створення на платформі Arduino STEM-проекту "Веселка" допомогою RGB світлодіоду, використовуючи адитивне змішування кольорів
Перегляд файлу

Гурток «Основи робототехніка на платформі Arduino».

 Тема STEM-заняття:

Навчальний проект: «Веселка»

 

Мета: Дослідити роботу RGB світлодіода та адитивне змішування кольорів, які може випромінювати RGB світлодіод. Закріпити навички роботи з цифровими портами, формуванням ШІМ; продовжити набуття навичок програмувати режими роботи Arduino.

    

 Постановка навчальної проблеми.

 

Слово керівника гуртка:

«Сьогодні ми спробуємо створити за допомогою RGB світлодіода, використовуючи  адитивне змішування кольорів, проект «Веселка».

 

Обладнання: плата Arduino (nano),  RGB Led – модуль (із спільним катодом) або EGB світлодіод із спільним катодом (анодом), breadboard (макетна плата), 3 дроти "male-male" («папа - папа»), ноутбук з програмним забезпеченням (програма Arduino IDE), Палітра кольорів в адитивній системі кольору RGB

 

RGB-светодиодыТеоретичні відомості

Триколірний світлодіод (RGB Led) — це три світлодіоди різних кольорів (червоний, зелений, синій) в одному корпусі. Він може бути вмонтованим в друковану плату з резисторами (RGB Led  модуль), так і без резисторів.

Світлодіод має чотири виводи. 3 виводи – аноди (катоди)  і один спільний катод (анод). Тобто є RGB світлодіоди із спільним катом і спільним анодом..

 

Червоний

Зелений

Синій

Максимальна пряма напруга (В)

1,9

3,8

3,8

Сила струму (мА)

20

20

20

 

В дому проекті, подачею сигналу (напруги) на один із анодів, можна отримати свічення одного з кольорів.

Використовуючи широтно-імпульсну модуляцію (ШІМ) для всіх анодів одночасно, можна отримати свічення одним з кольорів веселки.

Світлодіоди необхідно підключати з  послідовно з’єднаним резистором. Резистор на 220-300 Ом підійде для вмикання будь-якого анода світлодіода RGB до джерела живлення 5В.

 

Дана розробка заняття складається з двох проектів: – «RGB – світлодіод» та «Веселка».

 

Частина І: Проект «RGB - світлодіод»

KY-016 - Модуль RGB светодиода 5 мм. Подключение к Arduino. Для складання моделі проекту з  RGB світлодіодом (Led модулем) нам буде потрібно:

  • плата Arduino
  • RGB Led – модуль (із спільним катодом)
  • Breadboard (макетна плата)
  • 3 дроти "male-male" («папа - папа»)
  • Ноутбук з програмним забезпеченням (програма Arduino IDE)

 

Хід виконання проекту

  1. KY-016 - Модуль RGB светодиода 5 мм. Подключение к Arduino.Підключити схему до комп’ютера через USB порт плати Arduino, попередньо виконати з’єднання RGB світлодіода у відповідність до схеми.

2. Завантажити програму RGB1 до лабораторного макет, Дослідити роботу програми.

 

Для керування вмиканням одиночних кольорів RGB  світлодіода можна використати наступну програму (скетч) яку можна просто скопіювати в Arduino IDE:

 

 // оголошуємо змінні з номерами піна

int r = 9;

int g = 10;

int b = 11;

 

//процедура setup

void setup()

{

// оголошуємо використовувані порти

pinMode(r, OUTPUT);

pinMode(g, OUTPUT);

pinMode(b, OUTPUT);

}

 

 //процедура loop

void loop()

{

digitalWrite(r, HIGH); // включаємо червоний

delay(1000); //чекаємо 1000 мс

digitalWrite(r, LOW); // виключаємо червоний

digitalWrite(g, HIGH); // включаємо зелений

delay(1000); //Чекаємо 1000 мс

digitalWrite(g, LOW); // виключаємо зелений

digitalWrite(b, HIGH); // включаємо синій

delay(1000); //Чекаємо 1000 мс

digitalWrite(b, LOW); // виключаємо синій

delay(1000); //чекаємо 1000 мс

}

 

Частина ІІ: Проект «Веселка»

1. Створити проект зміни кольору RGB світлодіода кольорами веселки, внесенням зміни  до програми RGB1.

2. Реалізувати програму, у якій колір RGB світлодіода змінюється кольорами веселки.

 

Теоретичні відомості.

Як зробити колір більш насиченим. Які фарби треба змішати, щоб отримати  потрібний колірОтримати кольори веселки можна шляхом доповнення основних кольорів - червоного, зеленого і голубого кольорами від адитивного змішування цих кольорів.

Що таке адитивне змішування кольорів?

 

Адитивне змішування кольорів

Адитивний колір - це колір, отриманий змішуванням різних світлих тонів, з відтінками червоного, зеленого і синього кольорів — найбільш поширеними основними кольорами, що використовуються в адитивній колірній системі.

Поєднанням двох із трьох адитивних основних кольорів у рівних пропорціях утворює адитивний вторинний колір: блакитний, пурпуровий, жовтий.

 

Палітра кольорів в адитивній системі кольору RGB

 

цветопередача при печатиЯк домогтися точної передачі кольору під час друку на тканині? | SINGLEPRINT

 

У системі передачі кольору RGB палітра формується шляхом складання червоного, зеленого і синього кольорів.

 

 

Адитивну модель кольорів доповнює другорядна адитивна система яка називається  субтрактивна модель (CMYK).

 

CMYK — субтрактивна колірна модель

цветопередача при печатиCубтрактивна колірна модель CMYK (від англ. subtract — «віднімати»), яка заснована на відніманні із білого первинних кольорів: синьо-зелений колір віднімає з білого кольору червоний, жовтий віднімає синій, а пурпуровий - зелений. Літера К у назві моделі CMYK взята у слова Black, вона позначає ключовий колір - Key Color.

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

 

 

 

Проект : Змішування кольорів RGB.

 

Процедуру змішування 3-х кольорів RGB-світлодіодів можна здійснити використавши широтно - імпульсну модуляцію (ШІМ) для трьох виводів світлодіодів (анодів або катодів).

Перед тим як виконати цей проект, розглянемо поняття про широтно-імпульсну модуляцію, яка дозволяє Arduino виводити аналогові дані на цифрові виводи, і застосуємо ці знання для створення довільного кольору світла з допомогою RGB-світлодіода.

Підключимо RGB-світлодіод до плати Arduino і змусимо переливатися його різнобарвними кольорами – кольорами веселки.

 

Широтно-імпульсна модуляція

 

Arduino не може на цифровий вивід видавати довільну напругу живлення. Видається або +5 В (HIGH), або 0 В (LOW). Але рівнем напруги керується багато споживачів: наприклад, яскравість світлодіода або швидкість обертання мотора. Для симуляції неповної напруги використовується ШІМ (широтно-імпульсна модуляція, або PWM) .ШІМ - це операція отримання змінного аналогового значення за допомогою цифрових сигналів. Цифровий сигнал на виході постійно перемикається між максимальним і мінімальним значеннями. Перемикання має частоту в тисячі герц. Око не помічає мерехтіння більше 50 Гц, тому нам здається, що світлодіод не мерехтить, а горить в неповну силу.

Arduino-функція analogWrite () видає ШІМ-сигнал на цифровий вивід Arduino. Після виклику () на виході буде генеруватися постійна прямокутна хвиля із заданою шириною імпульсу до наступного виклику analogWrite (), частота видається ШІМ-сигналу дорівнює 490 Гц.

На платах Arduino Nano і UNO ШІМ підтримують виводи 3, 5, 6, 9, 10 і 11, на платі Mega - виводи 2-13.

Дані виводи відмічені знаком тильди ~.

 

Lection 7. Плата Arduino. Широтно-імпульсна модуляція ШІМ (PWM). - YouTube

   Для отримання різних аналогових величин змінюється ширина імпульсу (див. Рис.1) .Arduino-функція analogWrite () видає ШІМ-сигнал на цифровий вивід Arduino. Після виклику () на виході буде генеруватися постійна прямокутна хвиля із заданою шириною імпульсу до наступного виклику analogWrite (), частота видається ШІМ-сигналу дорівнює 490 Гц. На платах Arduino Nano і UNO ШІМ підтримують виводи 3, 5, 6, 9, 10 і 11, на платі Mega - виводи 2-13.

 

Рис.1. Залежність значень ШІМ від ширини імпульсу

 

Проект  «Веселка».

Що таке веселка — COOLINFOВ даному проекті ми використаємо RGB-світлодіод.

RGB розшифровується як абревіатура Red, Green, Blue. За допомогою цих кольорів можна отримати будь-який колір шляхом змішування. Світлодіод RGB відрізняється від звичайного тим, що містить 3 невеликих кристали R, G, B, які можуть синтезувати будь-який колір або відтінок. RGB-світлодіод має 4 виводи (див. МаМал.3).

 

Для виконання проекту використаємо наступні компоненти:

  •      контролер Arduino UNO R3;
  •      USB-кабель – 1
  •      плата для прототипування;
  •      RGB-світлодіод;
  •      резистор 220 Ом;
  •      провідники тато-тато.
  •      ноутбук з програмним забезпеченням

                                                                                                      Мал.3

Підключимо RGB-світлодіоди до плати Arduino як показано на Мал.3

Як зробити колір більш насиченим. Які фарби треба змішати, щоб отримати  потрібний колірТепер перейдемо до написання скетчу. Насправді веселка має безліч кольорів, а 7 кольорів були придумані тільки тому, що ці кольори найкраще сприймаються і визначаються оком і ми їх можемо назвати і згадати приказкою «Чапля осінь жде завзято, буде сани фарбувати».

 

Наш світлодіод повинен переливатися від червоного до фіолетового, проходячи через всі 7 основних кольорів. Послідовність кольорів веселки наступна:

червоний, оранжевий, жовтий, зелений, голубий, синій, фіолетовий.

Для написання програми веселки для Arduino IDE необхідно створити алгоритм.

Для створення алгоритму використаємо палітру кольорів в адитивній системі кольору RGB.

Алгоритм для обчислення будь-якого проміжного кольору веселки.

 

  1. За початкову точку відліку приймаємо червоний колір (255, 0, 0) .
  2.  Збільшуючи значення зеленої складової G, досягнемо значення оранжевого кольору (255, 125, 0), а потім і жовтого  (255, 255, 0) .
  3.   Зменшивши значення червоної складової R до 0 отримаємо значення зеленого кольору (0, 255, 0) .
  4.  Збільшуємо значення синьої складової B до значення 255 отримаємо блакитний колір (0, 255, 255) .
  5.  Поступово зменшимо кількість зеленої складової G до 0  отримаємо синій колір (0, 0, 255) .
  6.  Поступово збільшимо кількість червоної складової R до значення 255 отримаємо фіолетовий колір (125, 0, 255) .
  7.  Після невеликої паузу переходимо до 1 кроку.

 

Взявши за основу програму RGB1 та користуючись вищевказаним Алгоритмом, напишемо програму нашого проекту «Веселка».

 

Програма проекту «Веселка».

 

const int redPin = 13;  // R підключаємо до піну 13

const int greenPin = 12;// G підключаємо до піну 12

const int bluePin = 11; // B підключаємо до піну 11

 

void setup() //процедура setup

{

  // піни на вивід

  pinMode(redPin, OUTPUT);

  pinMode(greenPin, OUTPUT);

  pinMode(bluePin, OUTPUT);

}   

 void loop() //процедура loop

{   

  // Кольори веселки (змішані кольори):

    

 color(255,0,0); // червоний

 delay(2000); // пауза на 2с

 color(255,125,0); // оранжевий

 delay(2000); // пауза на 2с

 color(255,255,0); // жовтий

 delay(2000);// пауза на 2с

 color(0,255,0); //зелений  

 color(0,255,255); //голубий

 delay(2000); //пауза на 2с

 color(0, 0, 255); //синій

 delay(2000); //пауза на 2с

 color(125,0,255); //фіолетовий

 delay(2000);// пауза на 2с

 color(255,255,255); //білий 

 delay(2000);// пауза на 2с

}

// функція виводу кольору

void color (unsigned char red,unsigned char green, unsigned char blue)

{   

 analogWrite(redPin, red);

 analogWrite(greenPin, green);  

 analogWrite(bluePin, blue);      

}

 

 

 

Контрольні питання для закріплення вивченого матеріалу.

Що таке веселка — COOLINFO

 

  1.                                                                                                                  Що являє собою RGB світлодіод?
  2.                                                                                                                  Адитивний колір -  це?
  3.                                                                                                                  При скважності імпульсів 125 на цифровому піні Arduino UNO з функцією широтно-імпульсної модуляції, яка середня напруга буде на цьому піні?
  4.                                                                                                                  Скільки пінів з функцією широтно-імпульсної модуляції має Arduino UNO&
  5. Яка відмінність субтрактивна колірної моделі CMYK від адитивної?

 

docx
Додано
25 грудня 2025
Переглядів
53
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку