Управление светодиодной лентой через Arduino

Светодиодные ленты

Принцип управления нагрузкой через Ардуино

Управление светодиодной лентой с Arduino

Плата Arduino имеет два типа выходных портов: цифровые и аналоговые (управление ШИМ). Цифровой вентиль имеет два возможных состояния — логический ноль и логическая единица. Если к нему подключить светодиод, то он либо загорится, либо нет.

Аналоговый выход представляет собой ШИМ-регулятор, в качестве сигнала с частотой ок. 500 Гц применяется с регулируемым рабочим циклом. Что такое ШИМ-регулятор и как он работает можно найти в интернете. Через аналоговый порт можно не только включать и выключать нагрузку, но и изменять напряжение (ток) на ней.

Синтаксис команд

Цифровой выход:

pinMode(12, ВЫХОД); — установить порт 12 в качестве порта вывода данных;
цифровая запись (12, ВЫСОКИЙ); — подаем логическую единицу на дискретный выход 12, и зажигаем светодиод.

Аналоговый выход:

аналоговый выход = 3; — настроить порт 3 для вывода аналогового значения;
аналогЗапись(3, значение); — формируем на выходе сигнал с напряжением от 0 до 5В. Значение – скважность сигнала от 0 до 255. При значении 255 – максимальное напряжение.

Способы управления светодиодами через Ардуино

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

Для более мощных нагрузок, в том числе светодиодных лент, используется электронный ключ — транзистор.

Виды транзисторных ключей

  • Биполярный;
  • Поле;
  • Композит (крепление Дарлингтона).
Через биполярный транзистор Через полевой транзистор Через переключатель напряжения
Подключение через биполярный транзистор Подключение через полевой транзистор Подключение через переключатель напряжения

Когда высокий логический уровень (digitalWrite(12, HIGH);) подается через выходной затвор на базу транзистора, опорное напряжение будет поступать на нагрузку через цепь коллектор-эмиттер. Таким образом, вы можете включать и выключать светодиод.

Аналогично работает полевой транзистор, но так как у него вместо «базы» сток, который управляется не током, а напряжением, ограничительный резистор в этой схеме необязателен.

Биполярный вид не позволяет регулировать большие нагрузки. Ток через него ограничен на уровне 0,1-0,3А.

Полевые транзисторы работают с более мощными нагрузками с током до 2А. Для еще более мощной нагрузки используются полевые транзисторы Mosfet с током до 9А и напряжением до 60В.

МОП-транзистор жир

Вместо полей можно использовать сборку Дарлингтона из биполярных транзисторов на микросхемах ULN2003, ULN2803.

Микросхема ULN2003 и принципиальная схема электронного переключателя напряжения:

Чип ULN2003

Типы светодиодных лент

Наиболее часто используемая светодиодная лента на микросхеме — WS2812b. Они делятся на 3 класса защиты от окружающей среды: IP64, IP65 и IP67. Лента IP64 имеет наименьшую степень защиты, но ее легче всего разрезать на более мелкие части. Они также поставляются с клейкой основой, которая позволяет прикреплять их к любым типам поверхностей. Ремешки со степенью защиты IP65 также имеют липкую заднюю часть и силиконовое покрытие, что усложняет пайку. Тип IP67 полностью заключен в силикон и не имеет липкой подложки.

s86677519.jpg

Ленты также имеют разную плотность светодиодов. В основном, есть 30 шт/м, 60 шт/м и 144 шт/м. По моему опыту, 30 шт/м — это довольно много, так как каждый светодиод может быть очень ярким. Это дает вам максимальное преимущество в цене, а также простой выбор мощности

плотность

Почти все светодиодные ленты WS2812b можно разрезать на несколько полос меньшего размера. Каждую из медных прокладок можно разрезать пополам и использовать для соединения секций вместе. Провода можно припаять к каждому концу. Только не забудьте соединить GND <-> GND, VCC <-> VCC и DIN <-> DOUT. Ниже представлена ​​матрица светодиодов из секций ленты IP64, 60 светодиодов/м.

полоса

Питание

