Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Светодиодный уличный светодиод DMX RGB

Компоненты и расходные материалы

Arduino Nano R3
× 1
Adafruit PCA9685 16PWM-каналы I2C
× 1
собственные печатные платы
× 1

Приложения и онлайн-сервисы

IDE Arduino
DMX-контроль freestyler

Об этом проекте

Привет, ребята, у меня в доме уже есть много светильников с управлением по DMX, но я также хотел бы установить их снаружи. Поскольку эти RGB DMX-светильники довольно дороги (около 200–300 евро), я искал альтернативы.

Я обнаружил эти действительно дешевые светодиодные RGB-подсветки с ИК-блоками управления. Это около 8 евро / 10 Вт RGB.

Итак, все, что мне нужно было сделать, это преобразовать их, чтобы понять DMX.

Чтобы снизить затраты и необходимое пространство на печатной плате, все 5 флудов имеют только один мозг Arduino в отдельной коробке. Каждый светильник имеет 3-канальные печатные платы источника постоянного тока с ШИМ-синхронизацией и соединительный кабель D-Sub 9. Эта печатная плата идеально помещается в небольшой отсек в нижней части светильника. Каждый канал для светодиода установлен на 350 мА.

Все 5 источников света подключены к центральной коробке с Arduino и беспроводным DMX-приемником

Внутри этого поля находятся:

  • Блок питания 12 В, 3,5 А
  • Зарядное устройство для мобильного телефона 12 В - 5 В
  • Ardunino Nano на собственной плате для преобразователя DMX (RS485)
  • Расширение 16-канального ШИМ Ardufruit по I2C
  • Беспроводной приемник DMX
  • Распределительные платы для ленточных кабелей D-Sub
  • Много горячего клея, чтобы сделать его водонепроницаемым.

Он выдержал 3 недели под проливным дождем, швы коробки и уплотнения водонепроницаемы.

Плата, на которой я установил Nano, универсальна для всех моих проектов DMX, она может преобразовывать сигналы шины DMX в Ardunio, а также является прорывом для шины I2C и / или всех 6 каналов PWM с MosFET (BUZ11). Я также использовал его с MosFET для обновления внутренних ламп до DMX.

Таким образом, все вместе приводит к 5 индивидуальным управляемым лампам (здесь для моих стеклянных перил), которые управляются через беспроводной DMX через ПК / мобильный телефон.

В загружаемых файлах вы найдете файлы eagle для печатных плат, мой эскиз Arduino для копирования и вставки и файл определения лампы в программном обеспечении Freestyler для управления ПК.

Адреса DMX жестко запрограммированы на начальный адрес 200, а затем на 5x 3 канала R, G и B без какого-либо канала диммера.

В Arduino-Sketch мне пришлось манипулировать значениями для красных каналов, поскольку красный светодиод намного ярче зеленого и синего и поэтому не смешивался с чисто белым.

В качестве альтернативы есть один эскиз для тестирования / исправления ошибок, где вы можете установить значения RGB непосредственно через терминал Ardunio IDE

В целом общая стоимость 5 ламп составляет около 110 евро, все части (кроме ламп) приобретаются через Reichelt.de, все печатные платы сделаны на platinenbelichter.de (большая рекомендация!)

Не стесняйтесь изменять или оптимизировать все!

Пока,

Себастьян

Код

  • Версия DMX
  • Версия USB-входа
  • приспособление для Freestyler
