Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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

Урок 6.

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

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

Список деталей для экспериментов

§ 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); }

 

 


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

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

2563 = 16 777 216 цветов

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

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

Физика

Трехцветный светодиод (rgb led) — это три светодиода разных цветов в одном корпусе. Они бывают как с небольшой печатной платой, на которой расположены резисторы, так и без встроенных резисторов.

При работе с трехцветным светодиодом без встроенных резисторов необходимо иметь ввиду, что назначение ножки светодиода можно определить по ее длине. Самая длинная — земля (GND), короче — зеленый (G), еще короче — голубой (B), а самая короткая — красный (R).

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

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

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

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

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

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

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

 

Напишите скетч: Схема (подключаем ножки светодиода к 9, 10 и 11 пинам):

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); }

 

 

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

 

 

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

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

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

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...