Поскольку большинство адресных светодиодных лент работают при напряжении 5 вольт, мы можем использовать термины «ватт» и «ток» как синонимы. Количество тока (ампер), потребляемого каждым светодиодом, зависит от его цвета и яркости. Если горит только один из трех красных, зеленых или синих светодиодов, он потребляет меньше энергии. Если для пикселя установлен белый цвет (все три светодиода горят), он будет использовать максимальную мощность.

светодиодный зум

Рекомендуется исходить из того, что каждый из светодиодов будет потреблять максимум 20 мА (фактическое значение немного ниже). Это дает нам 20 мА + 20 мА + 20 мА = 60 мА на пиксель. Поэтому, например, для светодиодной ленты с разрешением 150 пикселей нам нужен ток максимум 9А. Для этих целей нам понадобится блок питания не менее 10 А. Однако лента будет потреблять максимум 9 А только тогда, когда все светодиоды горят на максимальной яркости. Если мы немного уменьшим яркость и не будем давать загореться одновременно всем светодиодам в течение длительного времени, нам понадобится гораздо менее мощный блок питания. Ниже представлен график энергопотребления полосы в зависимости от настройки яркости

изгиб

Также важно использовать качественный блок питания на 5 вольт. Многие блоки питания, особенно китайские, используют более дешевые компоненты и фактически не могут поддерживать такой уровень мощности. Даже при наличии высококачественного источника питания я бы рекомендовал оставлять около 20-30% запаса на всякий случай. Попытка использовать большое количество тока может привести к падению напряжения, снижению яркости светодиодов или, что еще хуже, к повреждению их или блока питания.

Для тех, кто менее знаком с электрической терминологией, напряжение можно рассматривать как давление воды, а ток — как поток воды. Если мы попытаемся увеличить расход воды (ток) выше, чем может выдержать подача, давление (напряжение) в воде уменьшится. В каждую полоску встроены небольшие провода для соединения одного светодиода с другим. Они действуют как трубы, по которым движется вода (ток). Если мы попытаемся настроить все светодиоды на максимальную яркость белого, они потребляют слишком много воды (энергии) для этих маленьких трубок.

Когда мы доходим до конца длинной полосы, напряжение падает и ухудшается яркость и цветопередача светодиодов. Чтобы исправить это, нам просто нужно подать питание и землю на обе стороны полосы. Многие ленты даже имеют дополнительную пару контактов для проводов 5V и GND на каждом конце, специально для «доставки» большей мощности.

Помимо уменьшения яркости, мы также можем уменьшить ток, отключив все красные, зеленые или синие светодиоды в полосе. Если мы используем комбинацию двух из трех светодиодов на каждый пиксель, мы можем уменьшить ток до двух третей от нормального потребления. Если мы запрограммируем наши светодиоды только на красный, зеленый или синий, мы сможем сократить энергопотребление на треть, поскольку два из трех светодиодов выключены. Например, если мы знаем, что будем использовать только желтый (красный + зеленый) и фиолетовый (красный + синий) цвет с максимальной яркостью 100, максимальное потребление будет 12,5 мА на пиксель.

Яркость 100 использует около 19 мА из графика, умноженного на 2/3, поскольку мы знаем, что хотим использовать только два из трех цветов одновременно, что дает нам 12,5 мА на пиксель. В зависимости от того, насколько сильно вы ограничиваете себя, количество энергии, необходимой для каждого пикселя, может быть значительно уменьшено. Если вы точно знаете, какая максимальная яркость и цвета вам нужны, вы можете рассчитать конкретное максимальное энергопотребление. Хотя, как правило, хорошей идеей будет дать себе как можно больше гибкости, чтобы создавать более широкий спектр анимаций и цветов.

Для более практичного расчета необходимого блока питания светодиодной ленты на сайте есть специальный калькулятор

Библиотека FastLed. Описание и примеры использования

Итак, у вас есть адресная светодиодная лента, и вы хотите ее осветить. На первый взгляд задача может показаться сложной, но она просто работает! Есть много способов начать работу со светодиодными лентами, и один из самых простых и гибких способов — использовать библиотеку FastLED, доступную для Arduino. Эта библиотека поддерживает все наиболее распространенные типы светодиодных лент, включая Neopixel, Dotstar и многие другие. Он предлагает расширенное управление цветом и математику цвета, что делает его хорошим выбором для многих проектов.