Версия DMX Arduino
Программа управления 5x 3-канальными лампами RGB
 // 15 ШИМ на 5 светодиодах RGB / начальный адрес DMX 200 / 5x 3-канальный RGB # include  #include  #include  Adafruit_PWMServoDriver pwm =Adafruit_PWMServoDriver (); # определить DMX_SLAVE_CHANNELS 15DMX_Slave dmx_slave (DMX_SLAVE_CHANNELS); int channel [16]; int channelOut [16]; int value [16]; int ch =0; int red =0; blue int green =0; int red =0; blue int green =0; int red =0; blue int green =0; =0; void setup () {Wire.begin (); // подключаемся к шине i2c (адрес для мастера необязательный) pwm.begin (); pwm.setPWMFreq (120); // Это максимальная частота ШИМ # ifdef TWBR // сохраняем битрейт I2C uint8_t twbrbackup =TWBR; // необходимо изменить после вызова Wire.begin () (внутри pwm.begin ()) TWBR =12; // обновление до 400 кГц! #endif // настройка DMX dmx_slave.enable (); dmx_slave.setStartAddress (200); // установить для всех ШИМ высокий уровень -> светодиоды выключены pwm.setPWM (0, 4096, 0); pwm.setPWM (1, 4096, 0); pwm.setPWM (2, 4096, 0); pwm.setPWM (3, 4096, 0); pwm.setPWM (4, 4096, 0); pwm.setPWM (5, 4096, 0); pwm.setPWM (6, 4096, 0); pwm.setPWM (7, 4096, 0); pwm.setPWM (8, 4096, 0); pwm.setPWM (9, 4096, 0); pwm.setPWM (10, 4096, 0); pwm.setPWM (11, 4096, 0); pwm.setPWM (12, 4096, 0); pwm.setPWM (13, 4096, 0); pwm.setPWM (14, 4096, 0);} void loop () {// ввод DMX для (int j =0; j <=14; j ++) {channel [j] =dmx_slave.getChannelValue (j + 1); } // точная настройка цвета channelOut [0] =map (channel [0], 0, 255, 0, 1400); // уменьшить красный светодиод 1 channelOut [1] =map (channel [1], 0, 255, 0, 4095); channelOut [2] =карта (канал [2], 0, 255, 0, 4095); channelOut [3] =карта (канал [3], 0, 255, 0, 1400); // уменьшить красный светодиод 2 channelOut [4] =map (channel [4], 0, 255, 0, 4095); channelOut [5] =карта (канал [5], 0, 255, 0, 4095); channelOut [6] =карта (канал [6], 0, 255, 0, 1400); // уменьшить красный светодиод 3 channelOut [7] =map (channel [7], 0, 255, 0, 4095); channelOut [8] =карта (канал [8], 0, 255, 0, 4095); channelOut [9] =карта (канал [9], 0, 255, 0, 1400); // уменьшить красный светодиод 4 channelOut [10] =map (channel [10], 0, 255, 0, 4095); channelOut [11] =карта (канал [11], 0, 255, 0, 4095); channelOut [12] =карта (канал [12], 0, 255, 0, 1400); // уменьшить красный светодиод 5 channelOut [13] =map (channel [13], 0, 255, 0, 4095); channelOut [14] =карта (канал [14], 0, 255, 0, 4095); // присваиваем значения для (int i =0; i <=14; i ++) {if (channelOut [i] ==0) {pwm.setPWM (i, 4096, 0); } else {pwm.setPWM (i, 0, 4095 - channelOut [i]); }}} 
