Самодельный ночник на RGB-светодиодах (CD4060)
Принципиальная схема самодельного цветного LED ночника на трехцветных RGB-светодиодах и микросхеме CD4060, простая и красивая самоделка своими руками. Этот ночник включается сам, если в комнате становится темно.
Во время работы создает очень красивые световые эффекты на потолке темной комнаты. Источниками света в нем являются три RGB-светодиода, каждый из которых меняет свой цвет 16-ю градациями. Причем, все три светодиода меняют цвет по-разному. Светодиоды направлены в потолок, и на потолке в темной комнате образуются переливающиеся цветные светящиеся пятна.
Выключается ночник автоматически, если в комнате становится светло. Ночник не имеет собственного источника питания, он питается от сетевого адаптера от отслужившей свое 8-битной телеигровой приставки «Кенга». Блок питания, согласно наклейке на нем, выдает напряжение 9V при токе до 350mA.
На самом деле напряжение меняется в пределах от 7V до 10V при изменении тока от нуля до 300мА. Источник питания может быть и другим, важно чтобы он выдавал напряжение не ниже 6V и не больше 15V и допускал ток не ниже 200мА.
Принципиальная схема
Принципиальная схема показана на рисунке 1. Схема состоит из трех RGB-светодиодов HL1-HL3 типа BL515RGBC-СА, транзисторных ключей, микросхемы-счетчика CD4060B и датчика света на фоторезисторе FR1.
Рис. 1. Принципиальная схема цветного ночника на RGB-светодиодах и микросхеме CD4060.
Можно использовать и другие RGB-светодиоды с общим анодом. Каждый из RGB-светодиодов состоит из трех светодиодов разных цветов, помещенных в общий корпус с общей линзой. Светодиоды переключаются ключами на транзисторах VТ1-VT3. К коллектору каждого из транзисторов подключено по одному светодиоду из каждого.
Но для того чтобы светодиоды горели разными цветами это подключение выполнено по разному, например, к коллектору VТ1 подключен зеленый светодиод из HL1, красный из HL2 и синий из HL3.
Между коллекторами транзисторов и светодиодами включены резисторы R6-R14, они ограничивают ток. Резисторы подключены к каждому светодиоду, потому что светодиодные составляющие RGB светодиодов разных цветов существенно различаются по прямому напряжению падения.
И если параллельно включить светодиоды на разное прямое напряжение, ярче будет гореть тот, у которого напряжение ниже. Резисторы уравнивают яркость свечения.
Транзисторами управляет двоичный счетчик D1. Это микросхема CD4060B, она состоит из двоичного счетчика и инверторов для мультивибратора. Параметры частотозадающей цепи C1-R1-R2 подобраны так, чтобы изменение состояния светодиодов происходило примерно через каждые 0,7-1 секунду. Но, это можно изменить в любую сторону подбором параметров C1-R1-R2.
За светом в комнате следит фоторезистор FR1. Если в комнате светло его сопротивление значительно ниже R15. И на выводе 12 D1 напряжение логической единицы. Счетчик D1 обнулен, и на всех его выходах нули. Все транзисторы закрыты и ни один светодиод не светится.
Когда темно, сопротивление FR1 значительно больше R15, и на выводе 12 D1 напряжение логического нуля. Счетчик работает, светодиоды переключаются.
Детали и печатная плата
Детали можно заменить любыми аналогами. Светодиоды должны быть с общим анодом. Монтаж выполнен на печатной плате. На рисунке 2 показана схема расположения печатных дорожек и деталей. Дорожки обозначены условно, без учета их толщины и диаметра отверстий.
Рис. 2. Чертеж печатной платы для самодельного ночника на трехцветных светодиодах.
Налаживание заключается в подборе сопротивления резистора R15 так, чтобы датчик света работал правильно.
Источник
RGB-ночник управляемый руками
RGB-ночник, с возможностью управления цветом ночника с помощью движения рук. С помощью трех датчиков расстояния будем изменять яркость каждой из трех составляющих RGB-цвета при приближении-удалении руки. В качестве микроконтроллера использовалась плата Arduino.
Вот что получилось:
Для проекта потребовались следующие детали (цены Китай)
- Контроллер Arduino — 1шт; (12$)
- 8×8 RGB-матрица — 1 шт; (8$)
- Ультразвуковой датчик расстояния HC-SR04 — 3 шт; (8$)
- Сдвиговый регистр — микросхема 74hc595 — 4 шт; (2$)
- Резистор 220 Ом — 24 шт; (12 руб)
- Блок питания 5V 2A (Китай) — 1 шт. (
4$)
В качестве RGB-матрицы использовалась GTM2088 — с общим анодом, схема расположения выводов представлена ниже
Принципиальная схема RGB-ночника :
Вот как это выглядело после пайки (4 блока):
- матрица;
- сдвиговые регистры;
- Arduino и датчики hc-sr04;
- блок питания.
Разработка скетча. При разработке скетча задал следующие параметры:
— расстояние 1-20 см, 1 — максимальная яркость, 20 — нулевая
— датчики расстояния в цикле считывают данные и применяют полученное расстояние для установления яркости
— если за цикл расстояние меняется с 1-20 см до больше чем 20 (рука уходит в сторону) — эта яркость фиксируется для данного цвета
Яркость задается подачей ШИМ-сигнала на выводы матрицы для групп R,G,B. Частота ШИМ-сигнала примерно 60Гц. Сигнал ШИМ формируется следующим образам:
Например, расстояние 5 см
Сигнал ШИМ — 15-(5-1)=10 циклов прерывания светодиоды данного цвета горят
4 — 1 — светодиоды данного цвета не горят
(на анод всегда подается 1)
для экономии выводов Arduino для управления матрицей используются сдвиговые регистры 74hc595, что позволяет обойтись 3 выводами Arduino.
В скетче использовались библиотеки SPI и Ultrasonic, MsTimer2.
Скетч получился следующим:
Сборка лампы
Из подставки плафона удаляем патрон и делаем отверстие, чтобы прошла матрица
.
Вставляем блок сдвиговых регистров и закрываем, вырезанным из пенопласта кругом.
Обрезаем «резьбу» плафона, чтобы он зацепился за подставку
Далее добавляем подставку из полиэтиленовой трубы диаметром 100 с тремя отверстиями под датчики расстояния
и дно из пенопласта
получается в сборе так
Теперь остается только его только украсить и можно пользоваться
Источник
2.9. Создание управляемого ночника на RGB-светодиоде
Вы уже знаете, как управлять цифровыми выходами, как создать противодребезговую защиту для кнопки, как менять яркость светодиода с помощью ШИМ-сигнала.
Теперь подключим к плате Arduino трехцветный RGB-светодиод и создадим ночник, цвет которого будет меняться при нажатии на кнопку. В RGB-светодиоде можно смешивать цвета, изменяя широтно-импульсной модуляцией яркость каждого из них.
В устройстве используем RGB-светодиод с четырьмя выводами, один из которых является катодом, общим для всех трех диодов, а остальные — аноды для диодов каждого цвета. Подключите RGB-светодиод проводами к трем ШИМ-контактам платы Arduino через токоограничивающие резисторы, как показано на рис. 2. 7.
Вы можете настроить циклическое переключение цветов светодиода при каждом нажатии на кнопку. В данном случае удобно добавить функцию для установки цвета светодиода в следующее состояние. В программе, представленной в листинге 2.6, определено семь цветов и состояние, когда светодиод не горит. С помощью функции analogWrite() можно задать свои цветовые комбинации. Единственное отличие цикла loop() от предыдущего примера — увеличение числа состояний светодиода (по кругу от 0 до 7).
Загрузите программу в плату и поэкспериментируйте с разноцветным ночником.
Поменяйте цвет RGB-светодиода, изменив значения в функции analogWrite() на свои собственные.
Листинг 2.6. Управляемый ночник на светодиоде — rgb_nightlight.ino
const int BLED=9; // Контакт 9 для вывода BLUE RGB-светодиода
const int GLED=10; // Контакт 10 для вывода GREEN RGB-светодиода
const int RLED=11; // Контакт 11 для вывода RED RGB-светодиода
const int BUTTON=2; // Контакт 2 для входа кнопки
boolean lastButton = LOW; // Предыдущий статус кнопки
boolean currentButton = LOW; // Текущий статус кнопки
int ledMode = 0; // Значение статуса RGB-светодиода
pinMode (BLED, OUTPUT); // Сконфигурировать BLUE контакт светодиода как выход
pinMode (GLED, OUTPUT); // Сконфигурировать GREEN контакт светодиода как выход
pinMode (RLED, OUTPUT); // Сконфигурировать RED контакт светодиода как выход
pinMode (BUTTON, INPUT); // Сконфигурировать контакт кнопки как вход
* Функция сглаживания дребезга
* принимает в качестве аргумента предыдущее состояние кнопки
* и выдает фактическое.
boolean debounce(boolean last)
boolean current = digitalRead(BUTTON); // Считать состояние кнопки
if (last != current) // Если изменилось.
delay(5); // Ждем 5 мс
current = digitalRead(BUTTON); // Считываем состояние кнопки
return current; // Возвращаем состояние кнопки
* Выбор режима светодиода.
* Передача номера режима и установка заданного режима светодиода.
Источник
RGB-ночник на базе Arduino
Наверное, у каждого в детстве была мечта (и не одна). Можно попытаться даже вспомнить то чувство, которое переполняет душу ребенка при исполнении его мечты или тот далекий знакомый блеск в глазах… Я же в детстве мечтала иметь свой ночник.
Сейчас я учусь на 4ом курсе БГУИР и когда нам сообщили, что курсовой проект по схемотехнике можно сделать не на бумаге, а на железяке, меня осенило: ночник, который так желался в детстве, можно сделать самой. Причем сделать не просто объект, который будет освещать комнату в темное время суток, а устройство, каким можно будет с легкостью управлять под любое настроение. А почему бы и нет? Я решила добавить возможность менять цвета с помощью рук: чем ближе рука подносится к ночнику, тем ярче горит один из цветов (RGB). А также хотелось бы управлять ночником с помощью пульта ДУ.
Сразу признаюсь, что идею я подсмотрела на сайте cxem.net. Если вкратце, в этом примере использовалась RGB-матрица, которая управлялась с помощью регистров сдвига, и ультразвуковые датчики расстояния. Но я подумала, что матрица светит исключительно в одну сторону, мне же хотелось, чтобы ночник светил по сторонам.
Обоснование элементов схемы
Я обратила свое внимание на микроконтроллеры Arduino. UNO вполне подходящий вариант для моей задумки, во-первых потому что это наиболее популярная платформа и количество пинов не слишком велико, в отличие от Mega, во-вторых к ней можно подключить внешний источник питания, в моем случае он 12В, в отличие от Nano, в третьих… ну думаю можно остановиться на этих двух пунктах. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду.
Более подробную информацию о данной плате можно с легкостью найти на просторах интернета, так что не буду перегружать статью.
Итак, основные требования, предъявляемые системе. Необходимы:
– датчики, которые будут отслеживать расстояние до преграды для управления системой;
– датчик для считывания сигналов с пульта дистанционного управления;
– светодиоды, которые и будут обеспечивать необходимую функциональность освещения;
– управляющий блок, который будет управлять всей системой.
В качестве датчиков расстояния для проекта необходимы дальномеры, каждый из которых будет соответствовать определенному цвету: красный, зеленый, синий. Датчики расстояния будут следить за расстоянием руки до ночника и, чем ближе рука будет подноситься к определенному датчику, тем сильнее будет гореть цвет, соответствующий этому дальномеру. И наоборот, чем дальше рука, тем меньше подается напряжение на цвет, соответствующий датчику.
Наиболее популярные дальномеры на данный момент это Sharp GP2Y0A21YK и HC-SR04. Sharp GP2Y0A21YK — это инфракрасный дальномер. Он оснащен ик-излучателем и ик-приемником: первый служит источником луча, отражение которого ловит второй. При этом ик-лучи датчика для человеческого глаза невидимы и при такой интенсивности безвредны.
По сравнению с ультразвуковыми датчиком HC-SR04, у этого датчика есть и достоинства, и недостатки. К достоинствам можно отнести нейтральность и безвредность. А недостатки — меньший радиус действия и зависимость от внешних помех, в том числе — некоторых типов освещения.
В качестве датчиков расстояния для проекта использованы ультразвуковые дальномеры HC-SR04.
Принцип действия HC-SR04 основан на хорошо известном явлении эхолокации. При его использовании излучатель формирует акустический сигнал, который отразившись от преграды, возвращается к датчику и регистрируется приемником. Зная скорость распространения ультразвука в воздухе (примерно 340м/с) и время запаздывания между излученным и принятым сигналом, легко рассчитать расстояние до акустической преграды.
Вход TRIG подключается к любому выводу микроконтроллера. На этот вывод нужно подавать импульсный цифровой сигнал длительностью 10 мкс. По сигналу на входе TRIG датчик посылает пачку ультразвуковых импульсов. После приема отраженного сигнала, датчик формирует на выводе ECHO импульсный сигнал, длительность которого пропорционально расстоянию до преграды.
Ик-датчик. Разумеется, с данного датчика будет считываться и декодироваться сигнал, необходимый для дистанционного управления. TSOP18 отличаются между собой только по частоте. Для проекта выбран датчик VS1838B TSOP1838.
В основе проекта лежала идея об освещении помещения любым цветом, это говорит о том, что понадобятся 3 основных цвета из которых будет получено освещение: красный, зеленый, синий. Поэтому была выбрана модель светодиодов SMD 5050RGB, которые отлично справятся с поставленной задачей.
В зависимости от величины напряжения, подаваемого на каждый светодиод, они будут менять интенсивность этого освещения. Светодиод должен быть подключен через резистор, иначе рискуем испортить не только его, но и Arduino. Резистор нужен для того, чтобы ограничить ток на светодиоде до приемлемой величины. Дело в том, что внутреннее сопротивление светодиода очень низкое и, если не использовать резистор, то через светодиод пройдет такой ток, который попросту спалит и светодиод, и контроллер.
Планки со светодиодами, которые используются в проекте, питаются от 12В.
В связи с тем, что напряжение на светодиодах в «выключенном» состоянии равно 6В и необходимо регулировать питание, которое превосходит 5В, в схему необходимо добавить транзисторы в ключевом режиме. Мой выбор пал на модель BC547c.
Рассмотрим вкратце, для тех, кто подзабыл, принцип работы n-p-n транзистора. Если напряжение не подавать вовсе, а просто взять и замкнуть выводы базы и эмиттера пусть даже и не накоротко, а через резистор в несколько Ом, получится, что напряжение база-эмиттер равно нулю. Следовательно, нет и тока базы. Транзистор закрыт, коллекторный ток пренебрежительно мал, как раз тот самый начальный ток. В этом случае говорят, что транзистор находится в состоянии отсечки. Противоположное состояние называется насыщение: когда транзистор открыт полностью, так, что дальше открываться уже некуда. При такой степени открытия сопротивление участка коллектор эмиттер настолько мало, что включать транзистор без нагрузки в коллекторной цепи просто нельзя, сгорит моментально. При этом остаточное напряжение на коллекторе может составить всего 0,3…0,5В.
Эти два состояния – насыщение и отсечка, используются в том случае, когда транзистор работает в ключевом режиме наподобие обычного контакта реле. Основной смысл такого режима в том, что малый ток базы управляет большим током коллектора, который в несколько десятков раз больше тока базы. Большой ток коллектора получается за счет внешнего источника энергии, но все равно усиление по току, что называется, налицо. В нашем случае, микросхема, рабочее напряжение которой 5В, включает 3 планки со светодиодами, работающими от 12В.
Рассчитаем режим работы ключевого каскада. Требуется рассчитать величину резистора в цепи базы, чтобы светодиоды горели в полную мощность. Необходимое условие при расчете, чтобы коэффициент усиления по току был больше либо равен частному от деления максимально возможного тока коллектора на минимально возможный ток базы:
Поэтому планки могут быть на рабочее напряжение 220В, а базовая цепь управляться от микросхемы с напряжением 5В. Если транзистор рассчитан на работу с таким напряжением на коллекторе, то светодиоды будут гореть без проблем.
Падение напряжения на переходе база-эмиттер 0,77В при условии, что ток базы 5мА, ток коллектора 0,1А.
Напряжение на базовом резисторе составит:
По Закону Ома:
Из стандартного ряда сопротивлений выбираем резистор 8,2 кОм. На этом расчет закончен.
Хочу обратить ваше внимание на одну проблему, с которой я столкнулась. При использовании библиотеки IRremote Arduino зависал при регулировании синего цвета. После долгого и тщательного поиска в интернете оказалось, что данная библиотека использует по умолчанию таймер 2 для этой модели Arduino. Таймеры используются для управление выходами ШИМ.
Tаймер 0 (Системное время, ШИМ 5 and 6);
Tаймер 1 (ШИМ 9 и 10);
Tаймер 2 (ШИМ 3 и 11).
Первоначально у меня был использован ШИМ 11 для регулирования синего цвета. Поэтому будьте внимательны при работе с ШИМ, таймерами и сторонними библиотеками, которые могут их использовать. Странно, что на главной странице на гитхабе об этом нюансе не было ничего сказано. При желании вы можете раскомментировать строчку с таймером 1 и закомментировать 2.
Подключение элементов на макетной плате выглядит следующим образом:
После тестирования на макетке начались фазы «Размещение элементов на плате» и «Работа с паяльником». После первого тестирования готовой платы в голову закрадывается мысль: что-то пошло не так. И тут начинается знакомая многим фаза «Кропотливая работа с тестером». Однако неполадки (случайно спаялись несколько соседних контактов) были быстро устранены и вот он долгожданный озорной огонек светодиодов.
Далее дело стояло только за корпусом. По этому поводу были выпилены фанерки с отверстиями для наших датчиков. Задняя крышка делалась специально съемной, чтобы можно было насладиться видом изнутри и, при желании, что-то доделать или переделать. Также в ней имеются 2 отверстия для перепрограммирования платы и питания.
Корпус клеился на двухкомпонентном эпоксидном клее. Стоит отметить особенность данного клея, для тех, кто с ним раньше не встречался. Данный товарищ поставляется в двух отдельных емкостях, при смешивании содержимого которых происходит моментальная химическая реакция. После смешивания действовать приходится быстро, в пределах 3–4 минут. Для дальнейшего использования нужно смешать новую порцию. Так что если пытаетесь это повторить, мой вам совет, смешивать маленькими порциями и действовать весьма быстро, время на подумать будет не так уж и много. Поэтому стоит заранее продумать, как и где склеить корпус. Причем за один присест это сделать не получится.
Для крепления планок со светодиодами в верхнюю крышку была вставлена трубка через которую прекрасно прошли все провода.
Когда возник вопрос с абажуром, я вспомнила как в детстве делала поделки из простой нитки, клея и воздушного шарика, который служил основой. Принцип для абажура взят тот же, однако обматывать многогранник оказалось сложнее, чем шарик. За счет давления, оказываемого нитками на конструкцию, кверху она начала сужаться и нитки стали опадать. Экстренно, с руками в клею, было принято решение укрепить конструкцию сверху. И тут пришел на помощь компакт диск. В итоге получился вот такой ночник:
Что хочется сказать в итоге
Чтобы я изменила в проекте? Для подачи сигнала TRIG датчиков расстояния можно было бы использовать один выход Arduino вместо трех. Так же я бы предусмотрела отверстие для ик-датчика (о котором я забыла), который пока, увы, спрятан в корпусе из которого он, естественно, не может считывать сигналы с пульта. Однако, кто сказал, что нельзя ничего перепаивать и сверлить?
Хочется отметить, что это был интересный семестр, и отличная возможность попробовать сделать что-то не на бумаге, благодаря чему я могу поставить еще одну галочку около пункта «детская мечта». И если вам кажется, что пробовать что-то новое сложно, и вы не знаете за что первым делом взяться, не стоит переживать. У многих в голове пролетает мысль: с чего бы тут начать и как это вообще можно сделать? В жизни много возникает задач от которых можно растеряться, но стоит только попробовать как вы заметите, что с огоньком в глазах вы можете свернуть горы, пусть даже для этого придется немножко постараться.
Источник