Загрузка библиотеки

Библиотеку можно скачать здесь. Доступно много версий, но я бы порекомендовал загрузить самую последнюю, чтобы убедиться, что библиотека поддерживает ваш тип чипа. Чтобы скачать, нажмите на ссылку «Исходный код (zip)» последней версии. Извлеките содержимое архива в папку библиотеки Arduino IDE. На моем компьютере это:

 (C:)> Program Files (x86)> Arduino> Библиотеки

Теперь библиотека загружена, и вы готовы начать программирование.

Пример работы с библиотекой

Для начала нужно решить, сколько светодиодов использовать, тип ленты и определиться с проводами для подключения.

#include #define NUM_LEDS 60 //Количество светодиодов #define DATA_PIN 13 //Вывод данных #define CLOCK_PIN 14 //Вывод часов CRGB LEDsNUM_LEDS</a>;// массив, в котором хранятся цвета каждого светодиода void setup() { delay (2000 г.); FastLED.addLeds(LEDs,NUM_LEDS); //чип, номер контакта данных, номер контакта часов, последовательность цветов, //рабочая частота (при необходимости. По умолчанию 24 МГц) } apa102,data_pin,clock_pin,rgb,data_rate_mhz(10)

Чтобы зажечь нужный нам светодиод, пишем следующее

void loop() { leds0 = CRGB::DarkGreen; //записываем значение нужного нам цвета для первого светодиода FastLED.show(); //Вывод на последовательный порт delay(30);

}

Полный список предопределенных цветов см в таблице ниже:

CRGB::AliceBlue 0xF0F8FF
CRGB::Аметист 0x9966CC
CRGB::Антиквайт 0xFAEBD7
CRGB::Аква 0x00FFFF
CRGB::Аквамарин 0x7FFFD4
CRGB::Azure 0xF0FFFF
CRGB::Бежевый 0xF5F5DC
CRGB::Биск 0xFFE4C4
CRGB::Черный 0x000000
CRGB::BlanchedAlmond 0xFFEBCD
CRGB::Синий 0x0000FF
CRGB::Синий фиолетовый 0x8A2BE2
CRGB::Коричневый 0xA52A2A
CRGB::БерлиВуд 0xDEB887
CRGB::CadetBlue 0x5F9EA0
CRGB::Шартрез 0x7FFF00
CRGB::Шоколад 0xD2691E
CRGB::Коралл 0xFF7F50
CRGB::Васильковый синий 0x6495ED
CRGB::Кукурузные рыльца 0xFFF8DC
CRGB:: малиновый 0xDC143C
CRGB:: Голубой 0x00FFFF
CRGB:: Темно-синий 0x00008B
CRGB:: DarkCyan 0x008B8B
CRGB::DarkGoldenrod 0xB8860B
CRGB:: Темно-серый 0xA9A9A9
CRGB:: Темно-зеленый 0x006400
CRGB::DarkKhaki 0xBDB76B
CRGB:: Темно-пурпурный 0x8B008B
CRGB:: DarkOliveGreen 0x556B2F
CRGB:: Темно-оранжевый 0xFF8C00
CRGB::DarkOrchid 0x9932CC
CRGB:: Темно-красный 0x8B0000
CRGB::DarkSalmon 0xE9967A
CRGB:: DarkSeaGreen 0x8FBC8F
CRGB:: DarkSlateBlue 0x483D8B
CRGB:: DarkSlateGray 0x2F4F4F
CRGB:: Темно-бирюзовый 0x00CED1
CRGB:: Темно-фиолетовый 0x9400D3
CRGB:: DeepPink 0xFF1493
CRGB:: DeepSkyBlue 0x00BFFF
CRGB:: ДимГрей 0x696969
CRGB:: ДоджерСиний 0x1E90FF
CRGB::FireBrick 0xB22222
CRGB::ЦветочныйБелый 0xFFFFAF0
CRGB::ForestGreen 0x228B22
CRGB:: Фуксия 0xFF00FF
CRGB::Гейнсборо 0xDCDCDC
CRGB::GhostWhite 0xF8F8FF
CRGB::Золото 0xFFD700
CRGB::Золотарник 0xDAA520
CRGB::Серый 0x808080
CRGB::Зеленый 0x008000
CRGB::Зелено-желтый 0xADFF2F
CRGB:: Медвяная роса 0xF0FFF0
CRGB::ХотПинк 0xFF69B4
CRGB::IndianRed 0xCD5C5C
CRGB::Индиго 0x4B0082
CRGB::Слоновая кость 0xFFFFF0
CRGB::Хаки 0xF0E68C
CRGB:: лаванда 0xE6E6FA
CRGB::LavenderBlush 0xFFF0F5
CRGB::ГазонГрин 0x7CFC00
CRGB::ЛимонШифон 0xFFFACD
CRGB::Голубой 0xADD8E6
CRGB::LightCoral 0xF08080
CRGB::LightCyan 0xE0FFFF
CRGB::LightGoldenrodYellow 0xФАФАД2
CRGB::светло-зеленый 0x90EE90
CRGB::Светло-серый 0xD3D3D3
CRGB::Светло-розовый 0xFFB6C1
CRGB:: Лосось 0xFFA07A
CRGB::LightSeaGreen 0x20B2AA
CRGB::LightSkyBlue 0x87CEFA
CRGB::LightSlateGray 0x778899
CRGB::LightSteelBlue 0xB0C4DE
CRGB::Светло-желтый 0xFFFFE0
CRGB:: Лайм 0x00FF00
CRGB:: ЛаймГрин 0x32CD32
CRGB::Лен 0xFAF0E6
CRGB::Пурпурный 0xFF00FF
CRGB::бордовый 0x800000
CRGB::СреднийАквамарин 0x66CDAA
CRGB::MediumBlue 0x0000CD
CRGB::MediumOrchid 0xBA55D3
CRGB:: Медиумпурпле 0x9370ДБ
CRGB::MediumSeaGreen 0x3CB371
CRGB::MediumSlateBlue 0x7B68EE
CRGB::MediumSpringGreen 0x00FA9A
CRGB:: Средний бирюзовый 0x48D1CC
CRGB::MediumVioletRed 0xC71585
CRGB::Полуночный синий 0x191970
CRGB::МинтКреам 0xF5FFFA
CRGB::МистиРоуз 0xFFE4E1
CRGB::Мокасины 0xFFE4B5
CRGB::НавахоБелый 0xFFDEAD
CRGB::Морской 0x000080
CRGB::OldLace 0xFDF5E6
CRGB::Оливковый 0x808000
CRGB:: OliveDrab 0x6B8E23
CRGB::оранжевый 0xFFA500
CRGB:: OrangeRed 0xFF4500
CRGB::Орхидея 0xDA70D6
CRGB::PaleGoldenrod 0xEEE8AA
CRGB:: Бледно-зеленый 0x98FB98
CRGB::Бледно-бирюзовый 0xAFEEEE
CRGB::PaleVioletRed 0xDB7093
CRGB::Папайяхип 0xFFEFD5
CRGB::PeachPuff 0xFFDAB9
CRGB::Перу 0xCD853F
CRGB::Розовый 0xFFC0CB
CRGB::плед 0xCC5533
CRGB::Слива 0xDDA0DD
CRGB::Пудерсиний 0xB0E0E6
CRGB:: Фиолетовый 0x800080
CRGB::Красный 0xFF0000
CRGB:: РозиБраун 0xBC8F8F
CRGB::RoyalBlue 0x4169E1
CRGB::СедлБраун 0x8B4513
CRGB:: Лосось 0xFA8072
CRGB::СэндиБраун 0xF4A460
CRGB::SeaGreen 0x2E8B57
CRGB::Ракушка 0xFFF5EE
CRGB::Сиена 0xA0522D
CRGB::Серебро 0xC0C0C0
CRGB::Небесно-голубой 0x87CEEB
CRGB::SlateBlue 0x6A5ACD
CRGB::SlateGray 0x708090
CRGB::Снег 0xFFFAFA
CRGB:: SpringGreen 0x00FF7F
CRGB::SteelBlue 0x4682B4
CRGB:: Сан 0xD2B48C
CRGB :: Сине-зеленый 0x008080
CRGB::Чертополох 0xD8BFD8
CRGB::Помидор 0xFF6347
CRGB::Бирюзовый 0x40E0D0
CRGB:: Фиолетовый 0xEE82EE
CRGB::Пшеница 0xF5DEB3
CRGB::Белый 0xFFFFFF
CRGB::Белый дым 0xF5F5F5
CRGB::Желтый 0xFFFF00
CRGB::ЖеллоуГрин 0x9ACD32

Но это не единственный способ задать цвет. Ниже приведены еще несколько вариантов.

lEDs[i].r = 100; //устанавливаем значение каждого цветового компонента RGB LEDs[i].g = 12; светодиодов[i].b = 255; Светодиоды[i].красный = 100; //другой способ написать LEDs[i].green = 12; LEDs[i].blue = 255; светодиоды[i]0 = 50; // красный //и еще один LEDs[i][1] = 100; // зеленые светодиоды[i][2] = 150; // синие светодиоды[i] = 0x640СFF; //один и тот же цвет в шестнадцатеричном формате LEDs[i].setRGB(100, 12, 255); Светодиоды[i] = Светодиоды[j]; //Простая копия LEDs[i] = CRGB(50, 100, 150); LEDs[i] = CRGB::Red; //Установить цвет из списка цветов

Представление цвета в HSV-модели

lEDs[i] = CHSV(224, 187, 255); //оттенок/насыщенность/яркость светодиодов[i].setHSV(224, 187, 255); //другой способ написать LEDs[i].setHue(224); // устанавливаем полностью насыщенный яркий цвет спектра CHSV; //задание спектра с диапазоном от 0 до 255 speccolor.hue = 224; спектрцвет.насыщенность = 187; спектрцвет.значение = 255; hsv2rgb_spectrum (цвет спектра, светодиоды [i]);

Читайте также: 3014 SMD: техническая характеристика светодиода

Спектр и радуга.

Различают два типа трансформации HSV — спектральную и радужную. Первый тип использует линейную зависимость для изменения каждого цвета. Недостаток в том, что при таком методе мы получаем едва заметный желтый цвет в цветовой палитре. В «радуге» все основные цвета распределяются равномерно, что гораздо удобнее для человеческого восприятия.

ЧСВ hsv(160, 255, 255); // синий цвет в пространстве радуги hsv CRGB rgb; hsv2rgb_rainbow (hsv, rgb); // в rgb получаем (0, 0, 255)

Цвета радуги и т д имеют следующие значения

  • Красный (0..) «HUE_RED»
  • Оранжевый (32..) «ОТТЕНОК_ОРАНЖЕВЫЙ»
  • Желтый (64..) «HUE_YELLOW»
  • Зеленый (96..) «HUE_GREEN»
  • Аква (128..) «HUE_AQUA»
  • Синий (160..) «HUE_BLUE»
  • Фиолетовый (192..) «HUE_PURPLE»
  • Розовый(224..) «HUE_PINK»

Точно так же преобразование спектра:

ЧСВ hsv(171, 255, 255); // чистый синий цвет в спектре hsv CRGB rgb; hsv2rgb_spectrum (hsv, rgb); // в rgb получаем (0, 0, 255)

Цвета в спектре и т д имеют следующие значения

  • Красный (0..)
  • Желтый (42..)
  • Зеленый (85..)
  • Аква (128..)
  • Синий (171..)
  • Фиолетовый (213..)

Преимущество преобразования спектра в том, что преобразование в rgb происходит несколько быстрее.

Функцию hsv2rgb_spectrum, как и функцию hsv2rgb_rainbow, можно вызывать для массового преобразования.

ЧСВ вчс[10]; светодиоды CRGB[10]; hsv2rgb_rainbow (hsvs, светодиоды, 10); // преобразовать все

Математические операции

Библиотека также поддерживает математические операции