Версия USB-входа Arduino
Отладочная версия с прямым вводом для лампы Nr. и значения RGB
 // 15 PWM на 5 светодиодах RGB # include  #include  // вызывается таким образом, он использует адрес по умолчанию 0x40Adafruit_PWMServoDriver pwm =Adafruit_PWMServoDriver (); // вы можете также вызовите его с другим адресом, который хотите // Adafruit_PWMServoDriver pwm =Adafruit_PWMServoDriver (0x41); int channel [15]; int channelOut [15]; int value [15]; int ch =0; int red =0; int green =0; int blue =0; void setup () {Wire.begin (); // подключаемся к шине i2c (адрес для мастера необязательный) Serial.begin (9600); Serial.println («Ожидание ввода:светодиод, R, G, B, [каждый 0-255]»); pwm.begin (); pwm.setPWMFreq (120); // Это максимальная частота ШИМ. / out for this! #ifdef TWBR // сохраняем битрейт I2C uint8_t twbrbackup =TWBR; // необходимо изменить после вызова Wire.begin () (внутри pwm.begin ()) TWBR =12; // обновить до 400 кГц! #endif // установить для всех ШИМ высокий уровень -> светодиоды выключены pwm.setPWM (0, 4096, 0); pwm.setPWM (1, 4096, 0); pwm.setPWM (2, 4096, 0); pwm.setPWM (3, 4096, 0); pwm.setPWM (4, 4096, 0); pwm.setPWM (5, 4096, 0); pwm.setPWM (6, 4096, 0); pwm.setPWM (7, 4096, 0); pwm.setPWM (8, 4096, 0); pwm.setPWM (9, 4096, 0); pwm.setPWM (10, 4096, 0); pwm.setPWM (11, 4096, 0); pwm.setPWM (12, 4096, 0); pwm.setPWM (13, 4096, 0); pwm.setPWM (14, 4096, 0);} void loop () {// ввод цвета while (Serial.available ()> 0) {ch =Serial.parseInt (); красный =Serial.parseInt (); зеленый =Serial.parseInt (); синий =Serial.parseInt (); if (Serial.read () =='\ n') {} ch =ограничение (ch, 0, 4); красный =ограничение (красный, 0, 255); зеленый =ограничение (зеленый, 0, 255); синий =ограничение (синий, 0, 255); // выводим три числа:Serial.print ("новые значения:"); Serial.print ("LED ="); Серийный принт (ch, DEC); Serial.print ("R ="); Serial.print (красный, DEC); Serial.print (", G ="); Serial.print (зеленый, DEC); Serial.print (", B ="); Serial.println (синий, DEC); } переключатель (канал) {случай 0:канал [0] =красный; канал [1] =зеленый; канал [2] =синий; ломать; случай 1:канал [3] =красный; канал [4] =зеленый; канал [5] =синий; ломать; случай 2:канал [6] =красный; канал [7] =зеленый; канал [8] =синий; ломать; случай 3:канал [9] =красный; канал [10] =зеленый; канал [11] =синий; ломать; случай 4:канал [12] =красный; канал [13] =зеленый; канал [14] =синий; ломать; } // точная настройка цвета channelOut [0] =map (channel [0], 0, 255, 0, 1400); // уменьшить красный светодиод 1 channelOut [1] =map (channel [1], 0, 255, 0, 4095); channelOut [2] =карта (канал [2], 0, 255, 0, 4095); channelOut [3] =карта (канал [3], 0, 255, 0, 1400); // уменьшить красный светодиод 2 channelOut [4] =map (channel [4], 0, 255, 0, 4095); channelOut [5] =карта (канал [5], 0, 255, 0, 4095); channelOut [6] =карта (канал [6], 0, 255, 0, 1400); // уменьшить красный светодиод 3 channelOut [7] =map (channel [7], 0, 255, 0, 4095); channelOut [8] =карта (канал [8], 0, 255, 0, 4095); channelOut [9] =карта (канал [9], 0, 255, 0, 1400); // уменьшить красный светодиод 4 channelOut [10] =map (channel [10], 0, 255, 0, 4095); channelOut [11] =карта (канал [11], 0, 255, 0, 4095); channelOut [12] =карта (канал [12], 0, 255, 0, 1400); // уменьшить красный светодиод 5 channelOut [13] =map (channel [13], 0, 255, 0, 4095); channelOut [14] =карта (канал [14], 0, 255, 0, 4095); // присваиваем значения для (int i =0; i <=14; i ++) {if (channelOut [i] ==0) {pwm.setPWM (i, 4096, 0); } else {pwm.setPWM (i, 0, 4095 - channelOut [i]); }}} 
приспособление для Freestyler BatchFile
описание каналов для программы управления DMX на ПК
 BuzzComments:"" Outdoor LED3 0 0 RBG Outdoor.gif0000000 1 123RedGreenBlueMacros 2 0 0 0 1 0 0255000000255025502550255025502550255000-0-0-0-1Sliders 0 

Схема

универсальная база Nano с входом DMX и выходом PWM / I2C universaldmx_2ixt4yqoce.sch universaldmx_a0KdrmJqGU.brd5x 3 кан. Распределение (15x PWM) с входом 12 В (+/-) verteiler_dmx_a0M4khDOMv.sch verteiler_dmx_P6etUU6zsN.brd3x Источник 350 мА / 12 В с входами ШИМ 3xksq_rework_2VYUHjd5Xl.sch 3xksq_rework_4rpvCLaFrs.brd 3xksq_rework_qp87kzXQGy.txt универсальныйdmx_GtNeOjMWZL.txt

Производственный процесс

  1. Музыкальный визуализатор DIY LUMAZOID для Arduino
  2. Веб-контроллер DMX
  3. Интерактивный настольный светильник, управляемый жестами
  4. Arduino с Bluetooth для управления светодиодом!
  5. Четвероногий Arduino
  6. Борьба с коронавирусом:таймер простой ручной стирки
  7. Цветовой микшер Arduino RGB
  8. Управление светодиодной матрицей с помощью Arduino Uno
  9. Сделай сам Arduino РАДИОНИКА Лечение MMachine
  10. Светодиодная игра в рулетку