С помощью микроконтроллеров
С помощью него можно получить множество различных оттенков света. Управление RGB-светодиодом осуществляется с помощью микроконтроллера (MK), например, Arduino (рис.2).
Конечно, можно обойтись простым блоком питания на 5 вольт, резисторами в 100-200 Ом для ограничения тока и тремя переключателями, но тогда управлять свечением и цветом придется вручную. В таком случае добиться желаемого оттенка света не получится (рис.3-4).
Проблема появляется тогда, когда нужно подсоединить к микроконтроллеру сотню цветных светодиодов. Количество выводов у контроллера ограничено, а каждому светодиоду нужно питание по четырем выводам, три из которых отвечают за цветность, а четвертый контакт является общим: в зависимости от типа светодиода он может быть анодом или катодом.
Формат данных цветовой последовательности
Этот файл содержит данные последовательности R GB. Чтобы отредактировать этот файл, вы можете добавить в него данные, удалить данные и изменить их. Убедитесь, что все соответствует описанию
Обратите внимание на маркеры “конец последовательности” и “конец всех данных” и убедитесь, что каждая строка данных последовательности содержит пять записей, разделенных запятыми. (см
скриншот ниже)
Перед вами полезная онлайн-утилита для моделирования последовательностей: RGB LED Simulator
Как видно из скриншота выше, маркер “end_of_all_data” обведен фиолетовым цветом, а те, кто отмечает конец последовательностей, обведены красным цветом.
Требуется минимум одна последовательность и максимум 256 индивидуальных последовательностей.
- Каждая строка данных начинается с директивы ассемблера dt (таблица данных).
- Все данные указываются с использованием десятичных значений.
- Каждое значение данных должно быть разделено запятой.
- Данные последовательности в каждой строке имеют пять полей: fade rate: скорость перехода цвета от текущих значений к новым. Каждый шаг происходит с интервалом 5 мс x Fade Rate. Значение скорости затухания 0 означает, что значения RGB будут обновляться немедленно без затухания. Значение скорости затухания не должно быть установлено на 255, кроме как для обозначения конца последовательности. (см. ниже) Время удержания: После завершения затухания происходит задержка перед переходом к следующей строке данных. Интервал 50 мс x время удержания Значение времени удержания 255 после скорости затухания 255 означает конец данных последовательности.Красное значение ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод горит полностью)Зеленый Значение ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод горит полностью)Значение синего ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод полностью горит)Обычно изменения яркости светодиода более заметны между 0 и 128, чем между 128 и 255.Конец текущей последовательности данных обозначается значением поля Fade Rate, равным “255”. Когда приложение обнаруживает это, оно начинает последовательность с самого начала. В конце всех доступных данных последовательности поля Fade Rate и Hold Time должны быть установлены на “255”.
- Fade Rate: скорость, с которой цвета переходят от текущих значений к новым. Каждый шаг происходит с интервалом 5 мс x Fade Rate. Значение скорости затухания 0 означает, что значения RGB будут обновляться немедленно без затухания. Значение скорости затухания не должно быть установлено на 255, за исключением случаев, когда оно указывает на конец последовательности. (См. ниже)
- Значение Fade Rate, равное 0, означает, что значения RGB будут обновляться немедленно без затухания.
- Значение Fade Rate не должно быть установлено на 255, кроме как для обозначения конца последовательности. (См. ниже)
- Время удержания: после завершения затухания происходит задержка перед переходом к следующей строке данных. Интервал 50 мс x время удержания Значение времени удержания 255 после скорости затухания 255 означает конец всех данных в последовательности.
- Значение времени удержания 255 после скорости затухания 255 означает конец_всех_последовательных_данных.
- Красное значение ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод горит полностью)
- Зеленый Значение ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод горит полностью)
- Значение ШИМ синего цвета. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод горит полностью)
- Обычно изменения яркости светодиода более заметны в диапазоне от 0 до 128, чем от 128 до 255.
- Конец текущей последовательности данных обозначается значением “255” в поле Fade Rate. Когда приложение обнаруживает это, оно начинает последовательность с самого начала.
- В конце всех доступных данных последовательности оба поля Fade Rate и Hold Time должны быть установлены на “255”.
Отредактированный файл sequenceData.inc необходимо сохранить и перекомпилировать rgb101g3_main.asm. Полученный файл rgb101g3_main.hex может быть запрограммирован с помощью программатора микроконтроллеров PIC.
RGB ЛАМПА НА МИКРОКОНТРОЛЛЕРЕ
Светильник является полным аналогом лампы настроения, от известных фирм. Питание лампы осуществляется от импульсного источника питания работающего на ключе TNY245, на основе AC-DC преобразователя. Драйвер 3-х ватного светодиода RGB собран на микроконтроллере Attiny13, он имеет 3 режима работы и автоматический режим. Плавное изменение цвета основано на способности микроконтроллера генерировать ШИМ сигнал разной ширины, тем самым с помощью трех основных цветов можно воспроизводить миллионы цветовых комбинаций. А последние, перед выключением, настройки, сохраняются в энергонезависимой памяти EEPROM и поэтому после включения вы будете видеть тот режим, который был последним при предыдущем включении.
Режимы работы лампы:
- плавное изменение цвета RGB
- постоянный цвет при остановленном режиме
- белый цвет при максимальной мощности
Так как нет кнопки переключения режимов, чтобы его изменить, нужно произвести кратковременное выключение устройства и режим смениться.
Программа написана в компиляторе Bascom, файл прошивки и EEPROM, исходники и макеты печатных плат в формате Eagle.
Fuse-биты: частота внутреннего генератора 4,8 МГц, делитель на 8 отключен, startup time 64 мс, brown-out detector 1,8 В.
Схема контроля за питанием состоит и диода 1N4148 и резистора на 1 килоом. Резистор позволяет быстро обнаружить превышение мощности. И когда она обнаруживается, программа ждёт 1 секунду, после этого следует проверка, если всё правильно, то изменяется режим и происходит его сохранение в энергонезависимой памяти, если нет, тогда программа деактивируется.
Так как был использован мощный светодиод, ток потребления каждого излучателя составляет около 700 мА, и например в 3-м режиме расходуется 2,2 A.
Не забудьте поставить подходящие токоограничивающие резисторы, и обратите внимание, что красные излучатели имеют одинаковый ток при низком напряжении. Транзисторы берутся NPN проводимости, биполярные с мощностью канала не менее 1 А
О том, каким должен быть импульсный блок питания, смотрите в приложении к описанию TNY245. Можно попробовать использовать 5 В трансформатор от ATX блока питания. Обязательно помните, что 3W RGB светодиод во время работы нуждается в охлаждении, поэтому необходимо установить радиатора и обязательно проверить температуру их нагрева – не должны быть горячими.
Очень хотелось, чтобы лампа была мощной и пригодной для использования и при дневном освещении. Эта задача была выполнена благодаря 3-х Вт светодиодам, они дают необычайно яркую интенсивность света. Смешение цветов у таких светодиодов происходит плавно, так как кристаллы расположены близко друг к другу. Убедится, в этом, можно посмотрев на фотографии.
Схема, п/плата, монтажная плата, файл прошивки, исходники и другие необходимые для сборки вещи – в архиве для скачивания.
Обучение пульта дистанционного управления ИК-коды (процедура программирования)
После подключения устройства необходимо запрограммировать все 5 кнопок на пульте дистанционного управления. Вот как это сделать:
- Нажимаете и удерживайте настенный выключатель SW1 в течение 11 сек, для того чтобы устройство могло перейти в режим программирования. После 11 секунд, индикатор LD1 начнет быстро мигать и оба канала отключатся. Поэтому у вас есть 11 секунд, чтобы завершить последовательность программирования.
- Нажмите на первую кнопку на пульте дистанционного управления, которая будет включать первый канал (ON — A).
- Нажмите вторую кнопку на пульте дистанционного управления, которая будет использоваться для выключения первого канала (OFF — A).
- Нажмите на третью кнопку на пульте дистанционного управления, которая будет включать второй канал (ON — B).
- Нажмите четвертую кнопку на пульте дистанционного управления, которая будет использоваться для выключения второго канала (OFF — B).
- Наконец нажмите пятую кнопку, которая будет использоваться для активации / деактивации режима сна (SLEEP)
Во время программирования пульта, после каждого нажатия кнопки, светодиод будет мигать, подтверждая что ИК-команда принята.
Если пульт дистанционного управления не имеет все 5 кнопок, вы можете использовать те же кнопки повторно, но это отключит некоторые функции.
Вариант 1
Если ваш пульт имеет только две кнопки , и если во время программирования вы нажмете: XXYYY, то это означает, что кнопка X будет использоваться для первого канала (включение и выключение света будет происходит от одной кнопки X), и кнопка Y будет использоваться для второго канала (включение и выключение света будет происходит от одной кнопки Y). Для данного режима работы необходимо установить перемычку JP1.
Вариант 2
Если вы выберете комбинацию XXXXY, это означает, что кнопка X будет использоваться для функции включения и выключения первого канала, и кнопка Y будет использоваться для включения / выключения режима сна, при этом второй канал не используется.
Примечание. Если во время программирования вы заметили, что светодиод мигает, даже если вы не нажимали никаких кнопок на ПДУ, то вероятно, это потому, что вы используете модуль приемника TSOP11xx вместо TSOP17xx. В таком случае вы не сможет запрограммировать устройство должным образом.
Если вы захотите изменить назначение кнопок, то вы можете повторить процедуру обучения столько раз, сколько вы хотите.
Что такое RGB светодиод и устройство
Аноды RGB светодиода подключаем к линиям 1,2,3 порта В, катоды соединяем с минусом. Чтобы получить разнообразные палитры цвета на аноды будем подавать ШИМ сигнал в определенной последовательности. В этом примере мы специально используем программный ШИМ, хотя на Atmega8 можно без проблем получить аппаратный ШИМ на 3 канала. Программный ШИМ можно использовать в случаях нехватки таймеров/счетчиков и по другим причинам. Для генерации ШИМ определенной частоты используем прерывание по переполнению 8-ми битного таймера Т0(TIMER0_OVF_vect). Так как предделитель не используем частота переполнения таймера будет равна 31250Гц. А если переменная «pwm_counter» считает до 163, то частота ШИМ будет равна 190 Hz. В обработчике прерываний исходя из значений в переменных pwm_r, pwm_g, pwm_b переключаются ножки порта В. Цветовые эффекты настраиваются с помощью функций, где задается время свечения светодиода. В тестовой программе сначала загораются красный, зеленый, синий, белый цвета, а потом начинается цикл с переходами цвета.
Программный код:
// Управление RGB светодиодом. Программный ШИМ
#include
#include
volatile char pwm_counter,pwm_r,pwm_g,pwm_b;
// Прерывание по переполнению Т0
ISR (TIMER0_OVF_vect)
if (pwm_counter++ > 163)
pwm_counter = 0;
if (pwm_counter > pwm_r) PORTB |= (1
if (pwm_counter > pwm_g) PORTB |= (1
if (pwm_counter > pwm_b) PORTB |= (1
// Процедура задержки в микросекундах
void delay_us(unsigned char time_us)
{ register unsigned char i;
for (i = 0; i
{ asm (» PUSH R0 «); // 2 цикла
asm (» POP R0 «); // 2 цикла
// 8 циклов = 1 us для 8MHz
// Процедура задержки в миллисекундах
void delay_ms(unsigned int time_ms)
{ register unsigned int i;
for (i = 0; i
{ delay_us(250);
// Красный цвет
void red (unsigned int time)
for (char a = 0; a
pwm_r = 164 — a; //увеличение
for (char a = 0; a
pwm_r = a; //уменьшение
// Зеленый цвет
void green (unsigned int time)
for (char a = 0; a
pwm_g = 164 — a;
for (char a = 0; a
// Синий цвет
void blue (unsigned int time)
for (char a = 0; a
pwm_b = 164 — a;
for (char a = 0; a
// Белый цвет
void white (unsigned int time)
for (char a = 0; a
pwm_r = 164 — a;
pwm_g = 164 — a;
pwm_b = 164 — a;
for (char a = 0; a
// Переход цветa
void rgb (unsigned int time)
for (char a = 0; a
pwm_b = 164 — a;
for (char a = 0; a
Варианты подключения
Естественно, что самым простым способом подключения устройства управления RGB станет вариант, при котором подключена лишь одна светодиодная полоса или ее часть. Но такой способ не совсем практичен, хотя он и не требует включения в цепь каких либо дополнительных приборов. Дело все в том, что на одну линию такого устройства возможно подключение не более 5–6 метров световой полосы, что для подсветки комнаты будет явно недостаточным. Если же длина отрезка будет больше, то на ближайшие к контроллеру светодиоды возрастет нагрузка, в результате чего они просто перегорят.
Еще одна проблема при подключении длинных светодиодных полос – большая нагрузка по мощности на тончайшие провода RGB-светодиодной ленты. При их нагреве пластиковое основание начинает плавиться, и в итоге жилы остаются без изоляции либо просто прогорают.
А потому при необходимости осветить более длинные расстояния применяются следующие способы и схемы подключения.
Две светодиодные ленты
При таком подключении к контроллеру для RGB-световой полосы понадобится два устройства питания и усилитель. Особенность подобного подключения в том, что отрезки ленты должны подключаться именно параллельно. Хотя у них и одно, общее электронное устройство управления, питание должно подаваться на каждую в отдельности. Усилитель же используется для более ясного и четкого света диодов.
Иными словами, напряжение поступает на оба блока питания, после чего с одного из них идет на усилитель и далее на световую полосу. Со второго блока питание поступает на электронный блок управления. Между собой устройство управления и усилитель связаны второй светодиодной лентой. Схематически такое подключение выглядит как на схеме выше.
При таком подключении желательно применять также два блока питания, но если они имеют большой выход мощности, то можно воспользоваться и одним.
Четыре отрезка по пять метров подключаются опять же параллельно. Пара полос напрямую подключена к контроллеру, вторая пара к нему же, но через усилитель сигнала. При подключении второго блока питания напряжение от него идет напрямую на усилитель. Выглядит подобное подключение примерно как на картинке выше.
Разобравшись с методами подключения контроллеров и их видами, можно попробовать сделать такой прибор своими руками в домашних условиях. Необходимо лишь помнить, что нужно соизмерять мощность устройства и его выходное напряжение с длиной и энергопотребляемостью светодиодной ленты.
Последние материалы
Привязка аккаунта к электронной почте Видеогайд по привязке почты
Довольно часто перед активными пользователями сети интернет возникает проблема, связанная с неудобством использования нескольких почтовых сервисов. Вследствие этого становится актуальной тема организации привязки одного электронного ящика к другому, вне з.
PLC адаптер от Ростелекома: функционал и схема подключения Орешек тверд, но все же…
Привет! Сегодняшняя статья станет для кого-то жизненным откровением, кто-то просто вылупит глаза в экран, а кто-то с улыбкой в умудренных опытом глазах вздохнет. Да! Мы поговорим про интернет через розетку. Да не просто какую-то особую розетку, а про саму.
Как настроить модем ZTE ZXHN H108N
Роутер – это сетевое оборудование, позволяющее одновременно множеству устройств выходить в интернет (компьютеры, планшеты, смартфоны и многое другое).
Сегодняшний ассортимент роутеров позволяет выбрать именно то, что подходит в конкретном случае больше в.
Монтаж и подключение мини атс
Компания «Навигатор» специализируется на реализации автоматических телефонных станций — АТС (с англ. ATS -automatic telephone system), в том числе и мини АТС таких лидеров в области телефонии как Panasonic, Samsung, LG, их установке, монтажу, программиров.
Инициализация
C LRF очищает содержимое регистра одной командой. Команды
clrf PORTAclrf PORTB
мы обнулим содержимое регистров, связанных с портами ввода-вывода PortA и PortB. Это необходимо, поскольку при сбросе микроконтроллера они могут получить случайные значения.Команда «bsf» предназначена для установки определенного бита в байте регистра. Таким образом при выполнении:
Bsf СОСТОЯНИЕ, RP0
в регистре STATUS бит RP0 примет значение 1. Регистр STATUS кроме того, что содержит флаги результатов арифметических операций (ноль, возникновение переноса), также отвечает за выбор банка памяти при прямой адресации. Микроконтроллер PIC16F84A содержит 2 банка памяти (начинающихся с адресов 0x00 и 0x80), специальные регистры расположены как в первом, так и во втором банке. Установив бит RP0, мы сможем обращаться ко второму банку памяти.
Во втором банке памяти нас интересует регистр TRISB, определяющий, какие выводы порта PortB являются входами, а какие выходами. Установкой с помощью команды «clrf TRISB» всех битов регистра TRISB в 0, определяем все выводы PortB как выходы.
Команда “bcf” сбрасывает определенный бит в регистре, поэтому при команде
Cff СОСТОЯНИЕ, RP0
Мы снова можем обратиться к первому банку памяти.
Теперь необходимо изменить значения регистра:
- OPTION_REG, который можно использовать для настройки таймера Timer0
- INTCON, определяющего, какие прерывания разрешены в системе.
Команда «movlw b’11010111’» загружает в аккумулятор W число, с помощью которого мы устанавливаем источник для тактирования таймера от внутреннего генератора, подключаем предделитель к таймеру а также устанавливаем коэффициент предделителя (подробности смотрите в документации). Командой «movwf OPTION_REG» мы отправляем число из аккумулятора в специальный регистр OPTION_REG.
Команда «clrf TMR0» сбрасывает значение таймера Timer0, далее его значение будет инкрементироваться с частотой равной частоте цикла микропроцессора, деленной на выбранный нами предделитель. При переполнении регистра TMR0 будет происходить соответствующее прерывание.
Для разрешения прерывания от таймера в специальном регистре INTCON необходимо установить бит T0IE, а для глобального разрешения прерываний, необходимо установить бит GIE, что и делают команды:
bsf INTCON, T0IEbsf INTCON, GIE
Также во время этой фазы устанавливается счетчик циклов основной программы:
movlw 0x3Dmovwf COUNTER
В результате выполнения этих двух инструкций в ячейку памяти, обозначенную как регистр COUNTER (адрес 0x0F) будет помещено число 0x3D.
Таким образом, начинается цикл программы и завершается инициализация.
Пример программы
светодиодная лента
Платы Ардуино способны управлять светодиодными конструкциями по заранее заданным программам. Их библиотеки можно скачать с официально сайта , найти в интернете или написать новый sketch (code) самому. Собрать такое устройство можно своими руками.
Вот некоторые варианты использования подобных систем:
- Управление освещением. С помощью датчика освещения включается свет в комнате как сразу, так и с постепенным нарастанием яркости по мере захода солнца. Включение может также производиться через wi-fi, с интеграцией в систему «умный дом» или соединением по телефону.
- Включение света на лестнице или в длинном коридоре. Очень красиво смотрится диодная подсветка каждой ступеньки в отдельность. При подключении к плате датчика движения, его срабатывание вызовет последовательное, с задержкой времени включение подсветки ступеней или коридора, а отключение этого элемента приведет к обратному процессу.
- Цветомузыка. Подав на аналоговые входы звуковой сигнал через фильтры, на выходе получится цветомузыкальная установка.
- Моддинг компьютера. С помощью соответствующих датчиков и программ цвет светодиодов может зависеть от температуры или загрузки процессора или оперативной памяти. Работает такое устройство по протоколу dmx 512.
- Управление скоростью бегущих огней при помощи энкодера. Подобные установки собираются на микросхемах WS 2811, WS 2812 и WS 2812B.
Pic 12f629 / 12f675. мигающий светодиод
Pic12f675 и pic12f629 настолько недороги, что радиолюбители часто используют эти микроконтроллеры для развлечения и спорта. Упражнения простые, несложные, и если выполнять их правильно, то трудно сжечь их в огне, но! Если вы забыли поддерживать специальную поправку (константу), которая записана в микросхему на заводе, ее можно восстановить, но для новичков и начинающих радиолюбителей это сложно, поэтому будьте осторожны при прошивке.
В этой статье будет описана простая тестовая программа для микроконтроллера PIC12F675. Первым шагом в изучении языка программирования, будь то C, Visual Basic или любой другой, является написание программы, которая выводит на экран текст “Hello World”. Когда вы начнете изучать программирование микроконтроллера PIC, вы увидите не “Hello World”, а постоянно мигающий светодиод. “.
Основной цикл
В основном цикле проверяется состояние флага задания TF (бит 0x00) в регистре FLAGS (по адресу 0x0E). Если флаг установлен (значение 1) выполняется подпрограмма OUTPUT. после выполнения подпрограммы флаг задания сбрасывается (значение 0).
Проверка значения бита в регистре осуществляется с помощью команды «btfss FLAGS, TF». Команда тестирует бит в регистре, если бит установлен в «1», то следующая инструкция не выполняется, а следующие 2 цикла выполняется команда «nop» («нет операции»). Если бит имеет значение «0» то выполняется следующая по порядку инстукция.
Поскольку следующая инструкция является командой безусловного перехода на метку MAIN, то при сброшенном флаге задания TF продолжается бесконечный основной цикл программы. При установленном флаге задания выполняется команда вызова подпрограммы «call OUTPUT», таким образом текущее значение счетчика команд (PC – «Program counter») помещается в стек, и происходит переход на подпрограмму с меткой OUTPUT.
Возврат из подпрограммы происходит при выполнении инструкции «return», при этом значение адреса из вершины стека помещается в счетчик команд. Стек имеет 8 уровней, таким образом, возможна вложенность (то есть вызов одной из другой) до 8 подпрограмм (в том числе и подпрограмма обработки прерываний).После возврата из подпрограммы флаг задания сбрасывается уже знакомой нам командой «bcf».
Включенное состояние (свет включен или приглушен)
Если нажать на настенный выключатель или отправить соответствующий ИК-сигнал с пульта дистанционного управления, лампочка загорится. Включение электрической лампочки осуществляется путем включения симистора, когда напряжение сети пересекает нулевую точку. Это обнаруживается с помощью детектора пересечения нуля, сформированного с помощью R3 и C6.
Если мы включим симистор сразу после обнаружения» нуля», он включит свет на полную мощность. Если мы задержим срабатывание симистора на некоторое время, то сможем эффективно выполнить диммирование (затемнение), так как напряжение, появляющееся на выходе, меньше напряжения питания.
Электрический паяльник с регулировкой температуры
Мощность: 60/80 Вт, температура: 200’C-450’C, высококачествен…
Подробнее
Если мы посмотрим на принципиальную (часть источника питания) мы можем увидеть, что когда симистор включается, то он замыкает наш бестрансформаторный источник питания. В этот момент вся цепь питается от конденсатора С3. Он должен быть достаточно большим, чтобы поддерживать достаточную мощность для TSOP (~5 мА), микроконтроллера (< 1 мА) и MOC3023 (~ 5 мА, но только в течение нескольких микросекунд). Поэтому здесь желательно поставить конденсатор С3 большой емкости: 220 мкФ / 330 мкФ / 470 мкФ.
Если мы будем держать свет включенным на полную яркость, он в конечном итоге полностью разрядит C3 и перезапустит микроконтроллер PIC. Вот программа микроконтроллера не включает свет на полную яркость — мы на самом деле немного задерживаем срабатывание симистора, чтобы «украсть» достаточно энергии, чтобы держать наш конденсатор C3 заряженным. Так что 100 % на самом деле больше похоже на 99 %.
Контроллер для управление RGB
Для разгрузки выводов МК применяются специальные контроллеры WS2801 (5 вольт) или WS2812B (12 вольт) (рис.5).
С применением отдельного контроллера нет необходимости занимать несколько выходов MK, можно ограничиться лишь одним сигнальным выводом. МК подает сигнал на вход «Data» управляющего контроллера светодиода WS2801.
В таком сигнале содержится 24-битная информация о яркости цвета (3 канала по 8 бит на каждый цвет), а также информация для внутреннего сдвигового регистра. Именно сдвиговый регистр позволяет определять, к какому светодиоду информация адресовывается. Таким образом можно соединять несколько светодиодов последовательно, при этом использовать все так же один вывод микроконтроллера (рис.6).
ШИМ управление LED подсветкой ЖК монитора на PIC12F675
В один прекрасный день перестал радовать своей яркой картинкой монитор LG 1510. Озадачившись ремонтом, полез в инет в поисках причины угасшего монитора. В итоге перепайка указанных, сгоревших элементов не оживила CCFL подсветку. Но попутно наткнувшись на тему переделки CCFL подсветки на LED, решил реализовать свою идею. В итоге вырисовалась простая схема включения и ШИМ регулирования яркости подсветки монитора посредством сигналов от штатной схемы управления монитора.
Для начала был разобран монитор, для замера необходимой ширины LED ленты. На али заказал ленту шириной 5 мм White SMD2835 120 светодиодов/м.
Для разработки схемы был выбран пик контроллер PIC12F675. В котором задействовал основные аппаратные функции: АЦП (пин 5) для измерения заданной яркости, выходной сигнал в LG 1510 от 0 до 5В (опорное напряжение АЦП – питание ПИКа); прерывание по уровню сигнала на входе (пин 6), для включения и отключения подсветки (on/off в схеме монитора с уровнем 5В); и прерывание по таймеру для реализации программного ШИМ управления яркостью светодиодов, выход (пин 7).
В данном мониторе есть выходное питание 12В и 5В. Но питания ПИКа было реализовано от 12В через кренку, для обеспечения высокой стабильности уровня яркости. В исходной прошивке включен WDT который выводит ПИК из sleep режима раз в 2,3 сек. когда уровень сигнала на входе включения равен нулю
По прерыванию на входе включения высоким уровнем сигнала, запускается ШИМ, со скважностью импульсов пропорционально задающему сигналу яркости. Частота импульсов составляет порядка 1 кГц, при работе ПИКа от внутреннего тактового генератора. Также можно увеличить частоту подключив внешний кварц и поменяв биты конфигурации
С кварцем 20МГц частота ШИМа увеличится пропорционально до 5кГц. Для управления нагрузкой на светодиодах выбрал полевой транзистор N-типа AO3400 c довольно приличным нагрузочным током для своих габаритов. В схеме самого монитора были выпаяны почти все элементы CCFL подсветки, и добавлен в цепь питания (12В) новой схемы LC фильтр
Также можно увеличить частоту подключив внешний кварц и поменяв биты конфигурации. С кварцем 20МГц частота ШИМа увеличится пропорционально до 5кГц. Для управления нагрузкой на светодиодах выбрал полевой транзистор N-типа AO3400 c довольно приличным нагрузочным током для своих габаритов. В схеме самого монитора были выпаяны почти все элементы CCFL подсветки, и добавлен в цепь питания (12В) новой схемы LC фильтр.
После сборки и включения, монитор порадовал своей равномерной и высокой яркостью картинки, потраченные усилия привели к хорошему результату. И в свою очередь позволили вдохнуть достижение в ЖК промышленности в старый монитор.
Максимальная и минимальная яркость LG 1510, в сравнении с моим IPS.
Также данную схему можно применить в иных целях, где требуется управление посредством ШИМ. Данные, Data: адрес 0х2104 — порог максимальной яркости (1…255). адрес 0х2105 — порог минимальной яркости (0…254), минимальный порог должен быть ниже максимально, в противном яркость не будет регулироваться. адрес 0х2106 — коррекция частоты внутреннего генератора ПИК контроллера, для изменения частоты ШИМа (х*4 до 252). адрес 0х2107 — подключение подтягивающего резистора, высокий уровень на входе для включения ШИМа.( =1 подключен, =0 нет)
Данная схема не критична к номиналам элементов.
Ардуино – принцип действия
Плата Ардуино – это устройство, на котором установлен программируемый микроконтроллер. К нему подключены различные датчики, органы управления или encoder и, по заданному скетчу (программе), плата управляет моторами, светодиодами и прочими исполнительными механизмами, в том числе и другими платами Ардуино по протоколу SPI. Контроль устройства может осуществляться через дистанционный пульт, модуль Bluetooth, HC-06, Wi-Fi, ESP или internet, и кнопками. Одни из самых популярных плат – Arduino Nano и Arduino Uno, а также Arduino Pro Mini – устройство на базе микроконтроллера ATmega 328
Внешний вид
Программирование осуществляется в среде Ардуино с открытым исходным кодом, установленным на обычном компьютере. Программы загружаются через USB.
Видеоинструкция
Данная схема служит для эффектной подсветки какого-либо предмета, например, аквариуму, и также может быть дополнением для моддинга компьютера. Это устройство управляет трехцветными (RGB) светодиодами и отображает цвета в совершенно случайном порядке.
Общий принцип действия драйвера показан на рисунке 1. Два генератора генерируют прямоугольные импульсы с заполнением 50%, но немного отличаются по частоте (до десятков Гц).
На выходе логического элемента EX-OR (исключающее ИЛИ) высокий уровень появиться только тогда, когда на обоих выходах генераторов одновременно появится 1 или 0.
Диаграмма сигналов на выходах генераторов приведена на рисунке 2. Как видно, на выходе логического элемента EX-OR появляется меандр с переменным заполнением 0…100%. Заполнение это будет изменяться тем медленнее, чем меньше будет разность частот обоих генераторов.
Микросхема CD4060 это 14-разрядный двоичный счётчик с генератором. Миниатюрный дроссель L1, конденсаторы C1 и C2, а также логические элементы CD4060 образуют генератор высокой частоты, работающий на частоте примерно 700 кГц. Эта частота делится в этом счетчике на 212.
Сигнал с генератора также подается на входы CLK 12-разрядных двоичных счётчиков на CD4040, которые подсчитывают импульсы с генератора.
Когда отсчет доходит до того, что на выходе Q11 (ножка 15) появляется логическая единица, на выходе элемента NOT будет низкое состояние, приводящее к блокировке на доли секунды подсчета импульсов (время зависит от емкости C3 и суммарного сопротивления R2 и PR1).
И так происходит при каждом появлении высокого уровня на выходе Q11 CD4040, то есть, как можно заметить, при каждом изменении состояния на выходе Q12 CD4040. Это приводит к тому, что на выходе Q12 CD4060 частота несколько выше от частоты на выходе Q12 CD4040 (разница зависит от C3, R и чем больше значение, тем больше разница).
Благодаря этой минимальной разнице, на элементах EX-OR появляется меандр переменного заполнения по времени. Это в свою очередь приводит к тому, что светодиод, подключенный к выходу этой, цепи будет плавно загораться и гаснуть.
Переменными резисторами можно регулировать скорость изменения заполнения (скорость включения и выключения светодиодов). Так же в схеме добавлен фотодатчик на элементах T4, T5 и R14, для того чтобы схема автоматически включалась только в темное время суток. От сопротивления резистора R14 зависит, при какой яркости схема все еще будет работать.
(233,6 Kb, скачано: 422)
В этой статье рассмотрены основы использования RGB (Red Green Blue (красный, зеленый, синий)) светодиода с Arduino.
Мы используем функцию analogWrite для управления цветом RGB светодиода.
На первый взгляд, RGB светодиоды выглядят так же, как и обычные светодиоды, но на самом деле у них внутри установлено три светодиода: один красный, один зеленый и да, один синий. Управляя яркостью каждого из них, вы можете управлять цветом светодиода.
То есть, мы будем регулировать яркость каждого светодиода и получать нужный цвет на выходе, как будто это палитра художника или словно вы настраиваете частоты на своем плеере. Для этого можно использовать переменные резисторы . Но в результате схема будет достаточно сложной. К счастью, Arduino предлагает нам функцию analogWrite. Если задействовать на плате контакты, отмеченные символом «~», мы можем регулировать напряжение, которое подается на соответствующий светодиод.
Видео 1
Для управления мощностью двигателей предусмотрены входы ENA и ENB. ENA привязан к IN1, IN2, а ENB регулирует мощность двигателя, управляемого через IN3, IN4. В простейшем случае, когда нет необходимости в регулировании оборотов двигателя, эти входы замкнуты перемычками на шину питания. Для управления скоростью вращения электромоторов используется ШИМ , соответственно необходимо подключать к данным входам драйвера те порты Arduino, которые поддерживают данный режим. При этом для управления одним двигателем в данном режиме понадобится три порта Arduino (программа L298N_2, взята из ).