lEDs[i] += CRGB(0, 5, 0); //добавлены зеленые светодиоды[i].addToRGB(5); //добавляем яркости всем каналам RGB LEDs[i]++; // приращение трех компонентов RGB light[i] -= CRGB(5, 0, 0); //вычесть 5 из красных светодиодов[i].subtractFromRGB(5); //вычитаем яркость из RGB светодиодов[i]—; //уменьшение трех компонентов RGB[i].r = 5; // присваиваем значение только красной составляющей

Изменение яркости

светодиоды[i].fadeLightBy(64); Светодиоды[i] %= 192; Светодиоды[i].nscale8_video(192); Светодиоды[i].fadeToBlackBy(64); светодиоды[i].nscale8(192); Светодиоды[i].maximizeBrightness(); светодиоды[i] /= 2; Светодиоды[i] *= 2;

Практические примеры использования

Теперь разберем на практике, как можно применять полученные знания на практике. Для этого приведу в пример 3 простых скетча для ленты из 150 светодиодов

RBG Гонка

rgbchase

Эта первая небольшая анимация просто проходит через светодиоды между тремя основными цветами. В коде есть красная, зеленая и синяя части. В каждом разделе мы перебираем каждый отдельный пиксель и меняем их один за другим. Обратите внимание, что команда «FastLED.show» находится внутри цикла. Если мы удалим его, он обновит светодиоды только после того, как мы их все поменяем. Не забудьте изменить количество светодиодов на 150.

#include CRGB LEDs[150]; void setup () { FastLED.addLeds (светодиоды, 150); } void loop() { for(int i = 0; i < 150; i++) { LEDs[i] = CRGB(100, 0, 0); FastLED.show(); } for(int i = 0; i < 150; i++) { LEDs[i] = CRGB(0, 100, 0); FastLED.show(); } for(int i = 0; i < 150; i++) { LEDs[i] = CRGB(0, 0, 100); FastLED.show();

}

}

Мерцание желтого и фиолетового

фиолетовый

Эта анимация быстро регулирует яркость фиолетовых и желтых секций, j-петля регулирует яркость, а i-петля определяет секции. Измените значения в i-loop, чтобы настроить, где начинается и заканчивается каждая цветовая часть.

#include CRGB LEDs[150]; void setup () { FastLED.addLeds (светодиоды, 150); } void loop() { for(int j = 0; j < 100; j++) { for(int i = 0; i < 75; i++) { LEDs[i] = CRGB(j, j, 0); } FastLED.show(); } for(int j = 0; j < 100; j++) { for(int i = 75; i < 150; i++) { LEDs[i] = CRGB(j, 0, j); } FastLED.show();

}

}

Радуга

радуга

Радужная анимация — это ваш классический цветовой цикл. Каждый раз, когда цикл выполняется, значения RGB в верхней части цикла обновляются. Он начинается с максимума красного и быстро меняет цвета один за другим, постепенно исчезая.

#include CRGB LEDs[150]; инт г = 255; интервал б = 0; инт г = 0; void setup () { FastLED.addLeds (светодиоды, 150); } void loop() { if(r > 0 && b == 0){ r—; г++; } if(g > 0 && r == 0){ g—; б++; } если(b > 0 && g == 0){ r++; б—; } for(int i = 0; i < 150; i++) { LEDs[i] = CRGB(r, g, b); } FastLED.show(); } Материал также доступен на моем канале: Яндекс Дзен и в группе ВК Другие сопутствующие материалы:

  • Подключает датчик BME280 к Arduino
  • Обзор модуля воспроизведения MP3 и WAV DY-SV17F
  • Обзор MP3-модуля DFPlayer Mini (DFR0299)
  • Внешние прерывания ARDUINO и ESP
  • Подключает ЖК-экран к Arduino и ESP8266
  • Распиновка отладочных плат для семейства Arduino
  • 1
  • 2
  • 3
  • 4
  • 5

Категория: Arduino, ESP8266 и ESP32 | Добавлено: : ВСЕ , (01.02.2023) Просмотрено: 1473 | Теги: адресная лента, Arduino IDE, Arduino, FastLED, WS2812B | Рейтинг: 0.0/0

Делиться:
Общее количество комментариев: 0

Только зарегистрированные пользователи могут добавлять комментарии.
[Регистрация | Вход]
Категории разделов

Arduino, ESP8266 и ESP32 [36] Полезная информация об этих микроконтроллерах
Моддинг Red Alert 2 [12] Цикл статей о моддинге игры Red Alert 2
LVGL (Light and Versatile Graphics Library) [3] Серия обучающих статей о библиотеке LVGL

Объявление о розыскеНовые статьи

1 20810673.png Просмотр MP3…
05.10.2023
Просмотров: 76
2 05063301.png Создание W…
06.05.2023
Просмотров: 119
3 81405754.png Исследование б…
24.04.2023
Просмотров: 67

Новые проекты

1 07394825.png Мы переделываем…
04.16.2023
Скачиваний: 108
Просмотров: 292
2 03381699.png ESP3D. Контроль…
03.04.2023
Скачиваний: 21
Просмотров: 365
3 79368189.png Классный Wi-…
27.02.2023
Скачиваний: 52
Просмотров: 733

Статистика
100 лучших
Всего онлайн: 3Гости: 3Пользователи: 0

Copyright https://projectalt.ru © 2023. Мобильная версия

Принцип работы транзистора для плавного управления светодиодной лентой

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

Принцип работы транзистора

Подключив транзистор к аналоговому порту Arduino, присвойте ему значение от 0 до 255, измените напряжение, подаваемое на коллектор или сток, от 0 до 5В. По цепи коллектор-эмиттер будет проходить от 0 до 100% опорного напряжения нагрузки.

Для управления светодиодной лентой ардуино нужно подобрать транзистор подходящей мощности. Рабочий ток для питания светодиодного измерителя 300-500мА, для этой цели подходит биполярный силовой транзистор. Для большей длины требуется полевой транзистор.

Схема подключения светодиодной ленты к ардуино:

Схема подключения ленты к ардуино

Управление RGB лентой с помощью Andurino

Помимо однокристальных светодиодов, Arduino также может работать с цветными светодиодами. Подключив выходы каждого цвета к аналоговым выходам Arduino, можно произвольно изменять яркость каждого кристалла, добиваясь нужного цвета свечения.

Схема подключения RGB-светодиода Arduino:

подключается к светодиоду ардуино rgb

Контроллер полосы Arduino RGB устроен аналогично:

Управление полосой RGB через Arduino
Контроллеры Arduino RGB лучше всего монтировать на полевых транзисторах.

Две кнопки можно использовать для плавной регулировки яркости. Один увеличит яркость свечения, другой уменьшит.

Плавная регулировка яркости

Скетч управления яркостью светодиодной ленты Arduino

количество светодиодов = 120; установить средний уровень яркости

недействительная установка() {
pinMode(4, ВЫХОД); установить четвертый аналоговый порт на выход
pinMode(2, ВВОД);

pinMode(4, ВВОД); установить второй и четвертый цифровые порты на ввод для опроса кнопок
}
недействительный цикл(){

button1 = цифровоеЧтение(2);

button2 = цифровоеЧтение(4);
если (button1 == HIGH) нажатие первой кнопки увеличит яркость
{
светодиод=светодиод+5;

аналоговая запись (4, светодиод);
}
если (button2 == HIGH) нажатие второй кнопки уменьшит яркость
{
светодиод = светодиод — 5;

аналоговая запись (4, светодиод);
}

При удержании первой или второй кнопки плавно изменяется напряжение, подаваемое на управляющий контакт электронного ключа. Тогда будет плавное изменение яркости.

Модули управления Ардуино

Для создания полноценного драйвера светодиодной ленты можно использовать сенсорные модули.

Инфракрасный контроль
ИК-управление

Модуль позволяет программировать до 20 команд.

Радиус сигнала составляет ок. 8 м.

Цена комплекта 6 у.е.

Радиоуправление
По радиоканалу

Четырехканальный прибор с дальностью действия до 100м

Цена комплекта 8 у.е.

Позволяет включать освещение даже при приближении к квартире.

Бесконтактное управление
Бесконтактный

Датчик расстояния способен увеличивать и уменьшать яркость света движением руки.

Дальность действия до 5 м.

Цена модуля 0,3 у.е.

Главный светодиод

Оцените статью
Блог про электронику