эксперимент. Как при помощи светодиода сделать радугу: трехцветный светодиод




Урок 11-12.

Тема: ШИМ и смешение цветов.

Для любознательных https://wiki.amperka.ru/

Как обмануть наши чувства: цифровой и аналоговый сигналы, ШИМ, частота, инертность восприятия. Прочитайте п.6 стр. 67
Список деталей для экспериментов

§ 1 плата Arduino Uno

§ 1 беспаечная макетная плата

§ 3 резистора номиналом 220 Ом

§ 1 светодиод

§ 1 трехцветный светодиод

§ 6 проводов «папа-папа»

 

1 схема. Создадим устройство, которое будет плавно управлять яркостью подключенного светодиода: набирать и плавно угасать.

1. Соберите схему: светодиод любого цвета, подключенный через резистор на 220 Ом, провода, плата. Светодиод подключен к 9-ми пину. Рис 6.2.

Напишите скетч: стр. 69.

int brightness = 0; // изначальная яркость светодиода int fadeAmount = 5; // скорость затухания/нарастания яркости void setup() { // инициализируем пин 9, как работающий на выход pinMode(9, OUTPUT); } void loop() { // изменяем яркость светодиода analogWrite(9, brightness);   // на каждом шаге увеличиваем яркость на скорость затухания brightness = brightness + fadeAmount;   // в конце затухания меняем его на нарастание яркости и наоборот if (brightness == 0 || brightness == 255) fadeAmount = -fadeAmount;   // ждём 30 миллисекунд delay(30); }

 


3. Загрузите программу.

Человеческий глаз воспринимает каждый из многочисленных цветов и оттенков окружающего мира как сумму взятых в различных пропорциях трёх базовых цветовкрасного, зелёного и синего. Например, пурпурный цвет — это сумма красного и синего, жёлтый – сумма красного и зелёного, голубой — сумма зелёного и синего цветов. Сумма красного, зелёного и синего цветов воспринимается человеком как белый цвет, а их отсутствие — как чёрный цвет.

2563 = 16 777 216 цветов

Задание для самостоятельного решения

1. Отключите питание платы, подключите к порту 5 еще один светодиод. Измените код таким образом, чтобы второй светодиод светился на 1/8 от яркости первого

эксперимент. Как при помощи светодиода сделать радугу: трехцветный светодиод

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

Подключите ногу КРАСНОГО светодиода к резистору 220 Ом. Подключите другой конец резистора в порт Arduino pin9.

Подключите Общий вывод к земле GND.

Подключите ногу ЗЕЛЕНОГО к резистору 220 Ом.

Подключите другой конец резистора в порт Arduino pin10.

Подключите ногу СИНЕГО к резистору 220 Ом.

Подключите другой конец резистора в порт Arduino pin11.

 

int brightness = 255; // текущее значение яркости int fadeAmount = 5; // скорость затухания // пины, на которых расположен светодиод int leds[3] = {9, 10, 11};   // индексы пинов, с которыми мы работаем // в текущий момент int curPin[2] = {0, 1}; void setup() { for(int i = 0; i < 3; i++) pinMode(leds[i], OUTPUT); } void loop() { // подаём на два разных пина значение равное // brightness и 255-brightness analogWrite(leds[curPin[0]], brightness); analogWrite(leds[curPin[1]], 255 - brightness);   // уменьшаем значение brightness // на скорость затухания brightness = brightness - fadeAmount;   // когда значение brightness становится равным // нулю, меняем номера пинов, с которыми мы // работаем if (brightness == 0) { curPin[0] = (curPin[0] + 1) % 3; curPin[1] = (curPin[1] + 1) % 3; brightness = 255; }   delay(30); }
Напишите скетч: Схема (подключаем ножки светодиода к 9, 10 и 11 пинам):

 

 

 

Итак, плавно можно управлять не только светодиодами, но моторами, и другими компонентами.

 

А как управлять RGB светодиодом при помощи датчика температуры? То есть менять цвета от зависимости температуры.

 

это нужно делать в таком порядке:

1. Подключить датчик температуры. И на базовых примерах научится с ним работать (получать температуру, отправлять в Serial, зажигать встроенный светодиод при достижении определенной температуры).
2. Отложить в сторону предыдущий скетч и датчик, взять обычный светик (или опять-таки встроенный) и научится управлять его яркостью.
3. Добавить еще два светка, и научится "рулить яркостью" стразу троих, для начала выставлять их в какие-то предопределенные значения.
4. Выкинуть два светика, и научится менять яркость одного в зависимости от температуры. Вначале линейно (чем выше температура - тем ярче светик)
5. То же самое, но зависимость уже не линейная, а по какой-то "формуле" (экспонента, по квадратичному закону и т.п.) или по "табличным значениям".
6. То же самое, но уже для трех светиков. Но табличка связей "температру-яркость" - для каждого светодиода своя.
7. Смотрим на свой RGB светодиод. Если каждый его канал ждерт больше 40-ма, то делаем развязку силовыми ключами или ULN-кой (вообщем гуглим "ардуина управление мощьной нагрузкой"). Если <=40ma, то пропускаем этот пункт
8. Заменяем три светика на свой RGB диод.
9. Радуемся.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: